#!/usr/bin/env zsh pkg_sign() { # sign one or more packages with the key setup in makepkg.conf local _pkg_list=() local _arg _pkg # get GPGKEY from makepkg.conf if [[ -f /etc/makepkg.conf ]]; then source /etc/makepkg.conf 2>/dev/null 1>&2 fi if [[ -f "${HOME}/.makepkg.conf" ]]; then source "${HOME}/.makepkg.conf" 2>/dev/null 1>&2 fi if [[ -z "${GPGKEY}" ]]; then 1>&2 printf "No GPGKEY is setup in makepkg.conf!\n" return 1 fi # check whether file(s) exists or globs exist for _arg in "$@"; do if [[ -f "${_arg}" ]] && [[ "${_arg}" == *.pkg.tar.zst ]]; then _pkg_list+=( "${_arg}" ) fi if [[ -n *"${_arg}"*.pkg.tar.zst(#qN) ]]; then _pkg_list+=( *"${_arg}"*.pkg.tar.zst ) fi done # sign package(s) if (( ${#_pkg_list} > 0 )); then for _pkg in "${_pkg_list[@]}"; do gpg --detach-sign --local-user "${GPGKEY}" "$_pkg" done return 0 else 1>&2 printf "No package can be found for signing!\n" return 1 fi } pkg_add() { # sign one or more packages with the key setup in makepkg.conf local _pkg_list=() local _arg # get GPGKEY from makepkg.conf if [[ -f /etc/makepkg.conf ]]; then source /etc/makepkg.conf 2>/dev/null 1>&2 fi if [[ -f "${HOME}/.makepkg.conf" ]]; then source "${HOME}/.makepkg.conf" 2>/dev/null 1>&2 fi if [[ -z "${GPGKEY}" ]]; then 1>&2 printf "No GPGKEY is setup in makepkg.conf!\n" return 1 fi # check whether file(s) exists or globs exist for _arg in "$@"; do if [[ -f "${_arg}" ]] && [[ "$_arg" == *.pkg.tar.zst ]]; then _pkg_list+=( "${_arg}" ) fi if [[ -n *"${_arg}"*.pkg.tar.zst(#qN) ]]; then _pkg_list+=( *"${_arg}"*.pkg.tar.zst ) fi done # add package(s) to repo database if (( ${#_pkg_list} > 0 )); then repo-add -R -s -k "${GPGKEY}" "$(dirname "${_pkg_list[1]}")"/*.db.tar.gz "${_pkg_list[@]}" return 0 else 1>&2 printf "No packages to add can be found!\n" return 1 fi } sshfs_mount() { mkdir -p "${HOME}/mounts/$1" sshfs -C -F "${HOME}/.ssh/config" "$1": "${HOME}/mounts/$1" } sshfs_umount() { fusermount3 -u "${HOME}/mounts/$1" }