#! /bin/bash set -e set -o pipefail if [ "$1" = "--help" ]; then printf "%s\n" "Usage: pack.sh /path/to/update/folder" exit 0 fi bold=$(tput bold) red=$(tput setaf 1) normal=$(tput sgr0) dir_name=$(basename $1) dir_parent=$(dirname $1) archive="$dir_parent/$dir_name.zip" if [ ! -d "$1" ]; then printf "$bold$red%s$normal\n" "Update folder not found" exit 1 fi if [ ! -f "$1/run.sh" ]; then printf "$bold$red%s$normal\n" "Update script not found" exit 1 fi if [[ ! "$dir_name" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}-pi-qr-update$ ]]; then printf "$bold$red%s$normal\n" "Invalid update folder name" exit 1 fi rm "$1/.DS_Store" "$archive" "$archive.asc" || true cd "$dir_parent" zip -r "$archive" "$dir_name" gpg --detach-sig --armor --output "$archive.asc" "$archive" printf "%s\n" "Done"