#!/usr/bin/env bash shopt -s nullglob lockfile='.mainenance.lock' usage() { echo "$0 "; } 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 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