aboutsummaryrefslogtreecommitdiffstats
path: root/.config/zsh/functions/packaging.zsh
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2021-09-28 22:50:56 +0200
committerDavid Runge <dave@sleepmap.de>2021-09-28 22:50:56 +0200
commit3ac8e0f994839f3c972033bcb12421081ebeb683 (patch)
tree2a4f05cac56559686ea5d7aee8703e7511662c47 /.config/zsh/functions/packaging.zsh
parenta640bb766699706b4975416b85acd30191b79fa3 (diff)
downloaddotfiles-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.zsh133
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}"
+}