-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathinstall.ps1
More file actions
73 lines (63 loc) · 2.24 KB
/
install.ps1
File metadata and controls
73 lines (63 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright 2015-2023 yanglb.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
$PSDefaultParameterValues['*:ErrorAction']='Stop'
# Always download the latest version
# For more information about the cg.jar, please visit the following page:
# https://github.com/excel-code-generator/code-generator
$repo="excel-code-generator/code-generator"
$repoPath="https://github.com/$repo"
$rawPath="https://raw.githubusercontent.com/$repo"
# latest version
Write-Output "Get the latest version"
$releasesUri = "https://api.github.com/repos/$repo/releases/latest"
$tag = (Invoke-WebRequest $releasesUri | ConvertFrom-Json)[0].tag_name
Write-Output "Latest version: $tag"
# download
Write-Output "Downloading..."
$tempPath = Get-Random -Maximum 500
$tempPath = "$env:TEMP\cg-$tempPath"
if ( Test-Path $tempPath ) {
rm $tempPath\*
} else {
mkdir -p $tempPath
}
function download_file($name, $path) {
Write-Output "Download file $path "
Invoke-WebRequest $path -Out "$tempPath\$name"
}
download_file cg "$rawPath/$tag/cg"
download_file cg.bat "$rawPath/$tag/cg.bat"
download_file cg.jar "$repoPath/releases/download/$tag/cg.jar"
Write-Output "Download success."
# move file
$cgPath = "$env:APPDATA\cg\bin"
if (Test-Path $cgPath) {
rm $cgPath\*
} else {
mkdir -p $cgPath
}
mv "$tempPath\*" $cgPath
rm $tempPath
# set environment
Write-Output "setting environment."
$alreadyAdded = $False
$path = [environment]::GetEnvironmentvariable("PATH", "User")
$path.Split(";") | ForEach-Object -Process {if ($_ -eq $cgPath) { $alreadyAdded = $True }}
if (! $alreadyAdded) {
$path = $path + ";" + $cgPath
$path = [environment]::SetEnvironmentvariable("PATH", $path, "User")
}
Write-Output "Install success!"