Replace libexec/portzap/functions/ with libexec/portzap/ scripts

This commit is contained in:
0x1eef 2024-04-01 20:24:02 -03:00
parent cc3f43c0fc
commit 7a22d2a9a5
7 changed files with 59 additions and 70 deletions

View file

@ -1,6 +1,7 @@
#!/bin/sh
set -e
##
# Variables
rootdir=$(dirname "$0")
giturl="${PORTZAP_GITURL:-https://git.hardenedbsd.org/hardenedbsd/ports.git}"
@ -9,30 +10,50 @@ installdir="${PORTZAP_INSTALLDIR:-/usr/ports/}"
revision="${installdir}/.portzap"
libexec=$(realpath "${rootdir}/../libexec/portzap/")
# Masks
clone_mask=007
pull_mask=007
##
# Functions
require_root() {
if [ $(id -u) -ne 0 ]; then
echo "This command requires root privileges."
exit 1
fi
}
require_membership_of() {
group=$1
if ! id -Gn | tr ' ' '\n' | grep -e "^${group}$"; then
echo "This command requires a user to be a member of ${group}."
exit 1
fi
}
require_dependency() {
deps=$1
for dep in $deps; do
if ! which -s "$dep"; then
echo "This command requires ${dep}, but it was not found."
exit 1
fi
done
}
. "$libexec/functions/portzap-install"
. "$libexec/functions/portzap-pull"
. "$libexec/functions/portzap-clone"
. "$libexec/functions/requirements"
case $1 in
"clone")
require_deps git
require_group _portzap
portzap_clone "$portzap_dir" "$giturl" "$clone_mask"
require_dependency git
require_membership_of _portzap
${libexec}/portzap/portzap-clone "${giturl}" "${gitdir}"
;;
"pull")
require_deps git
require_group _portzap
portzap_pull "$portzap_dir" "$pull_mask"
require_dependency git
require_membership_of _portzap
${libexec}/portzap/portzap-pull "${gitdir}"
;;
"install")
require_root
require_deps git
require_dependency git
portzap_install "$installdir" "$portzap_dir" "$libexec" "$portzap_file"
;;
*)

View file

@ -1,15 +0,0 @@
#!/bin/sh
portzap_clone() {
portzap_dir=$1
ports_url=$2
clone_mask=$3
if [ -e "$portzap_dir/.git" ]; then
echo "$portzap_dir exists."
echo "Run 'portzap pull' instead."
exit 1
fi
umask "$clone_mask"
git clone "$ports_url" "$portzap_dir"
}

View file

@ -1,14 +0,0 @@
#!/bin/sh
portzap_pull() {
portzap_dir=$1
pull_mask=$2
if [ -e "$portzap_dir/.git" ]; then
umask "$pull_mask"
cd "$portzap_dir" || exit 1
git pull --rebase origin hardenedbsd/main
else
echo "Run 'portzap clone' first."
exit 1
fi
}

View file

@ -1,27 +0,0 @@
#!/bin/sh
require_deps() {
deps=$1
for dep in $deps; do
if ! which -s "$dep"; then
echo "$dep" is required, but not found
exit 1
fi
done
}
require_group() {
group=$1
cmd=$(id -Gn | tr ' ' '\n' | grep "^${group}$")
if [ "$cmd" != "$group" ]; then
echo "You must be a member of the '$group' group to run this command."
exit 1
fi
}
require_root() {
if [ "$(id -u)" != "0" ]; then
echo "The install command must be run as root."
exit 1
fi
}

11
libexec/portzap/portzap-clone Executable file
View file

@ -0,0 +1,11 @@
#!/bin/sh
set -e
giturl=$1
gitdir=$2
if [ -e "${gitdir}/.git" ]; then
echo "${gitdir} already exists."
echo "Try 'portzap pull' instead."
exit 1
fi
umask u=rwX,g=rwX,o=
git clone "${giturl}" "${gitdir}"

View file

@ -1,4 +1,5 @@
#!/bin/sh
set -e
__portzap_install_update() {
portzap_file=$1

12
libexec/portzap/portzap-pull Executable file
View file

@ -0,0 +1,12 @@
#!/bin/sh
set -e
gitdir=$1
umask=rwX,g=rwX,o=
if [ -e "${gitdir}/.git" ]; then
cd "${gitdir}"
git pull --rebase origin hardenedbsd/main
else
echo "A copy of the hardenedbsd ports tree wasn't found."
echo "Try 'portzap clone' instead."
exit 1
fi