50 lines
773 B
Bash
Executable File
50 lines
773 B
Bash
Executable File
#!/usr/bin/env bash
|
|
shopt -s nullglob
|
|
|
|
lockfile='.mainenance.lock'
|
|
|
|
usage() { echo "$0 <repo_name>"; }
|
|
|
|
spark_repo=$1
|
|
[[ "$spark_repo" ]] || {
|
|
usage
|
|
exit 1
|
|
}
|
|
|
|
cleanup() { rm -f "$lockfile"; }
|
|
|
|
lock() {
|
|
[[ -f "$lockfile" ]] && {
|
|
printf 'Lockfile found: %s\n' "$lockfile" >&2
|
|
return 1
|
|
}
|
|
|
|
echo $$ > "$lockfile"
|
|
lock_pid=$(<"$lockfile")
|
|
[[ $$ == "$lock_pid" ]] || return 1
|
|
}
|
|
|
|
cd "$HOME/public/$spark_repo" || exit $?
|
|
|
|
lock || exit 1
|
|
|
|
trap cleanup EXIT
|
|
|
|
for f in import/*; do
|
|
f_name="${f##*/}"
|
|
if [[ -f "$f_name" ]]; then
|
|
printf 'Package already exists: %s, not overwriting\n' "$f_name" >&2
|
|
rm -vf "$f"
|
|
else
|
|
mv -vf "$f" ./
|
|
new_pkgs+=( "$f_name" )
|
|
fi
|
|
done
|
|
|
|
repo-sign
|
|
repo-clean
|
|
|
|
for p in "${new_pkgs[@]}"; do
|
|
repo-add -n "$spark_repo.db.tar.gz" "$p"
|
|
done
|