Add install scripts
This commit is contained in:
parent
69450716fb
commit
92c4c23044
28
installers/go-posix.sh
Normal file
28
installers/go-posix.sh
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
command -v go >/dev/null 2>&1 || {
|
||||
printf "\e[33mGo is required but not installed\e[0m\n" >&2
|
||||
rnm=1
|
||||
}
|
||||
command -v git >/dev/null 2>&1 || {
|
||||
printf "\e[33mGit is required but not installed\e[0m\n" >&2
|
||||
rnm=1
|
||||
}
|
||||
[[ "$rnm" == "1" ]] && exit 1
|
||||
|
||||
[ -d "$HOME/.local/bin" ] && {
|
||||
mkdir --parent "$HOME/.local/bin"
|
||||
}
|
||||
|
||||
[ -d ~/.lon-tool-src ] && rm ~/.lon-tool-src -rf
|
||||
git clone https://git.timoxa0.su/timoxa0/lon-tool.git ~/.lon-tool-src || {
|
||||
rm ~/.lon-tool-src -rf
|
||||
exit 2
|
||||
}
|
||||
|
||||
pushd ~/.lon-tool-src &> /dev/null
|
||||
rev=$(git describe --abbrev=4 --dirty --always --tags)
|
||||
go get git.timoxa0.su/timoxa0/lon-tool/cmd
|
||||
go build -ldflags "-X git.timoxa0.su/timoxa0/lon-tool/cmd.version=$rev" -o "$HOME/.local/bin/lon-tool" main.go && {
|
||||
printf "\e[32mDone!\e[0m Installed at %s\n" "$HOME/go/bin/lon-tool"
|
||||
}
|
||||
popd &> /dev/null
|
21
installers/linux.sh
Normal file
21
installers/linux.sh
Normal file
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
URL="https://git.timoxa0.su/timoxa0/lon-tool/releases/download/latest/lon-tool_lin_amd64"
|
||||
|
||||
[[ "$(uname -m)" != "x86_64*" ]] || {
|
||||
printf "Unsupported CPU arch\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -d "$HOME/.local/bin" ] && {
|
||||
mkdir --parent "$HOME/.local/bin"
|
||||
}
|
||||
|
||||
printf "Downloading lon-tool\n"
|
||||
curl "$URL" -o "$HOME/.local/bin/lon-tool" -#
|
||||
chmod +x "$HOME/.local/bin/lon-tool"
|
||||
|
||||
command -v adb >/dev/null 2>&1 || {
|
||||
printf "\e[33mWARNING: adb binary not found.\e[0m\nPlease install google platform tools using your package manager\n" >&2
|
||||
}
|
||||
|
||||
printf "\e[32mDone!\e[0m Installed at %s\n" "$HOME/.local/bin/lon-tool"
|
193
installers/windows.ps1
Normal file
193
installers/windows.ps1
Normal file
|
@ -0,0 +1,193 @@
|
|||
$url="https://git.timoxa0.su/timoxa0/lon-tool/releases/download/latest/lon-tool_win_amd64.exe"
|
||||
$bin_dir = Join-Path $env:USERPROFILE ".bin"
|
||||
$platform_tools_url = "https://dl.google.com/android/repository/platform-tools-latest-windows.zip"
|
||||
$platform_tools_dir = Join-Path $bin_dir "platform_tools"
|
||||
|
||||
function Get-FileFromWeb {
|
||||
param (
|
||||
# Parameter help description
|
||||
[Parameter(Mandatory)]
|
||||
[string]$URL,
|
||||
|
||||
# Parameter help description
|
||||
[Parameter(Mandatory)]
|
||||
[string]$File
|
||||
)
|
||||
Begin {
|
||||
function Show-Progress {
|
||||
param (
|
||||
# Enter total value
|
||||
[Parameter(Mandatory)]
|
||||
[Single]$TotalValue,
|
||||
|
||||
# Enter current value
|
||||
[Parameter(Mandatory)]
|
||||
[Single]$CurrentValue,
|
||||
|
||||
# Enter custom progresstext
|
||||
[Parameter(Mandatory)]
|
||||
[string]$ProgressText,
|
||||
|
||||
# Enter value suffix
|
||||
[Parameter()]
|
||||
[string]$ValueSuffix,
|
||||
|
||||
# Enter bar lengh suffix
|
||||
[Parameter()]
|
||||
[int]$BarSize = 40,
|
||||
|
||||
# show complete bar
|
||||
[Parameter()]
|
||||
[switch]$Complete
|
||||
)
|
||||
|
||||
# calc %
|
||||
$percent = $CurrentValue / $TotalValue
|
||||
$percentComplete = $percent * 100
|
||||
if ($ValueSuffix) {
|
||||
$ValueSuffix = " $ValueSuffix" # add space in front
|
||||
}
|
||||
if ($psISE) {
|
||||
Write-Progress "$ProgressText $CurrentValue$ValueSuffix of $TotalValue$ValueSuffix" -id 0 -percentComplete $percentComplete
|
||||
}
|
||||
else {
|
||||
# build progressbar with string function
|
||||
$curBarSize = $BarSize * $percent
|
||||
$progbar = ""
|
||||
$progbar = $progbar.PadRight($curBarSize,[char]9608)
|
||||
$progbar = $progbar.PadRight($BarSize,[char]9617)
|
||||
|
||||
if (!$Complete.IsPresent) {
|
||||
Write-Host -NoNewLine "`r$ProgressText $progbar [ $($CurrentValue.ToString("#.###").PadLeft($TotalValue.ToString("#.###").Length))$ValueSuffix / $($TotalValue.ToString("#.###"))$ValueSuffix ] $($percentComplete.ToString("##0.00").PadLeft(6)) % complete"
|
||||
}
|
||||
else {
|
||||
Write-Host -NoNewLine "`r$ProgressText $progbar [ $($TotalValue.ToString("#.###").PadLeft($TotalValue.ToString("#.###").Length))$ValueSuffix / $($TotalValue.ToString("#.###"))$ValueSuffix ] $($percentComplete.ToString("##0.00").PadLeft(6)) % complete"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Process {
|
||||
try {
|
||||
$storeEAP = $ErrorActionPreference
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# invoke request
|
||||
$request = [System.Net.HttpWebRequest]::Create($URL)
|
||||
$response = $request.GetResponse()
|
||||
|
||||
if ($response.StatusCode -eq 401 -or $response.StatusCode -eq 403 -or $response.StatusCode -eq 404) {
|
||||
throw "Remote file either doesn't exist, is unauthorized, or is forbidden for '$URL'."
|
||||
}
|
||||
|
||||
if($File -match '^\.\\') {
|
||||
$File = Join-Path (Get-Location -PSProvider "FileSystem") ($File -Split '^\.')[1]
|
||||
}
|
||||
|
||||
if($File -and !(Split-Path $File)) {
|
||||
$File = Join-Path (Get-Location -PSProvider "FileSystem") $File
|
||||
}
|
||||
|
||||
if ($File) {
|
||||
$fileDirectory = $([System.IO.Path]::GetDirectoryName($File))
|
||||
if (!(Test-Path($fileDirectory))) {
|
||||
[System.IO.Directory]::CreateDirectory($fileDirectory) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
[long]$fullSize = $response.ContentLength
|
||||
$fullSizeMB = $fullSize / 1024 / 1024
|
||||
|
||||
# define buffer
|
||||
[byte[]]$buffer = new-object byte[] 1048576
|
||||
[long]$total = [long]$count = 0
|
||||
|
||||
# create reader / writer
|
||||
$reader = $response.GetResponseStream()
|
||||
$writer = new-object System.IO.FileStream $File, "Create"
|
||||
|
||||
# start download
|
||||
$finalBarCount = 0 #show final bar only one time
|
||||
do {
|
||||
|
||||
$count = $reader.Read($buffer, 0, $buffer.Length)
|
||||
|
||||
$writer.Write($buffer, 0, $count)
|
||||
|
||||
$total += $count
|
||||
$totalMB = $total / 1024 / 1024
|
||||
|
||||
if ($fullSize -gt 0) {
|
||||
Show-Progress -TotalValue $fullSizeMB -CurrentValue $totalMB -ProgressText "Downloading $($File.Name)" -ValueSuffix "MB"
|
||||
}
|
||||
|
||||
if ($total -eq $fullSize -and $count -eq 0 -and $finalBarCount -eq 0) {
|
||||
Show-Progress -TotalValue $fullSizeMB -CurrentValue $totalMB -ProgressText "Downloading $($File.Name)" -ValueSuffix "MB" -Complete
|
||||
$finalBarCount++
|
||||
#Write-Host "$finalBarCount"
|
||||
}
|
||||
|
||||
} while ($count -gt 0)
|
||||
}
|
||||
|
||||
catch {
|
||||
|
||||
$ExeptionMsg = $_.Exception.Message
|
||||
Write-Host "Download breaks with error : $ExeptionMsg"
|
||||
}
|
||||
|
||||
finally {
|
||||
# cleanup
|
||||
if ($reader) { $reader.Close() }
|
||||
if ($writer) { $writer.Flush(); $writer.Close() }
|
||||
|
||||
$ErrorActionPreference = $storeEAP
|
||||
[GC]::Collect()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Install-Tool {
|
||||
if (-not (Test-Path $bin_dir -PathType Container)) {
|
||||
New-Item -Path $bin_dir -ItemType Directory | Out-Null
|
||||
}
|
||||
|
||||
$currentPath = [Environment]::GetEnvironmentVariable("PATH", "User") -split ";"
|
||||
if ($currentPath -notcontains $bin_dir) {
|
||||
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$bin_dir", "User")
|
||||
$env:PATH="$env:PATH;$bin_dir"
|
||||
Write-Host "$bin_dir added to PATH."
|
||||
}
|
||||
|
||||
Get-FileFromWeb "$url" (Join-Path $bin_dir "lon-tool.exe")
|
||||
Write-Host
|
||||
}
|
||||
|
||||
function Install-Platoform_tools {
|
||||
|
||||
if (-not (Test-Path $platform_tools_dir -PathType Container)) {
|
||||
New-Item -Path $platform_tools_dir -ItemType Directory | Out-Null
|
||||
}
|
||||
|
||||
$currentPath = [Environment]::GetEnvironmentVariable("PATH", "User") -split ";"
|
||||
if ($currentPath -notcontains $platform_tools_dir) {
|
||||
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$platform_tools_dir", "User")
|
||||
$env:PATH="$env:PATH;$platform_tools_dir"
|
||||
Write-Host "$platform_tools_dir added to PATH."
|
||||
}
|
||||
|
||||
Get-FileFromWeb "$platform_tools_url" (Join-Path $platform_tools_dir "tools.zip")
|
||||
Write-Host
|
||||
Expand-Archive -Path (Join-Path $platform_tools_dir "tools.zip") -DestinationPath $platform_tools_dir
|
||||
Move-Item (Join-Path $platform_tools_dir "platform-tools\*") $platform_tools_dir
|
||||
Remove-Item (Join-Path $platform_tools_dir "platform-tools\*")
|
||||
}
|
||||
|
||||
Install-Tool
|
||||
|
||||
if (-not (Get-Command "adb.exe" -ErrorAction SilentlyContinue)) {
|
||||
$decision = $Host.UI.PromptForChoice("Adb executable not found in PATH", "Do you wand to install android platform tools?", ("&Yes", "&No"), 1)
|
||||
if ($decision -eq 0) {
|
||||
Install-Platoform_tools
|
||||
}
|
||||
}
|
||||
Write-Host "Done!" -ForegroundColor Green
|
Loading…
Reference in a new issue