#!/bin/bash set -e TEMPDIR= exe_link= version= exe_name= exe_sha256= clear() { rm -rf "$TEMPDIR" } TEMPDIR="$(mktemp -d)" trap clear EXIT check_dep() { if ! command -v "$@" &>/dev/null; then echo "$@" not installed. >&2 return 1 fi } check_deps() { check_dep sed check_dep curl check_dep jq } load_current_version() { # loading json from file https://music-desktop-application.s3.yandex.net/stable/download.json curl -s https://music-desktop-application.s3.yandex.net/stable/download.json > "$TEMPDIR"/download.json exe_link=$(jq -r '.windows' "$TEMPDIR"/download.json) version="$(echo "$exe_link" | grep -oP '(?<=x64_).*(?=.exe)')" exe_name="$(basename "$exe_link")" echo "Windows url: $exe_link" echo "Version: $version" echo "Exe name: $exe_name" curl "$exe_link" > "$TEMPDIR/$exe_name" exe_sha256="$(sha256sum "$TEMPDIR/$exe_name" | awk '{print $1}')" echo "Exe sha256: $exe_sha256" } update_version() { rm -rf ./version_info.json cat > ./version_info.json <<EOF { "version": "$version", "exe_name": "$exe_name", "exe_link": "$exe_link", "exe_sha256": "$exe_sha256" } EOF } update_pkbuild() { cp ./templates/PKGBUILD ./PKGBUILD sed -i "s#%version%#$version#g" ./PKGBUILD sed -i "s#%release%#1#g" ./PKGBUILD sed -i "s#%exe_name%#$exe_name#g" ./PKGBUILD sed -i "s#%exe_link%#$exe_link#g" ./PKGBUILD sed -i "s#%exe_sha256%#$exe_sha256#g" ./PKGBUILD } update_flake() { sed -i 's#\(ymExe\.url\s*=\s*\).*;#\1'"$exe_link"';#' ./flake.nix if check_dep nix; then nix flake lock --update-input ymExe else echo "flake.nix was updated, but nix not installed to update flake.lock" fi } check_deps load_current_version update_version update_pkbuild update_flake