diff --git a/install.sh b/install.sh index ae067f7..a98aaab 100644 --- a/install.sh +++ b/install.sh @@ -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