etc
This commit is contained in:
commit
4ce26f75e6
2 changed files with 102 additions and 49 deletions
|
@ -3,7 +3,7 @@ PRETTY_NAME="Duck Linux Beta"
|
|||
ID=dlb
|
||||
BUILD_ID=rolling
|
||||
ANSI_COLOR="38;2;23;147;209"
|
||||
HOME_URL=""
|
||||
HOME_URL="https://git.hippoz.xyz/duck"
|
||||
DOCUMENTATION_URL=""
|
||||
SUPPORT_URL=""
|
||||
BUG_REPORT_URL=""
|
||||
|
|
149
spkg
149
spkg
|
@ -1,49 +1,102 @@
|
|||
#!/usr/bin/env sh
|
||||
# NOTE: sPKG via wget CAN'T RUN WITHOUT MAKE!!!
|
||||
source=git.hippoz.xyz/spkg/repos
|
||||
case ${1} in
|
||||
#setup does the important shit like, copy spkg and chmod it, install osrel to etc.
|
||||
setup) cp ./spkg /usr/bin/spkg && chmod +x /usr/bin/spkg && mkdir /etc/ && mv os-release /etc/ ;;
|
||||
#remove, just well, uninstalls and removes from cache.
|
||||
remove) for fname in $@
|
||||
do
|
||||
pushd && cd /usr/src/${2} && sed "s/${2} $(${2} --version)//" && make uninstall && cd .. && rm -rf ${2} && popd && done ;;
|
||||
#install is complicated, root dir just changes the root dir, first install gets the make file that's requested, prepares, makes, installs
|
||||
#and saves to cache.
|
||||
install) case ${2} in
|
||||
--root-dir=) for fname in $@
|
||||
do
|
||||
$prefix=${4} && export $prefix && pushd && mkdir $prefix/usr/src/${3} 2>/dev/null && wget $source/${3}/Makefile $prefix/usr/src/${3}/Makefile && cd $prefix/usr/src/${3} && make prepare && make && make install && sed a\ "${3} $(${3} --version)" /var/cache/spkg.cache > /var/cache/spkg.cache && popd && done || echo 'Invalid package.' && popd ;;
|
||||
*) for fname in $@
|
||||
do
|
||||
$prefix=/usr && export $prefix && pushd && mkdir /usr/src/${3} 2>/dev/null && wget $source/${3}/Makefile /usr/src/${3}/Makefile && cd /usr/src/${3} && make prepare && make && make install && sed a\ "${3} $(${3} --version)" /var/cache/spkg.cache > /var/cache/spkg.cache && popd && done || echo 'Invalid package.' && popd ;;
|
||||
esac ;;
|
||||
cache) case ${2} in
|
||||
#cache clean rm and save are easy thus won't wase time for them
|
||||
clean) rm -rf /usr/src/* ;;
|
||||
rm) rm -rf /usr/src/${3} ;;
|
||||
save) case ${3} in
|
||||
to) cp /usr/src/ ${4} ;;
|
||||
*) cp /usr/src/ /etc/spkg/cache || mkdir /etc/spkg 2>/dev/null && mkdir /etc/spkg/cache 2>/dev/null && cp /usr/src/ /etc/spkg/cache ;;
|
||||
esac ;;
|
||||
#database lookup local just greps cache
|
||||
# on the other hand, query is complicated, does the same thing though.
|
||||
#but for online cache.
|
||||
database) case ${3} in
|
||||
lookup) case ${4} in
|
||||
local) grep $@ /var/cache/spkg.cache ;;
|
||||
query) wget $source/spkg.cache /tmp/spkg/web.spkg.cache && grep ${5} /tmp/spkg/web.spkg.cache && rm /tmp/spkg/cache || mkdir 2>/dev/null /tmp/spkg && wget $source/spkg.cache /tmp/spkg/ && grep ${5} /tmp/spkg/web.spkg.cache && rm /tmp/spkg/cache;;
|
||||
list) cat /var/cache/spkg.cache
|
||||
esac ;;
|
||||
esac ;;
|
||||
esac ;;
|
||||
#update is really complicated. you must know that it compares local and repo version of the package
|
||||
update) for fname in $@
|
||||
do
|
||||
$prefix=/usr && export $prefix && version1=$(grep ${2} /var/cache/spkg.cache) && version2=$(wget $source/spkg.cache /tmp/spkg/web.spkg.cache && grep ${2} /tmp/spkg/web.spkg.cache ) && [ version1 = version2] && echo 'Up to date.' || pushd && mkdir /usr/src/${2} 2>/dev/null && wget $source/${2}/Makefile /usr/src/${2}/Makefile && cd /usr/src/${2} && make prepare && make && make install && sed "s/${2} $({$2} --version)//" && sed a\ "${2} $(${2} --version)" /var/cache/spkg.cache > /var/cache/spkg.cache && popd && done ;;
|
||||
--help) 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) echo 'beta 21.06.29.2b' ;;
|
||||
#!/bin/sh
|
||||
|
||||
source="https://git.hippoz.xyz/spkg/repo"
|
||||
|
||||
setup() {
|
||||
cp ./spkg /usr/bin/spkg
|
||||
chmod +x /usr/bin/spkg
|
||||
mkdir /etc/
|
||||
mv os-release /etc/
|
||||
}
|
||||
removepkg() {
|
||||
pkgname=$1
|
||||
|
||||
cd /usr/src/"${pkgname}" || exit 2
|
||||
make uninstall
|
||||
}
|
||||
instpkg() {
|
||||
pkgname=$1
|
||||
prefix=$2
|
||||
|
||||
mkdir -p "${prefix}"/usr/src/"${pkgname}"
|
||||
wget "${source}"/"${pkgname}"/Makefile "${prefix}"/usr/src/"${pkgname}"/Makefile
|
||||
cd "${prefix}"/usr/src/"${pkgname}" || exit 2
|
||||
export PREFIX="${prefix}"
|
||||
export PKGNAME="${pkgname}"
|
||||
make prepare
|
||||
make
|
||||
make install
|
||||
cat "${pkgname}" > "${prefix}"/var/cache/spkg.cache
|
||||
"${pkgname}" --version > "${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
|
||||
}
|
||||
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() {
|
||||
echo "beta 21.06.29.1a"
|
||||
}
|
||||
case "${1}" in
|
||||
setup)
|
||||
setup ;;
|
||||
remove)
|
||||
removepkg "${2}" ;;
|
||||
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 ;;
|
||||
update)
|
||||
update "${2}" ;;
|
||||
--help)
|
||||
usage ;;
|
||||
--version)
|
||||
version ;;
|
||||
esac
|
||||
|
|
Loading…
Reference in a new issue