99 lines
2.0 KiB
Bash
Executable File
99 lines
2.0 KiB
Bash
Executable File
#!/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
|