47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -u
|
|
set -o pipefail
|
|
|
|
case "${1:-nothing}" in
|
|
build)
|
|
nix flake show --json | jq -r '.packages."x86_64-linux"|keys[]' | xargs -I {} nix build .#{}
|
|
;;
|
|
clean)
|
|
fd -Itl -X rm -rfv
|
|
;;
|
|
hash)
|
|
shift
|
|
declare -a FIELDS=()
|
|
FULL_SLUG="${1}"
|
|
REV="${2}"
|
|
IFS='/' read -r -a FIELDS <<<"${FULL_SLUG:?}"
|
|
if [[ ${#FIELDS[@]} -eq 2 ]]; then
|
|
CHECKSUM="$(nix-prefetch-url --type sha256 --unpack "https://github.com/${FULL_SLUG}/archive/${REV:?}.tar.gz" 2>/dev/null)"
|
|
nix hash to-sri --type sha256 "${CHECKSUM:?}"
|
|
else
|
|
echo -e "${CL_RED}Repo slug should be in OWNER/REPO format${CL_RST}"
|
|
fi
|
|
;;
|
|
fmt)
|
|
alejandra --quiet .
|
|
shfmt -w -s -i 2 -ci xtask update.sh
|
|
;;
|
|
update)
|
|
shift
|
|
PACKAGE="${1-}"
|
|
VERSION="${2-}"
|
|
echo "{\"package\": \"${PACKAGE}\", \"version\": \"${VERSION}\"}" | gh workflow run update.yml --json
|
|
sleep 5
|
|
gh run list --workflow=update.yml --json databaseId | jq .[0].databaseId | xargs gh run watch
|
|
;;
|
|
sri)
|
|
shift
|
|
nix hash to-sri --type sha256 "${1:?}"
|
|
;;
|
|
nothing)
|
|
echo -e "${CL_RED}USAGE:${CL_RST}\n${CL_YLW}${0} '<action>'\n\t[possible values: 'clean' 'hash' 'fmt' 'update' 'sri']${CL_RST}"
|
|
;;
|
|
esac
|