diff options
author | David Runge <dave@sleepmap.de> | 2021-09-28 22:50:56 +0200 |
---|---|---|
committer | David Runge <dave@sleepmap.de> | 2021-09-28 22:50:56 +0200 |
commit | 3ac8e0f994839f3c972033bcb12421081ebeb683 (patch) | |
tree | 2a4f05cac56559686ea5d7aee8703e7511662c47 /.config/zsh/functions/packaging.zsh | |
parent | a640bb766699706b4975416b85acd30191b79fa3 (diff) | |
download | dotfiles-3ac8e0f994839f3c972033bcb12421081ebeb683.tar.gz dotfiles-3ac8e0f994839f3c972033bcb12421081ebeb683.tar.bz2 dotfiles-3ac8e0f994839f3c972033bcb12421081ebeb683.tar.xz dotfiles-3ac8e0f994839f3c972033bcb12421081ebeb683.zip |
zsh: move includes to XDG compliant locations
.config/zsh/{functions,includes}/*:
Move functions and includes to XDG compliant locations.
.zshrc:
Include functions and other includes from XDG compliant locations.
Remove use of prepend-sudo function.
Diffstat (limited to '.config/zsh/functions/packaging.zsh')
-rw-r--r-- | .config/zsh/functions/packaging.zsh | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/.config/zsh/functions/packaging.zsh b/.config/zsh/functions/packaging.zsh new file mode 100644 index 0000000..69d6df4 --- /dev/null +++ b/.config/zsh/functions/packaging.zsh @@ -0,0 +1,133 @@ +#!/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" +} + +nvc() { + local config + if [[ -z "$1" ]]; then + 1>&2 printf "A repository name needs to be specified as the first argument.\n" + return 1 + fi + config="${HOME}/.config/nvchecker/$1.toml" + if [[ ! -f "${config}" ]]; then + 1>&2 printf "The configuration does not exist: %s\n" "${config}" + return 1 + fi + if ! command -v nvchecker > /dev/null; then + 1>&2 printf "The required application 'nvchecker' can not be found.\n" + return 1 + fi + nvchecker -c "${config}" +} + +nvt() { + local config package + if [[ -z "$1" ]]; then + 1>&2 printf "A repository name needs to be specified as the first argument.\n" + return 1 + fi + config="${HOME}/.config/nvchecker/$1.toml" + if [[ ! -f "${config}" ]]; then + 1>&2 printf "The configuration does not exist: %s\n" "${config}" + return 1 + fi + + if [[ -z "$2" ]]; then + 1>&2 printf "A package name needs to be specified as the second argument.\n" + return 1 + fi + package="${2}" + if ! grep "${package}" "${config}" > /dev/null; then + 1>&2 printf "The package %s can not be found in the configuration: %s\n" "${package}" "${config}" + return 1 + fi + + if ! command -v nvtake > /dev/null; then + 1>&2 printf "The required application 'nvtake' can not be found.\n" + return 1 + fi + nvtake -c "${config}" "${package}" +} |