spkg/spkg

112 lines
2.5 KiB
Text
Raw Normal View History

#!/bin/sh
2021-06-30 23:57:44 +03:00
source="https://git.hippoz.xyz/duck/repo/raw/branch/master"
tmpdir="/tmp"
setup() {
2021-06-30 23:38:15 +03:00
prefix=$1
cp ./spkg "${prefix}"/usr/bin/spkg
chmod +x "${perfix}"/usr/bin/spkg
mkdir "${prefix}"/etc/
mv os-release "${prefix}"/etc/
}
removepkg() {
pkgname=$1
2021-07-01 00:16:01 +03:00
prefix=$2
cd /usr/src/"${pkgname}" || exit 2
make uninstall
2021-07-01 00:16:01 +03:00
sed "s/${pkgname} $(${pkgname} --version)//" "${prefix}"/var/cache/spkg.cache
}
instpkg() {
pkgname=$1
prefix=$2
mkdir -p "${tmpdir}"/spkg/work/"${1}"-work/
cd "${tmpdir}"/spkg/work/"${1}"-work/ || exit 2
mkdir -p "${prefix}"/usr/src/"${pkgname}"
2021-07-01 02:30:34 +03:00
wget "${prefix}"/usr/src/"${pkgname}" "${source}"/"${pkgname}"/Makefile
cd "${prefix}"/usr/src/"${pkgname}" || exit 2
export PREFIX="${prefix}"
export PKGNAME="${pkgname}"
make prepare
make
make install
2021-07-01 00:16:01 +03:00
sed a\ "${pkgname} $(${pkgname} --version)" "${prefix}"/var/cache/spkg.cache > "${prefix}"/var/cache/spkg.cache
}
update() {
pkgname=$1
prefix=$2
version1=$(grep "${pkgname}" /var/cache/spkg.cache)
version2=$(wget "${source}"/spkg.cache /tmp/spkg/web.spkg.cache && grep "${pkgname}" /tmp/spkg/web.spkg.cache )
if [ "$version1" = "${version2}" ]; then
echo 'Up to date.'
else
instpkg "${pkgname}" "${prefix}"
fi
}
dbquery() {
pkgname=$1
wget "${source}"/spkg.cache /tmp/spkg/web.spkg.cache
grep "${pkgname}" /tmp/spkg/web.spkg.cache
rm /tmp/spkg/cache || mkdir 2>/dev/null /tmp/spkg
}
dblocal() {
pkgname=$1
grep "${pkgname}" /var/cache/spkg.cache
}
2021-06-30 03:18:42 +03:00
dblist() {
cat /var/cache/spkg.cache
}
usage() {
echo 'sPKG via WGET, to cache, just type in sudo spkg cache save.
to install, just type in sudo spkg install.
to update, just type in sudo spkg update.
to setup (IMPORTANT!!!), just type in sudo spkg setup'
}
version() {
2021-06-30 02:25:28 +03:00
echo "spkg 21.06.30.1b"
}
case "${1}" in
setup)
2021-06-30 23:38:15 +03:00
case "${2}" in
--root-dir) setup "${3}" ;;
*) setup "/" ;;
esac ;;
2021-07-01 00:16:01 +03:00
remove)
case "${2}" in
--root-dir) removepkg "${3}" "${4}" ;;
*) removepkg "${3}" "/" ;;
2021-07-01 02:22:09 +03:00
esac ;;
install)
case "${2}" in
--root-dir) instpkg "${4}" "${3}" ;;
*) instpkg "${3}" "/" ;;
esac ;;
cache)
case "${2}" in
clean)
rm -rf /usr/src/* ;;
rm)
rm -rf /usr/src/"${3}" ;;
save)
case ${3} in
to) cp -rv /usr/src/* "${4}"/ ;;
esac ;;
database)
case "${3}" in
lookup)
case "${4}" in
local)
dblocal "${5}" ;;
query)
dbquery "${5}" ;;
esac;;
esac ;;
esac ;;
list)
dblist ;;
update)
update "${2}" ;;
--help)
usage ;;
--version)
version ;;
esac