From 8d88abdda704b62e9f84271b239d067341f5b2e5 Mon Sep 17 00:00:00 2001 From: hippoz Date: Tue, 29 Jun 2021 22:35:23 +0300 Subject: [PATCH] format code and split things into their own respective functions --- spkg | 136 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 101 insertions(+), 35 deletions(-) diff --git a/spkg b/spkg index 047b1bb..81fa500 100755 --- a/spkg +++ b/spkg @@ -1,36 +1,102 @@ -#!/usr/bin/env sh -func() -#sPKG via wget -# NOTE: sPKG via wget CAN'T RUN WITHOUT MAKE!!! -# ALNUX might not have MAKE!!! We tried porting it, dependiecies are fucked. -# Correction here in the latest build, you have to run setup to install make, so not that fucked. -source=git.hippoz.xyz/spkg/repo -beta=false -case ${1} in - setup) cp ./spkg /usr/bin/spkg && chmod +x /usr/bin/spkg && mkdir /etc/ && mv os-release /etc/ ;; - remove) pushd && for fname in $@ && cd /usr/src/${2} && make uninstall && popd ;; - install) case ${2} in - --root-dir=) pushd && for fname in $@ && mkdir ${4}/usr/src/${3} 2>/dev/null && wget $source/${3}/Makefile ${4}/usr/src/${3}/Makefile && cd ${4}/usr/src/${3} && make prepare && make && make install && cat ${3} > ${4}/var/cache/spkg.cache && popd || echo 'Invalid package.' && popd ;; - *) pushd && for fname in $@ && mkdir /usr/src/${3} 2>/dev/null && wget $source/${3}/Makefile /usr/src/${3}/Makefile && cd /usr/src/${3} && make prepare && make && make install && cat ${3} > /var/cache/spkg.cache && ${3} --version > /var/cache/spkg.cache && popd || echo 'Invalid package.' && popd ;; - esac ;; - cache) case ${2} in - 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) 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;; - esac ;; - esac ;; - esac ;; - update) for fname in $@ && version1=$(wget $source/spkg.cache /tmp/spkg/web.spkg.cache && grep ${2}) && 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 && cat ${2} > /var/cache/spkg.cache && ${2} --version > /var/cache/spkg.cache && popd ;; - --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.1a' ;; +#!/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