install.fairie/.config/taskfiles/install/Taskfile-gh.yml
Brian Zalewski f42899b107 Latest
2022-12-24 15:04:59 -05:00

1366 lines
35 KiB
YAML

---
version: '3'
env:
GITHUB_TOKEN:
sh: |
if [ -n "$GITHUB_TOKEN" ]; then
echo "$GITHUB_TOKEN"
else
# Public repository view PAT (user: TimeTravelersHackedMe)
# The gh CLI used to download assets needs a PAT or the user to login so this prevents that requirement
# Split into two variables so GitHub's detect/remove does not mess with anything
FIRST_PART="github_pat_"
SECOND_PART="11ABLI5FQ0RnibLOzu4kY0_SKzixo0dQRKPrniu0vMVabt"
THIRD_PART="mlwrDNBzDaxsWptk3QRA2OIMLFQWKgEGBCgR"
echo "${FIRST_PART}${SECOND_PART}${THIRD_PART}"
fi
tasks:
act:
cmds:
- task: install:gh
vars:
BIN_NAME: act
PACKAGE: nektos/act
azurefunctions:
cmds:
- task: azurefunctions:{{OS}}
azurefunctions:darwin:
cmds:
- echo 'Install azure-functions-core-tools using Homebrew on MacOS'
azurefunctions:linux:
cmds:
- gh release download -R Azure/azure-functions-core-tools -p "*linux-x64*.zip"
- unzip -q -d azure-functions-cli Azure.Functions.Cli.linux-x64*.zip
- mv azure-functions-cli /opt
- ln -s /opt/azure-functions-cli/func /usr/local/bin/func
- ln -s /opt/azure-functions-cli/gozip /usr/local/bin/gozip
status:
- '[ -f /usr/local/bin/func ]'
azurefunctions:windows:
cmds:
- echo 'Install azure-functions-core-tools using Chocolatey on Windows'
bat:
cmds:
- task: install:gh
vars:
BIN_NAME: bat
PACKAGE: sharkdp/bat
TAR_OPTIONS: ' --strip-components 1'
betwixt:
cmds:
- task: betwixt:{{OS}}
betwixt:darwin:
cmds:
- gh release download --clobber -R kdzwinel/betwixt -p "*darwin-x64.zip"
- unzip -q Betwixt-darwin-x64.zip
- mv Betwixt-darwin-x64/Betwixt.app /Applications
- rm -f Betwixt-darwin-x64.zip
- rm -rf Betwixt-darwin-x64
status:
- '[ -d /Applications/Betwixt.app ]'
betwixt:linux:
cmds:
- gh release download -R kdzwinel/betwixt -p "*linux-x64.zip"
- unzip -q Betwixt-linux-x64.zip
- mv Betwixt-linux-x64 /opt
- ln -s /opt/Betwixt-linux-x64/Betwixt /usr/local/bin/betwixt
status:
- '[ -f /opt/Betwixt-linux-x64/Betwixt ]'
betwixt:windows:
cmds:
- gh release download -R kdzwinel/betwixt -p "*win32-x64.zip"
- cmd /C powershell 'md "C:\Program Files\Betwixt" -Force'
- tar -xf Betwixt-win32-x64.zip -C "C:\Program Files\Betwixt" --strip-components 1
- cmd /C del Betwixt-win32-x64.zip
- cmd /C powershell 'New-Item -Value "C:\Program Files\Betwixt\Betwixt.exe" -Path "C:\Users\Public\Desktop\Betwixt" -ItemType SymbolicLink -Force'
status:
- '[ -f "C:\Program Files\Betwixt\Betwixt.exe" ]'
bitwarden:
cmds:
- task: bw:{{OS}}
status:
- '[ -f /usr/local/bin/bw ]'
bivac:
cmds:
- task: install:gh
vars:
BIN_NAME: bivac
PACKAGE: camptocamp/bivac
bw:darwin:
cmds:
- gh release download -R bitwarden/cli -p "bw-macos*.zip"
- mkdir -p /usr/local/bin && unzip -q bw-macos*.zip -d /usr/local/bin && rm -f bw-macos*.zip
- chmod +x /usr/local/bin/bw
bw:linux:
cmds:
- gh release download -R bitwarden/cli -p "bw-linux*.zip"
- mkdir -p /usr/local/bin && unzip -q bw-linux*.zip -d /usr/local/bin && rm -f bw-linux*.zip
- chmod +x /usr/local/bin/bw
bw:windows:
cmds:
- gh release download -R bitwarden/cli -p "bw-windows*.zip"
- powershell 'md C:/ProgramData/bin -Force; tar -xf bw-windows*.zip -C C:/ProgramData/bin; del bw-windows*.zip -Force'
cerebro:
cmds:
- task: cerebro:{{OS}}
cerebro:darwin:
cmds:
- echo 'Install Cerebro using Homebrew.'
cerebro:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Cerebro
PACKAGE: cerebroapp/cerebro
cerebro:windows:
cmds:
- echo 'Cerebro is not available for Windows.'
consul-cli:
cmds:
- task: install:gh
vars:
BIN_NAME: consul-cli
PACKAGE: mantl/consul-cli
TAR_OPTIONS: ' --strip-components 1'
croc:
cmds:
- task: install:gh
vars:
BIN_NAME: croc
PACKAGE: schollz/croc
ctop:
cmds:
- task: install:gh
vars:
BIN_NAME: ctop
PACKAGE: bcicen/ctop
cumulus:
cmds:
- echo 'Cumulus is available only for MacOS, install using Homebrew on MacOS.'
dasel:
cmds:
- task: install:gh
vars:
BIN_NAME: dasel
PACKAGE: TomWright/dasel
dat:
cmds:
- task: install:gh
vars:
BIN_NAME: dat
PACKAGE: dat-ecosystem-archive/dat
TAR_OPTIONS: ' --strip-components 1'
ZIP_OPTIONS: ' -j'
delta:
cmds:
- task: install:gh
vars:
BIN_NAME: delta
PACKAGE: dandavison/delta
TAR_OPTIONS: ' --strip-components 1'
deno:
cmds:
- task: install:gh
vars:
BIN_NAME: deno
PACKAGE: denoland/deno
deta:
cmds:
- task: install:gh
vars:
BIN_NAME: deta
PACKAGE: deta/deta-cli
direnv:
cmds:
- task: install:gh
vars:
BIN_NAME: direnv
PACKAGE: direnv/direnv
dive:
cmds:
- task: install:gh
vars:
BIN_NAME: dive
PACKAGE: wagoodman/dive
docker-pushrm:
cmds:
- task: install:gh
vars:
BIN_NAME: docker-pushrm
PACKAGE: christian-korneck/docker-pushrm
dockle:
cmds:
- task: install:gh
vars:
BIN_NAME: dockle
PACKAGE: goodwithtech/dockle
doctl:
cmds:
- task: install:gh
vars:
BIN_NAME: doctl
PACKAGE: digitalocean/doctl
dog:
cmds:
- task: install:gh
vars:
BIN_NAME: dog
PACKAGE: ogham/dog
duf:
cmds:
- task: install:gh
vars:
BIN_NAME: duf
PACKAGE: muesli/duf
dust:
cmds:
- task: install:gh
vars:
BIN_NAME: dust
PACKAGE: bootandy/dust
TAR_OPTIONS: ' --strip-components 1'
fd:
cmds:
- task: install:gh
vars:
BIN_NAME: fd
PACKAGE: sharkdp/fd
TAR_OPTIONS: ' --strip-components 1'
# Fails with the error HTTP 404: Not Found (https://api.github.com/repos/henryboldi/felony/releases/latest) because there is no 'latest' release
# felony:
# cmds:
# - task: install:gh
# vars:
# BIN_NAME: felony
# PACKAGE: henryboldi/felony
ffsend:
cmds:
- task: install:gh
vars:
BIN_NAME: ffsend
PACKAGE: timvisee/ffsend
filebrowser:
cmds:
- task: install:gh
vars:
BIN_NAME: filebrowser
PACKAGE: filebrowser/filebrowser
fq:
cmds:
- task: install:gh
vars:
BIN_NAME: fq
PACKAGE: wader/fq
fuego:
cmds:
- task: install:gh
vars:
BIN_NAME: fuego
PACKAGE: sgarciac/fuego
fusion:
cmds:
- task: install:gh
vars:
BIN_NAME: fusion
PACKAGE: edgelaboratories/fusion
ganache:
cmds:
- task: ganache:{{OS}}
ganache:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: Ganache
PACKAGE: trufflesuite/ganache-ui
ganache:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Ganache
PACKAGE: trufflesuite/ganache-ui
ganache:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: Ganache
EXE_PATTERN: '-p *setup.exe'
PACKAGE: trufflesuite/ganache-ui
gh:
cmds:
- task: install:gh
vars:
BIN_NAME: gh
PACKAGE: cli/cli
TAR_OPTIONS: ' --strip-components 1'
gitify:
cmds:
- task: gitify:{{OS}}
gitify:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: gitify
PACKAGE: manosim/gitify
gitify:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Gitify
PACKAGE: manosim/gitify
gitify:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: gitify
EXE_PATTERN: '-p *Setup*.exe'
PACKAGE: manosim/gitify
gitleaks:
cmds:
- task: install:gh
vars:
BIN_NAME: gitleaks
PACKAGE: zricethezav/gitleaks
gitomatic:
cmds:
- task: install:gh
vars:
BIN_NAME: gitomatic
PACKAGE: muesli/gitomatic
glab:
cmds:
- task: install:gh
vars:
BIN_NAME: glab
PACKAGE: profclems/glab
TAR_OPTIONS: ' --strip-components 1'
gojq:
cmds:
- task: install:gh
vars:
BIN_NAME: gojq
PACKAGE: itchyny/gojq
TAR_OPTIONS: ' --strip-components 1'
hey:
cmds:
- task: hey:{{OS}}
hey:darwin:
cmds:
- curl https://hey-release.s3.us-east-2.amazonaws.com/hey_darwin_amd64 -o /usr/local/bin/hey
- chmod +x /usr/local/bin/hey
status:
- '[ -f /usr/local/bin/hey ]'
hey:linux:
cmds:
- curl https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64 -o /usr/local/bin/hey
- chmod +x /usr/local/bin/hey
status:
- '[ -f /usr/local/bin/hey ]'
hey:windows:
cmds:
- curl https://hey-release.s3.us-east-2.amazonaws.com/hey_windows_amd64 -o C:/ProgramData/bin/hey.exe
status:
- '[ -f C:/ProgramData/bin/hey.exe ]'
install:appimage:
cmds:
- gh release download -R '{{.PACKAGE}}' -p "*.AppImage"
- mv *.AppImage /opt/{{.DEST_APPIMAGE_NAME}}.AppImage
- chmod +x /opt/{{.DEST_APPIMAGE_NAME}}.AppImage
- ln -s /opt/{{.DEST_APPIMAGE_NAME}}.AppImage /usr/local/bin/{{.DEST_APPIMAGE_NAME}}
status:
- '[ -f /opt/{{.DEST_APPIMAGE_NAME}}.AppImage ]'
install:dmg:
vars:
LOG_SCRIPT:
sh: echo "${PWD}/.config/log"
cmds:
- gh release download --clobber -R '{{.PACKAGE}}' -p "*64*.dmg" -p "*.dmg"
- |
if (type sudo &> /dev/null && sudo -n true); then
COUNT=0
while read FILE; do
COUNT=$((COUNT + 1))
echo $COUNT
if [ "$COUNT" == "1" ]; then
hdiutil attach "$FILE" -nobrowse -mountpoint /tmp/{{.DMG_NAME}}
cp -r /tmp/{{.DMG_NAME}}/*.app /Applications/
hdiutil detach /tmp/{{.DMG_NAME}}
rm "$FILE"
else
{{.LOG_SCRIPT}} warn 'Multiple releases have possibly been downloaded'
fi
done < <(find . -type f -iname "*.dmg")
else
{{.LOG_SCRIPT}} warn 'Run with sudo privileges to install DMG files'
fi
status:
- '[ -d /Applications/{{.DMG_NAME}}.app ]'
install:gh:
deps:
- :install:software:gh
cmds:
- task: install:gh:{{OS}}
vars:
BIN_NAME: '{{.BIN_NAME}}'
PACKAGE: '{{.PACKAGE}}'
TAR_OPTIONS: '{{.TAR_OPTIONS}}'
ZIP_OPTIONS: '{{.ZIP_OPTIONS}}'
install:gh:darwin:
deps:
- :install:software:gh
vars:
BIN_FOLDER:
sh: echo "/usr/local/bin"
LOG_SCRIPT:
sh: echo "${PWD}/.config/log"
PATTERNS:
sh: |-
if [[ {{ARCH}} == "arm" ]]; then
echo "-p \"*Darwin_arm64\" -p \"*Darwin_arm64.tar.gz\" -p \"*darwin_arm64\" -p \"*darwin_arm64.tar.gz\" -p \"*darwin-arm64.tar.gz\" \
-p \"*darwin-arm64\" -p \"*Darwin-64bit.tar.gz\" -p \"*darwin_x64.tar.gz\" -p \"*darwin.tar.gz\" -p \"*macOS-ARM64.tar.gz\" \
-p \"*aarch64-apple-darwin.zip\" -p \"*-macos\" -p \"*darwin_arm64.zip\" -p \"*arm64-darwin.zip\" -p \"*darwin-amd64.zip\""
else
echo "-p \"*Darwin_x86_64\" -p \"*Darwin_x86_64.tar.gz\" -p \"*Darwin_amd64.tar.gz\" -p \"*darwin_amd64\" -p \"*darwin_amd64.tar.gz\" \
-p \"*darwin-amd64.tar.gz\" -p \"*darwin-amd64\" -p \"*Darwin-64bit.tar.gz\" -p \"*darwin-x64\" -p \"*darwin_x64.tar.gz\" -p \"*MacOS_64-bit.tar.gz\" \
-p \"*darwin-x86_64\" -p \"*darwin_x86_64.tar.gz\" -p \"*darwin.tar.gz\" -p \"*macOS-64bit.tar.gz\" -p \"*x86_64-apple-darwin.zip\" -p \"*-darwin.zip\" \
-p \"*-macos\" -p \"*macOS_amd64.tar.gz\" -p \"*macOS_x86_64.tar.gz\" -p \"*darwin_amd64.zip\" -p \"*macos-x64.zip\" -p \"*x86_64-darwin.zip\" -p \"*darwin-arm64.zip\""
fi
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R "{{.PACKAGE}}" {{.PATTERNS}} -D "$TMP"
- |
cd "$TMP"
COUNT=0
while read FILE; do
COUNT=$((COUNT + 1))
if [ "$COUNT" == "1" ]; then
if [[ "$FILE" == *.tar.gz ]]; then
tar -xzf "$FILE"{{.TAR_OPTIONS}}
rm "$FILE"
elif [[ "$FILE" == *.zip ]]; then
echo 'zip'
unzip{{.ZIP_OPTIONS}} "$FILE"
rm "$FILE"
fi
else
{{.LOG_SCRIPT}} warn 'Multiple releases have possibly been downloaded'
fi
done < <(find . -type f)
pwd
ls -la
rm -rf CHANGELOG.md LICENSE LICENSE* README.md autocomplete completion* *.1 *.sh *_autocomplete contrib Changes manpages
mkdir -p {{.BIN_FOLDER}}
if [ "$(ls 2>/dev/null * | wc -l | tr -d ' ')" == "1" ]; then
{{.LOG_SCRIPT}} info 'Moving `{{.BIN_NAME}}` from its default location'
mv * {{.BIN_FOLDER}}/{{.BIN_NAME}}
else
if [ -d bin ]; then
cd bin
if [ "$(ls 2>/dev/null * | wc -l | tr -d ' ')" == "1" ]; then
{{.LOG_SCRIPT}} info 'Moving `{{.BIN_NAME}}` from the `bin` folder'
mv * {{.BIN_FOLDER}}/{{.BIN_NAME}}
else
{{.LOG_SCRIPT}} warn 'Unmatched binary named `{{.BIN_NAME}}` from `*.tar.gz` with a `bin` folder'
{{.COMMANDS}}
fi
cd ..
elif [ "$(ls 2>/dev/null {{.BIN_NAME}} | wc -l | tr -d ' ')" == "1" ]; then
{{.LOG_SCRIPT}} warn 'Moving `{{.BIN_NAME}}` from its default location, but, there are other files that are not moved'
mv {{.BIN_NAME}} {{.BIN_FOLDER}}/{{.BIN_NAME}}
else
echo "$(ls 2>/dev/null {{.BIN_NAME}} | wc -l | tr -d ' ')"
{{.LOG_SCRIPT}} warn 'Unmatched binary named `{{.BIN_NAME}}`'
{{.COMMANDS}}
fi
fi
- chmod +x {{.BIN_FOLDER}}/{{.BIN_NAME}}
status:
- '[ -f /usr/local/bin/{{.BIN_NAME}} ]'
install:gh:linux:
deps:
- :install:software:gh
vars:
BIN_FOLDER:
sh: echo "/usr/local/bin"
LOG_SCRIPT:
sh: echo "${PWD}/.config/log"
PATTERNS: -p "*Linux_x86_64" -p "*Linux_x86_64.tar.gz" -p "*Linux_amd64.tar.gz" -p "*linux_amd64" -p "*linux_amd64.tar.gz" -p "*linux-amd64.tar.gz"
-p "*linux-amd64" -p "*Linux-64bit.tar.gz" -p "*linux-x64" -p "*linux_x64.tar.gz" -p "*linux-x86_64" -p "*linux_x86_64.tar.gz" -p "*linux_amd64.zip"
-p "*linux-x64.zip" -p "*linux-x64.tar.gz" -p "*x86_64-linux.zip" -p "*Linux_64-bit.tar.gz" -p "*linux-amd64.zip"
PATTERNS_GNU: -p "*x86_64-unknown-linux-gnu.tar.gz" -p "*x86_64-unknown-linux-gnu.zip"
PATTERNS_MUSL: -p "*x86_64-unknown-linux-musl.tar.gz"
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R "{{.PACKAGE}}" {{.PATTERNS}} {{.PATTERNS_GNU}} -D "$TMP"
- |
cd "$TMP"
COUNT=0
while read FILE; do
COUNT=$((COUNT + 1))
if [ "$COUNT" == "1" ]; then
if [[ "$FILE" == *.tar.gz ]]; then
tar -xzf "$FILE"{{.TAR_OPTIONS}}
rm "$FILE"
elif [[ "$FILE" == *.zip ]]; then
unzip{{.ZIP_OPTIONS}} "$FILE"
rm "$FILE"
fi
else
{{.LOG_SCRIPT}} warn 'Multiple releases have possibly been downloaded'
fi
done < <(find . -type f)
ls -la
rm -rf CHANGELOG.md LICENSE LICENSE* README.md autocomplete completion* *.1 *.sh *_autocomplete contrib Changes manpages
mkdir -p {{.BIN_FOLDER}}
if [ "$(ls 2>/dev/null * | wc -l)" == "1" ]; then
{{.LOG_SCRIPT}} info 'Moving `{{.BIN_NAME}}` from its default location'
if ! mv * {{.BIN_FOLDER}}/{{.BIN_NAME}}; then
sudo mv * {{.BIN_FOLDER}}/{{.BIN_NAME}}
fi
else
if [ -d bin ]; then
cd bin
if [ "$(ls 2>/dev/null * | wc -l)" == "1" ]; then
{{.LOG_SCRIPT}} info 'Moving `{{.BIN_NAME}}` from the `bin` folder'
if ! mv * {{.BIN_FOLDER}}/{{.BIN_NAME}}; then
sudo mv * {{.BIN_FOLDER}}/{{.BIN_NAME}}
fi
else
{{.LOG_SCRIPT}} warn 'Unmatched binary named `{{.BIN_NAME}}` from `*.tar.gz` with a `bin` folder'
{{.COMMANDS}}
fi
cd ..
elif [ "$(ls 2>/dev/null {{.BIN_NAME}} | wc -l)" == "1" ]; then
{{.LOG_SCRIPT}} warn 'Moving `{{.BIN_NAME}}` from its default location, but, there are other files that are not moved'
if ! mv {{.BIN_NAME}} {{.BIN_FOLDER}}/{{.BIN_NAME}}; then
sudo mv {{.BIN_NAME}} {{.BIN_FOLDER}}/{{.BIN_NAME}}
fi
else
{{.LOG_SCRIPT}} warn 'Unmatched binary named `{{.BIN_NAME}}`'
{{.COMMANDS}}
fi
fi
- chmod +x {{.BIN_FOLDER}}/{{.BIN_NAME}}
status:
- '[ -f {{.BIN_FOLDER}}/{{.BIN_NAME}} ]'
install:gh:windows:
deps:
- :install:software:gh
vars:
BIN_FOLDER: C:/ProgramData/bin
PATTERNS:
-p "*x86_64-windows.zip" -p "*Windows_64-bit.tar.gz" -p "*windows-amd64*.zip" -p "*windows_amd64.zip" -p "*windows_amd64.tar.gz" -p "*windows-amd64*"
-p "*win-x64.zip" -p "*Windows-64bit.zip" -p "*64*windows-msvc.zip" -p "*windows_x64.zip" -p "*Windows_x86_64.tar.gz" -p "*win-*.exe" -p "*setup*.exe" -p "*Setup*.exe"
-p "*installer*64*.exe"
env:
TMPD:
sh: powershell '$rnd=Get-Random; while(! (Test-Path $env:tmp/tmp.$rnd) -and ! ($created)){$ret=(md $env:tmp/tmp.$rnd -Force).FullName; $created=$true}$ret'
cmds:
- gh release download -R "{{.PACKAGE}}" {{.PATTERNS}} {{.EXE_PATTERN}} -D "$TMPD"
- cd "$TMPD" && powershell '
$COUNT = 0;
$installer=$false;
Get-ChildItem -File | %{
$FILE = $_.Name;
$COUNT = $COUNT + 1;
if($COUNT -eq 1 ){
if (("$FILE" -like "*.tar.gz") -or ("$FILE" -like "*.zip")){
tar -xzf "$FILE"{{.TAR_OPTIONS}};
Remove-Item "$FILE" -Force;
}elseif((! $installer) -and (("$FILE" -like "*setup*64*.exe") -or ("$FILE" -like "*setup*.exe") -or ("$FILE" -like "*installer*64*.exe") -or ("$FILE" -like "*64*installer*.exe"))){
$installer=$true;
Start-Process "$FILE" /S -NoNewWindow -Wait -PassThru;
Remove-Item "$FILE" -Force;
}
}else{
Write-Host 'Multiple releases have possibly been downloaded' -ForegroundColor Yellow;
}
};
Get-ChildItem;
Remove-Item "CHANGELOG.md", "LICENSE", "LICENSE*", "README.md", "autocomplete", "completion*", "*_autocomplete", "contrib", "Changes" -EA SilentlyContinue -Force;
mkdir {{.BIN_FOLDER}} -EA SilentlyContinue;
pwd;
if($installer){
Write-Host '{{.BIN_NAME}} installed using the installer';
}elseif((Get-ChildItem -File | Measure).Count -eq 1){
Write-Host 'Moving {{.BIN_NAME}} from its default location';
Move-Item -Force * {{.BIN_FOLDER}}/{{.BIN_NAME}}.exe;
}else{
if(Test-Path .\bin){
cd bin;
if((Get-ChildItem -File | Measure).Count -eq 1){
Write-Host 'Moving {{.BIN_NAME}} from the bin folder';
Move-Item -Force * {{.BIN_FOLDER}}/{{.BIN_NAME}}.exe;
}else{
Write-Host 'Unmatched binary named {{.BIN_NAME}} from *.tar.gz with a bin folder' -ForegroundColor Yellow;
}
cd ..;
}elseif((Get-ChildItem -File {{.BIN_NAME}}* -ea SilentlyContinue | Measure).Count -gt 0){
Write-Host 'Moving {{.BIN_NAME}} from its default location, but, there are other files that are not moved' -ForeGroundColor Yellow;
Move-Item -Force {{.BIN_NAME}}*.exe {{.BIN_FOLDER}}/;
}else{
Write-Host 'Unmatched binary named {{.BIN_NAME}}' -ForegroundColor Yellow;
}
}'
status:
- '[ -f {{.BIN_FOLDER}}/{{.BIN_NAME}}.exe ]'
jitsi-meet-electron:
cmds:
- task: jitsi-meet-electron:{{OS}}
status:
- '[ -f /usr/local/bin/jitsi-meet-electron ]'
jitsi-meet-electron:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: jitsi-meet
PACKAGE: jitsi/jitsi-meet-electron
jitsi-meet-electron:linux:
cmds:
- gh release download -R jitsi/jitsi-meet-electron -p "*.AppImage"
- mv *.AppImage /opt/jitsi-meet.AppImage
- chmod +x /opt/jitsi-meet.AppImage
- ln -s /opt/jitsi-meet.AppImage /usr/local/bin/jitsi-meet-electron
jitsi-meet-electron:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: jitsi-meet
PACKAGE: jitsi/jitsi-meet-electron
jq:
cmds:
- task: jq:{{OS}}
status:
- '[ -f /usr/local/bin/jq ]'
jq:darwin:
cmds:
- gh release download -R stedolan/jq -p "jq-osx-amd64"
- mkdir -p /usr/local/bin && mv jq-osx-amd64 /usr/local/bin/jq
- chmod +x /usr/local/bin/jq
jq:linux:
cmds:
- gh release download -R stedolan/jq -p "jq-linux64"
- mkdir -p /usr/local/bin && mv jq-linux64 /usr/local/bin/jq
- chmod +x /usr/local/bin/jq
jq:windows:
cmds:
- gh release download -R stedolan/jq -p "jq-win64.exe"
- powershell 'md C:/ProgramData/bin -Force; Move-Item jq-win64.exe C:/ProgramData/bin/jq.exe -Force'
kubectx:
cmds:
- task: install:gh
vars:
BIN_NAME: kubectx
PACKAGE: ahmetb/kubectx
kubenav:
cmds:
- task: kubenav:{{OS}}
kubenav:darwin:
vars:
PATTERNS:
sh: |-
if [[ {{ARCH}} == "arm" ]]; then
echo "-p \"*darwin-arm64.zip\""
else
echo "-p \"*darwin-amd64.zip\""
fi
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R kubenav/kubenav {{.PATTERNS}} -D "$TMP"
- |
cd "$TMP"
FILE=$(find . -type f -iname *.zip)
unzip -q "$FILE"
rm "$FILE"
mv kubenav.app /Applications/
status:
- '[ -d /Applications/kubenav.app ]'
kubenav:linux:
vars:
PATTERNS:
sh: |-
if [[ {{ARCH}} == "arm" ]]; then
echo "-p \"*linux-arm64.zip\""
else
echo "-p \"*linux-amd64.zip\""
fi
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R kubenav/kubenav {{.PATTERNS}} -D "$TMP"
- |
cd "$TMP"
FILE=$(find . -type f -iname *.zip)
unzip -q "$FILE"
rm "$FILE"
mv kubenav /usr/local/bin
chmod +x /usr/local/bin/kubenav
status:
- '[ -f /usr/local/bin/kubenav ]'
kubenav:windows:
cmds:
- gh release download -R kubenav/kubenav -p "*windows-amd64.zip"
- tar -xf *windows-amd64.zip
- cmd /C move kubenav.exe C:/ProgramData/bin/kubenav.exe
- cmd /C del /Q *windows-amd64.zip
status:
- '[ -f C:/ProgramData/bin/kubenav.exe ]'
linuxkit:
cmds:
- task: install:gh
vars:
BIN_NAME: linuxkit
PACKAGE: linuxkit/linuxkit
manta:
cmds:
- task: manta:{{OS}}
manta:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: Manta
PACKAGE: hql287/manta
manta:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Manta
PACKAGE: hql287/manta
manta:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: Manta
EXE_PATTERN: '*Setup*.exe'
PACKAGE: hql287/manta
mark-text:
cmds:
- task: marktext:{{OS}}
marktext:darwin:
cmds:
- echo 'Install Marktext using Homebrew.'
marktext:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Marktext
PACKAGE: marktext/marktext
marktext:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: marktext
PACKAGE: marktext/marktext
masscode:
cmds:
- task: masscode:{{OS}}
status:
- '[ -f /usr/local/bin/masscode ]'
masscode:darwin:
cmds:
- echo 'Install MassCode using Homebrew on MacOS.'
masscode:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: MassCode
PACKAGE: antonreshetov/masscode
masscode:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: masscode
EXE_PATTERN: '*Setup*.exe'
PACKAGE: antonreshetov/masscode
mergestat:
cmds:
- task: install:gh
vars:
BIN_NAME: mergestat
PACKAGE: mergestat/mergestat
mkcert:
cmds:
- task: install:gh
vars:
BIN_NAME: mkcert
PACKAGE: FiloSottile/mkcert
motrix:
cmds:
- task: motrix:{{OS}}
motrix:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: Motrix
PACKAGE: agalwood/motrix
motrix:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Motrix
PACKAGE: agalwood/motrix
motrix:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: Motrix
PACKAGE: agalwood/motrix
mqttx:
cmds:
- task: install:gh
vars:
BIN_NAME: mqttx
EXE_PATTERN: '*Setup*x64.exe'
PACKAGE: agalwood/mqttx
nebula:
cmds:
- task: install:gh
vars:
BIN_NAME: nebula
PACKAGE: slackhq/nebula
nfpm:
cmds:
- task: install:gh
vars:
BIN_NAME: nfpm
PACKAGE: goreleaser/nfpm
oq:
cmds:
- task: install:gh
vars:
BIN_NAME: oq
PACKAGE: Blacksmoke16/oq
osquery:
cmds:
- task: osquery:{{OS}}
osquery:darwin:
cmds:
- task: install:gh
vars:
BIN_NAME: osquery
PACKAGE: osquery/osquery
osquery:linux:
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R osquery/osquery -p "*linux_x86_64.tar.gz" -D "$TMP"
- |
cd "$TMP"
FILE=$(find . -type f)
tar -xzf "$FILE"
rm "$FILE"
cp -r * /
status:
- '[ -f /usr/bin/osqueryd]'
osquery:windows:
cmds:
- echo 'osquery is not available for Windows.'
peco:
cmds:
- task: install:gh
vars:
BIN_NAME: peco
PACKAGE: peco/peco
TAR_OPTIONS: ' --strip-components 1'
ZIP_OPTIONS: ' -j'
pretzel:
cmds:
- task: pretzel:{{OS}}
pretzel:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: Pretzel
PACKAGE: amiechen/pretzel
pretzel:linux:
cmds:
- echo 'Pretzel is not available for Linux'
pretzel:windows:
cmds:
- echo 'Pretzel is not available for Windows'
q:
cmds:
- task: install:gh
vars:
BIN_NAME: q
PACKAGE: harelba/q
raindrop:
cmds:
- task: raindrop:{{OS}}
raindrop:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: raindrop
PACKAGE: raindropio/raindrop
raindrop:linux:
cmds:
- echo 'Raindrop is not available for Linux'
raindrop:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: raindrop
EXE_PATTERN: '*Installer.exe'
PACKAGE: raindropio/raindrop
responsively:
cmds:
- task: responsively:{{OS}}
responsively:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: ResponsivelyApp
PACKAGE: responsively-org/responsively-app
responsively:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: Responsively
PACKAGE: responsively-org/responsively-app
responsively:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: ResponsivelyApp
PACKAGE: responsively-org/responsively-app
runjs:
cmds:
- task: runjs:{{OS}}
runjs:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: runjs
PACKAGE: lukehaas/RunJS
runjs:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: RunJS
PACKAGE: lukehaas/RunJS
runjs:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: runjs
PACKAGE: lukehaas/RunJS
shfmt:
cmds:
- task: install:gh
vars:
BIN_NAME: shfmt
PACKAGE: mvdan/sh
ssl-proxy:
cmds:
- task: install:gh
vars:
BIN_NAME: ssl-proxy
PACKAGE: suyashkumar/ssl-proxy
switchhosts:
cmds:
- task: switchhosts:{{OS}}
switchhosts:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: SwitchHosts
PACKAGE: oldj/SwitchHosts
switchhosts:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: SwitchHosts
PACKAGE: oldj/SwitchHosts
switchhosts:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: SwitchHosts
PACKAGE: oldj/SwitchHosts
tabby:
cmds:
- task: tabby:{{OS}}
tabby:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: tabby
PACKAGE: Eugeny/tabby
tabby:linux:
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R Eugeny/tabby -p "*linux-x64.tar.gz" -D "$TMP"
- |
cd "$TMP"
FILE=$(find . -type f)
mkdir Tabby
tar -xzf "$FILE" -C Tabby --strip-components 1
rm "$FILE"
mv Tabby /opt/
ln -s /opt/Tabby/tabby /usr/local/bin/tabby
status:
- '[ -f /usr/local/bin/tabby]'
tabby:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: tabby
PACKAGE: jackd248/tabby
task:
cmds:
- task: install:gh
vars:
BIN_NAME: task
PACKAGE: go-task/task
temps:
cmds:
- task: temps:{{OS}}
temps:darwin:
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R jackd248/temps -p "*darwin-x64.zip" -D "$TMP"
- |
cd "$TMP"
unzip -q "Temps-darwin-x64.zip"
rm "Temps-darwin-x64.zip"
mv Temps-darwin-x64/*.app /Applications/
status:
- '[ -d /Applications/Temps.app ]'
temps:linux:
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R jackd248/temps -p "*linux-x64.zip" -D "$TMP"
- |
cd "$TMP"
unzip -q "Temps-linux-x64.zip"
rm "Temps-linux-x64.zip"
mv Temps-linux-x64 /opt/
ln -s /opt/Temps-linux-x64/Temps /usr/local/bin/Temps
status:
- '[ -f /usr/local/bin/Temps]'
temps:windows:
cmds:
- echo 'Temps does not work on Windows'
tokei:
cmds:
- task: install:gh
vars:
BIN_NAME: tokei
PACKAGE: XAMPPRocky/tokei
transfer:
cmds:
- task: install:gh
vars:
BIN_NAME: transfer
PACKAGE: rinetd/transfer
trivy:
cmds:
- task: install:gh
vars:
BIN_NAME: trivy
PACKAGE: aquasecurity/trivy
udemy-downloader-gui:
cmds:
- task: udemy-downloader-gui:{{OS}}
udemy-downloader-gui:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: Udeler
PACKAGE: FaisalUmair/udemy-downloader-gui
udemy-downloader-gui:linux:
cmds:
- task: install:appimage
vars:
DEST_APPIMAGE_NAME: UdemyDownloadedGUI
PACKAGE: FaisalUmair/udemy-downloader-gui
udemy-downloader-gui:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: udemy-downloader-gui
PACKAGE: FaisalUmair/udemy-downloader-gui
up:
cmds:
- task: up:{{OS}}
status:
- '[ -f /usr/local/bin/up ]'
up:darwin:
cmds:
- gh release download -R akavel/up -p "up-darwin"
- mkdir -p /usr/local/bin && mv up-darwin /usr/local/bin/up
- chmod +x /usr/local/bin/up
up:linux:
cmds:
- gh release download -R akavel/up -p "up"
- mkdir -p /usr/local/bin && mv up /usr/local/bin/up
- chmod +x /usr/local/bin/up
up:windows:
cmds:
- echo 'up is not available for Windows from GitHub Releases'
ventoy:
cmds:
- task: ventoy:{{OS}}
status:
- '[ -f /opt/ventoy/VentoyGUI.x86_64 ]'
ventoy:darwin:
cmds:
- echo "Ventoy is not available for MacOS"
ventoy:linux:
cmds:
- gh release download -R ventoy/Ventoy -p "*linux.tar.gz"
- ls *linux.tar.gz | xargs tar -xvf
- rm -f *.tar.gz
- mkdir -p /opt/ventoy && mv ./ventoy-* /opt/ventoy/
ventoy:windows:
cmds:
- gh release download -R ventoy/ventoy -p "ventoy_windows_amd64.exe"
- powershell 'md C:/ProgramData/bin -Force; Move-Item ventoy_windows_amd64.exe C:/ProgramData/bin/ventoy.exe -Force'
webtorrent:
cmds:
- task: webtorrent:{{OS}}
webtorrent:darwin:
cmds:
- task: install:dmg
vars:
DMG_NAME: WebTorrent
PACKAGE: webtorrent/webtorrent-desktop
webtorrent:linux:
env:
TMP:
sh: mktemp -d
cmds:
- gh release download -R webtorrent/webtorrent-desktop -p "*linux-x64.zip" -D "$TMP"
- |
cd "$TMP"
FILE=$(find . -type f)
unzip -q $FILE
rm "$FILE"
mv WebTorrent-linux-x64 /opt/
ln -s /opt/WebTorrent-linux-x64/WebTorrent /usr/local/bin/webtorrent
status:
- '[ -f /usr/local/bin/webtorrent]'
webtorrent:windows:
cmds:
- task: install:gh
vars:
BIN_NAME: WebTorrent
PACKAGE: webtorrent/webtorrent-desktop
whaler:
cmds:
- task: whaler:{{OS}}
status:
- '[ -f /usr/local/bin/whaler ]'
whaler:darwin:
cmds:
- gh release download -R P3GLEG/whaler -p "Whaler_MacOS"
- mkdir -p /usr/local/bin && mv Whaler_MacOS /usr/local/bin/whaler
- chmod +x /usr/local/bin/whaler
whaler:linux:
cmds:
- gh release download -R P3GLEG/whaler -p "Whaler_linux_amd64"
- mkdir -p /usr/local/bin && mv Whaler_linux_amd64 /usr/local/bin/whaler
- chmod +x /usr/local/bin/whaler
whaler:windows:
cmds:
- gh release download -R P3GLEG/whaler -p "Whaler_windows.exe"
- powershell 'md C:/ProgramData/bin -Force; Move-Item Whaler_windows.exe C:/ProgramData/bin/whaler.exe -Force'
yq:
cmds:
- task: yq:{{OS}}
status:
- '[ -f /usr/local/bin/yq ]'
yq:darwin:
cmds:
- gh release download -R mikefarah/yq -p "yq_darwin_amd64"
- mkdir -p /usr/local/bin && mv yq_darwin_amd64 /usr/local/bin/yq
- chmod +x /usr/local/bin/yq
yq:linux:
cmds:
- gh release download -R mikefarah/yq -p "yq_linux_amd64"
- mkdir -p /usr/local/bin && mv yq_linux_amd64 /usr/local/bin/yq
- chmod +x /usr/local/bin/yq
yq:windows:
cmds:
- gh release download -R mikefarah/yq -p "yq_windows_amd64.exe"
- powershell 'md C:/ProgramData/bin -Force; Move-Item yq_windows_amd64.exe C:/ProgramData/bin/yq.exe -Force'