blob: 41ea564e1a5e1681483477ef94853f574a24f7a0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix
set -euo pipefail
SCRIPT_DIR="$(dirname "$0")"
latest_version() {
curl -s "https://api.github.com/repos/patrikx3/onenote/releases/latest" | jq -r '.tag_name | sub("^v"; "")'
}
fetch_sri() {
local version=$1
local plat=$2
local system=$3
local hashi
hash=$(nix-prefetch-url https://github.com/patrikx3/onenote/releases/download/v${version}/P3X-OneNote-${version}${plat}.AppImage)
error=$?
if [ $error -gt 0 ]; then
echo "ERROR $error Fetching $version for $system" >&2
return $error
fi
nix hash convert --hash-algo sha256 --to sri $hash --extra-experimental-features nix-command
}
system_plat() {
case "$1" in
x86_64-linux) echo "" ;;
aarch64-linux) echo "-arm64" ;;
*) echo "BAD SYSTEM: $1" >&2; exit 2 ;;
esac
}
generate_json() {
local version="$1"
local systems=("x86_64-linux" "aarch64-linux")
echo "{"
echo " \"version\": \"${version}\","
echo " \"hash\": {"
local first=1
for system in "${systems[@]}"; do
local plat
plat=$(system_plat "$system")
local sri
sri=$(fetch_sri "$version" "$plat" "$system")
# JSON comma handling
if [ $first -eq 0 ]; then
echo ","
fi
first=0
echo -n " \"${system}\": \"${sri}\""
done
echo ""
echo " }"
echo "}"
}
if [ -z "${VERSION:-}" ]; then
echo "VERSION not set, fetching latest release…" >&2
VERSION="$(latest_version)"
fi
echo "p3x-onenote: v$VERSION"
JSON=$(generate_json "$VERSION")
echo "$JSON" > "$SCRIPT_DIR/sources.json"
cat "$SCRIPT_DIR/sources.json"
|