60 lines
1.3 KiB
Bash
Executable file
60 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
||
|
||
# lists all available tags from a git repository
|
||
|
||
pname="" # package name
|
||
attr_path="" # package attribute path
|
||
url="" # git repository url
|
||
file="" # file for writing debugging information
|
||
|
||
while (( $# > 0 )); do
|
||
flag="$1"
|
||
shift 1
|
||
case "$flag" in
|
||
--pname=*)
|
||
pname="${flag#*=}"
|
||
;;
|
||
--attr-path=*)
|
||
attr_path="${flag#*=}"
|
||
;;
|
||
--url=*)
|
||
url="${flag#*=}"
|
||
;;
|
||
--file=*)
|
||
file="${flag#*=}"
|
||
;;
|
||
*)
|
||
echo "$0: unknown option ‘${flag}’"
|
||
exit 1
|
||
;;
|
||
esac
|
||
done
|
||
|
||
if [[ -z "$pname" ]]; then
|
||
pname="$UPDATE_NIX_PNAME"
|
||
fi
|
||
|
||
if [[ -z "$attr_path" ]]; then
|
||
attr_path="$UPDATE_NIX_ATTR_PATH"
|
||
fi
|
||
|
||
# By default we set url to src.url or src.meta.homepage
|
||
if [[ -z "$url" ]]; then
|
||
url="$(nix-instantiate $systemArg --eval -E \
|
||
"with import ./. {}; $attr_path.src.meta.homepage or $attr_path.src.url" \
|
||
| tr -d '"')"
|
||
fi
|
||
|
||
# print a debugging message
|
||
if [[ -n "$file" ]]; then
|
||
echo "# Listing tags for '$pname' at $url" >> $file
|
||
fi
|
||
|
||
# list all tags from the remote repository
|
||
tags=$(git ls-remote --tags --refs "$url")
|
||
|
||
# keep only the version part of the tag
|
||
tags=$(echo "$tags" | cut --delimiter=/ --field=3-)
|
||
|
||
echo "$tags"
|