spkg/spkg

116 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
2021-07-01 18:22:19 +03:00
chmod +x "${prefix}"/usr/bin/spkg
2021-06-30 23:38:15 +03:00
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
{
source ./PACKAGE
"pkg_uninstall" "${prefix}"
}
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}"
wget "${prefix}"/usr/src/"${pkgname}" "${source}"/"${pkgname}"/PACKAGE
cd "${prefix}"/usr/src/"${pkgname}" || exit 2
export PREFIX="${prefix}"
export PKGNAME="${pkgname}"
{
source ./PACKAGE
"pkg_install" "${prefix}"
}
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