@REM Licensed to the Apache Software Foundation (ASF) under one or more | |
@REM contributor license agreements. See the NOTICE file distributed with | |
@REM this work for additional information regarding copyright ownership. | |
@REM The ASF licenses this file to You under the Apache License, Version 2.0 | |
@REM (the "License"); you may not use this file except in compliance with | |
@REM the License. You may obtain a copy of the License at | |
@REM | |
@REM http://www.apache.org/licenses/LICENSE-2.0 | |
@REM | |
@REM Unless required by applicable law or agreed to in writing, software | |
@REM distributed under the License is distributed on an "AS IS" BASIS, | |
@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
@REM See the License for the specific language governing permissions and | |
@REM limitations under the License. | |
@REM Installation (Note: you need to start cmd or powershell in administrator mode.) | |
@echo off | |
setlocal ENABLEDELAYEDEXPANSION | |
@REM Get the latest version of swctl. | |
set FLAG="FALSE" | |
set VERSION= UNKNOW | |
curl -LO "https://raw.githubusercontent.com/apache/skywalking-website/master/data/releases.yml" | |
if EXIST "releases.yml" ( | |
for /F "tokens=1,2,*" %%i in ('FINDSTR "name version" "./releases.yml"') do ( | |
if !FLAG! EQU "TRUE" ( | |
set FLAG="FALSE" | |
set VERSION=%%k | |
) | |
if "%%k" == "SkyWalking CLI" (set FLAG="TRUE") | |
) | |
) | |
set VERSION=%VERSION:~1% | |
@echo The latest version of swctl is %VERSION% | |
if "%VERSION%" NEQ "UNKNOW" ( | |
@REM Download the binary package. | |
curl -LO "https://archive.apache.org/dist/skywalking/cli/%VERSION%/skywalking-cli-%VERSION%-bin.tgz" | |
if EXIST "skywalking-cli-%VERSION%-bin.tgz" ( | |
tar -zxvf ".\skywalking-cli-%VERSION%-bin.tgz" | |
@REM Verify the integrity of the downloaded file. | |
curl -LO "https://archive.apache.org/dist/skywalking/cli/%VERSION%/skywalking-cli-%VERSION%-bin.tgz.sha512" | |
CertUtil -hashfile skywalking-cli-%VERSION%-bin.tgz sha512 | findstr /X "[0-9a-zA-Z]*" > verify.txt | |
for /F "tokens=*" %%i in ( 'type ".\verify.txt"' ) do ( set VERIFY1="%%i skywalking-cli-%VERSION%-bin.tgz" ) | |
for /F "tokens=*" %%i in ( 'type ".\skywalking-cli-%VERSION%-bin.tgz.sha512"' ) do ( set VERIFY2="%%i" ) | |
if "!VERIFY1!" EQU "!VERIFY2!" ( | |
@echo Through verification, the file is complete. | |
mkdir "C:\Program Files\swctl-cli" | |
@REM Add swctl to the environment variable PATH. | |
copy ".\skywalking-cli-%VERSION%-bin\bin\swctl-%VERSION%-windows-amd64" "C:\Program Files\swctl-cli\swctl.exe" | |
setx "Path" "C:\Program Files\swctl-cli\;%path%" /m | |
@REM Delete unnecessary files. | |
del ".\skywalking-cli-%VERSION%-bin.tgz" ".\verify.txt" | |
del ".\skywalking-cli-%VERSION%-bin.tgz.sha512" ".\releases.yml" | |
rd /S /Q ".\skywalking-cli-%VERSION%-bin" | |
@echo Reopen the terminal and type 'swctl --help' to get more information. | |
) else ( | |
@echo The file is incomplete. | |
) | |
) else ( | |
@echo Failed to download skywalking-cli-%VERSION%-bin.tgz | |
) | |
) else ( | |
@echo Can't get the latest version. The install script may be invalid, try other install methods please. | |
) |