Add basic funcionality

This commit is contained in:
mollusk 2020-10-20 22:23:35 -04:00
parent 96edff6ea3
commit 703341db49

134
repo.sh Executable file
View File

@ -0,0 +1,134 @@
#!/bin/bash
CONFIG_DIR="${HOME}/.config/vur"
CONFIG_FILE="vur.conf"
KEY_FILE="privkey.pem"
KEY_PATH="${CONFIG_DIR}/${KEY_FILE}"
help_file(){
echo """
usage: ${0} [-a]
-a add packages to repository and sign them
"""
}
gen_conf(){
if [ ! -d "${CONFIG_DIR}" ];then
mkdir -p "${CONFIG_DIR}" || exit 1
fi
if [ ! -f "${CONFIG_DIR}/${CONFIG_FILE}" ];then
echo "No config file exists yet"
echo -e "Please answer a few questions to set up the config\n\n"
echo -n "Where do you want your custom repository? (mind permissions): "
read repo_location
echo "REPO_PATH=${repo_location}" > "${CONFIG_DIR}/${CONFIG_FILE}"
echo -n "Where is your 'void-packages' location (no trailing /):"
read void_packages_location
echo "void_packages=${void_packages_location}/hostdir/binpkgs" >> "${CONFIG_DIR}/${CONFIG_FILE}"
echo "Provid enter the full path of your custom repository: "
source "${CONFIG_DIR}/${CONFIG_FILE}"
fi
}
load_conf(){
if [ -f "${HOME}"/.config/vrepo.conf ];then
source "${CONFIG_DIR}"/"${CONFIG_FILE}"
else
gen_conf
source "${CONFIG_DIR}"/"${CONFIG_FILE}"
fi
}
check_deps(){
if [ ! -f "/usr/bin/xbps-install" ];then
echo "A Void Linux based system is required!"
echo "Unable to locate xbps-install"
return 1
exit 1
fi
}
create_repo(){
if [ ! -d "${REPO_PATH}" ];then
mkdir "${REPO_PATH}"
#cd "${BASE_DIR}"/"${REPO_PATH}" || return
if [ -d "${REPO_PATH}" ];then
return 0
fi
elif [ -d "${REPO_PATH}" ];then
echo "Using custom repository: ${REPO_PATH}"
return 0
fi
}
gen_key(){
ssh-keygen -t rsa -b 4096 -m PEM -f "${KEY_PATH}"
}
sign_pkgs(){
if [ ! -f "${KEY_PATH}" ];then
echo "Key file does not exist"
echo "Generating a new key..."
gen_key
echo "Signing xbps files in ${REPO_PATH}"
xbps-rindex --sign --signedby "mollusk" --privkey "${KEY_PATH}" "$REPO_PATH"
else
echo "Signing xbps files in ${REPO_PATH}"
xbps-rindex --sign --signedby "mollusk" --privkey "${KEY_PATH}" "$REPO_PATH"
fi
}
add_pkg(){
load_conf
create_repo
cp -r "${void_packages}"/*.xbps "${REPO_PATH}" || exit 1
xbps-rindex -a "${REPO_PATH}"/*.xbps
}
case "${1}" in
-c | --create)
load_conf
create_repo
;;
-gk | --gen-key)
load_conf
gen_key
;;
-sp | --sign-pkgs)
load_conf
sign_pkgs
;;
-a | --add-pkg)
load_conf
add_pkg
sign_pkgs
;;
*)
help_file
;;
esac