glacier-pkgs/devtools/gpc

99 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

2023-01-08 12:30:30 -05:00
#!/bin/sh
# Glacier package checker
INSCRIPT=INSTALL.sh
UPSCRIPT=UPDATE.sh
RMSCRIPT=REMOVE.sh
PKGINFO=*-pkginfo.json
TIMESTAMP=*.ts.sh
check_dir() {
printf "Searching for package directory...\n"
if [ -d "$2" ]; then
printf "${green}$2 exists.${reset}\n"
else
printf "${red}$2 does not exist.${reset}\n"
exit 1
fi
cd $2
printf "Searching for instruction scripts...\n"
if [ -f $INSCRIPT -a -f $UPSCRIPT -a -f $RMSCRIPT ]; then
printf "${green}Instruction scripts exist.${reset}\n"
else
printf "${red}Instruction scripts do not exist.${reset}\n"
exit 1
fi
printf "Searching for miscellaneous files...\n"
if [ -f $PKGINFO -a -f $TIMESTAMP ]; then
printf "${green}$2-pkginfo.json and $2.ts.sh exist.${reset}\n"
else
printf "${red}$2-pkginfo.json and $2.ts.sh do not exist.${reset}\n"
exit 1
fi
}
mkpkg() {
printf "${blue} Making package...${reset}\n"
cd $2
tar -czvf $2.tar.gz *
printf "${blue}Generating package checksum...${reset}\n"
cd ..
sha256sum $2/$2.tar.gz >> $2.checksum
printf "${green}Finished making package${reset}\n"
exit 0
}
helpmsg() {
printf "gpc - test and create Glacier compatible packages\n"
printf "usage: gpc [check] [mkpkg] [-h/--help] [-v/--version] pkg-dir\n"
printf "\n"
printf "gpc {-h|--help} show this message and exit\n"
printf "gpc {-v|--version} show the version and exit\n"
printf "gpc {check} check a package directory for compliance\n"
printf "gpc {mkpkg} create a package from a directory\n"
printf "\n"
printf "This program is free software.\n"
printf "See the GNU GPL version 3 for details.\n"
exit 0
}
helpmsg_small() {
printf "usage: gpc [check] [mkpkg] [-h/--help] [-v/--version] pkg-dir\n"
exit 1
}
printver() {
printf "gpc v2.0.0\n"
exit 0
}
preload() {
. $(pwd)/gpc.conf
if [ "$?" != "0" ]; then
printf "error while parsing gpc config file\n"
exit 1
fi
}
case $1 in
-h|--help)
helpmsg "$@"
;;
-v|--version)
printver "$@"
;;
check)
check_dir "$@"
;;
mkpkg)
mkpkg "$@"
;;
*)
helpmsg_small "$@"
;;
esac