Refactor install.sh for improved quoting and variable handling
All checks were successful
Deploy ACT Runner Installer / deploy (push) Successful in 10s

This commit is contained in:
2025-11-19 22:55:10 +07:00
parent 41c4043a03
commit 5460e2da18

View File

@@ -1,12 +1,12 @@
#!/bin/bash
check_command() {
command -v $1 >/dev/null 2>&1
command -v "$1" >/dev/null 2>&1
}
check_version() {
act_runner_version=$(act_runner -v | grep -o 'v[0-9]\+\.[0-9]\+\.[0-9]\+')
echo $act_runner_version
echo "$act_runner_version"
}
# Ensure jq is installed (attempt auto-install on common distros)
@@ -59,7 +59,7 @@ fi
required_commands=("curl" "jq" "wget" "unxz" "sha256sum")
for cmd in "${required_commands[@]}"; do
if ! check_command $cmd; then
if ! check_command "$cmd"; then
echo "Error: '$cmd' command not found. Please make sure all required commands are installed."
exit 1
fi
@@ -71,21 +71,21 @@ if [ "$arch" = "x86_64" ]; then
fi
json=$(curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases/latest)
latest_version=$(echo $json | jq -r '.tag_name')
url_checksum=$(echo $json | jq -r '.assets[] | select(.name | contains("linux-'$arch'") and contains(".xz.sha256")) | .browser_download_url')
url_binary=$(echo $json | jq -r '.assets[] | select(.name | contains("linux-'$arch'") and contains(".xz")) | .browser_download_url')
checksum_filename=$(basename $url_checksum)
filename=$(basename $url_binary)
latest_version=$(echo "$json" | jq -r '.tag_name')
url_checksum=$(echo "$json" | jq -r '.assets[] | select(.name | contains("linux-'"$arch"'") and contains(".xz.sha256")) | .browser_download_url')
url_binary=$(echo "$json" | jq -r '.assets[] | select(.name | contains("linux-'"$arch"'") and contains(".xz")) | .browser_download_url')
checksum_filename=$(basename "$url_checksum")
filename=$(basename "$url_binary")
if [ -z "$current_version" ] || [ "$current_version" != "$latest_version" ]; then
echo "Updating act_runner to version: $latest_version"
wget $url_binary
wget $url_checksum
sha256sum -c $checksum_filename
rm $checksum_filename
unxz $filename
filename=$(echo $filename | sed 's/\.xz$//')
mv $filename '/usr/local/bin/act_runner'
wget "$url_binary"
wget "$url_checksum"
sha256sum -c "$checksum_filename"
rm "$checksum_filename"
unxz "$filename"
filename=${filename%.xz}
mv "$filename" '/usr/local/bin/act_runner'
chmod +x /usr/local/bin/act_runner
echo "Update completed."
else