|
3 | 3 | # Exit on any error |
4 | 4 | set -e |
5 | 5 |
|
6 | | -# Temporary directory to store downloaded files |
7 | | -TMPDIR=$(mktemp -d) |
8 | | -trap 'rm -rf "$TMPDIR"' EXIT |
9 | | - |
10 | | -# Fetch the latest Git tag and update pkgver |
| 6 | +# Fetch the latest tag from the repository |
11 | 7 | LATEST_TAG=$(git ls-remote --tags https://github.com/MuntasirSZN/getquotes.git | grep -oP 'tags/v?\K([0-9]+(\.[0-9]+)+)' | sort -V | tail -n 1) |
12 | 8 |
|
13 | 9 | if [[ -z "$LATEST_TAG" ]]; then |
14 | | - echo "No Git tags found. pkgver was not updated." |
15 | | - exit 1 |
| 10 | + echo "No Git tags found. pkgver was not updated." |
| 11 | + exit 1 |
16 | 12 | fi |
17 | 13 |
|
18 | | -# Escape special characters for sed |
19 | | -LATEST_TAG_ESC=$(echo "$LATEST_TAG" | sed 's/[\/&]/\\&/g') |
20 | | - |
21 | | -# Update the PKGBUILD |
22 | | -sed -i "s/^pkgver=.*/pkgver=$LATEST_TAG_ESC/" ../packages/aur/getquotes/PKGBUILD |
23 | | -echo "Updated pkgver to $LATEST_TAG in PKGBUILD." |
24 | | - |
25 | | -# Read the updated pkgver from PKGBUILD |
26 | | -PKGVER=$(sed -n 's/^pkgver=//p' ../packages/aur/getquotes/PKGBUILD) |
| 14 | +# Read current pkgver from PKGBUILD |
| 15 | +CURRENT_PKGVER=$(sed -n 's/^pkgver=//p' ../packages/aur/getquotes/PKGBUILD) |
27 | 16 |
|
28 | | -# Read source array from PKGBUILD |
29 | | -mapfile -t SOURCES < <(sed -n '/^source=(/,/^)/ { /^source=(/d; /^)/d; /^[[:space:]]*#/d; s/^[[:space:]]*"\([^"]*\)".*$/\1/; p }' ../packages/aur/getquotes/PKGBUILD) |
30 | | - |
31 | | -# Download files and calculate sha256sums |
32 | | -declare -A SUMS |
33 | | -for URL in "${SOURCES[@]}"; do |
34 | | - FILE=$(basename "$URL") |
35 | | - curl -L -o "$TMPDIR/$FILE" "$URL" |
36 | | - SUM=$(sha256sum "$TMPDIR/$FILE" | awk '{print $1}') |
37 | | - SUMS["$URL"]=$SUM |
38 | | -done |
39 | | - |
40 | | -# Read existing sha256sums from PKGBUILD with quotes |
41 | | -mapfile -t OLD_SUMS_QUOTED < <(sed -n '/^sha256sums=(/,/^)/ { /^sha256sums=(/d; /^)/d; /^[[:space:]]*#/d; s/^[[:space:]]*"\([^"]*\)".*$/"\1"/; p }' ../packages/aur/getquotes/PKGBUILD) |
| 17 | +# Check if pkgver is already up to date |
| 18 | +if [[ "$CURRENT_PKGVER" == "$LATEST_TAG" ]]; then |
| 19 | + echo "pkgver is already up to date: $CURRENT_PKGVER" |
| 20 | + exit 0 |
| 21 | +fi |
42 | 22 |
|
43 | | -# Replace old sums with new sums, preserving quotes |
44 | | -for i in "${!SOURCES[@]}"; do |
45 | | - URL="${SOURCES[$i]}" |
46 | | - NEW_SUM="${SUMS[$URL]}" |
47 | | - OLD_SUM_QUOTED="${OLD_SUMS_QUOTED[$i]}" |
48 | | - # Escape special characters for sed |
49 | | - OLD_SUM_ESC=$(echo "$OLD_SUM_QUOTED" | sed 's/[\/&]/\\&/g') |
50 | | - NEW_SUM_ESC=$(echo "\"$NEW_SUM\"" | sed 's/[\/&]/\\&/g') |
51 | | - # Update the PKGBUILD |
52 | | - sed -i "s/$OLD_SUM_ESC/$NEW_SUM_ESC/" ../packages/aur/getquotes/PKGBUILD |
53 | | -done |
| 23 | +# Update pkgver in PKGBUILD |
| 24 | +sed -i "s/^pkgver=.*/pkgver=$LATEST_TAG/" ../packages/aur/getquotes/PKGBUILD |
54 | 25 |
|
55 | | -echo "SHA256 sums and pkgver have been updated in PKGBUILD." |
| 26 | +echo "Updated pkgver to $LATEST_TAG in PKGBUILD." |
0 commit comments