Compare commits
30 commits
Author | SHA1 | Date | |
---|---|---|---|
0a3e474971 | |||
|
9de707fdde | ||
|
a0c9a157d8 | ||
|
d215e11a08 | ||
|
edf3f7dbc8 | ||
|
2c9d523f9d | ||
|
06d5c456a9 | ||
|
87198c7507 | ||
|
21c5eeab32 | ||
|
79d6b7881b | ||
|
cf72136072 | ||
|
dfe8b548dd | ||
|
2355e05562 | ||
|
cd264800cc | ||
|
9f617d1280 | ||
|
0e5c0de66a | ||
|
2497f084c6 | ||
d4b8b95c2f | |||
|
f4a0b92ca0 | ||
|
0aef560fe8 | ||
c6f1681cb9 | |||
|
e8590c3426 | ||
|
4ce26f75e6 | ||
4f3c5a6930 | |||
5a6750444e | |||
|
b0d9b00fc3 | ||
|
8d88abdda7 | ||
|
b477c096ae | ||
|
6c96f158fc | ||
|
0015593109 |
4 changed files with 128 additions and 55 deletions
1
README.md
Normal file
1
README.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
As of yesterday, sPKG via wget is comndomned to use until cancellation (Presumably never)
|
13
man
13
man
|
@ -1,18 +1,19 @@
|
||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
|
||||||
.TH SPKG:11: "1" "June 2021" "spkg:11: parse error near `&&'" "User Commands"
|
.TH SPKG "1" "July 2021" "spkg 21.07.01.2a.nr" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
spkg:11: \- manual page for spkg:11: parse error near `&&'
|
spkg \- manual page for spkg 21.07.01.2a.nr
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
\&./spkg:11: parse error near `&&'
|
.IP
|
||||||
|
How to use: install to install, update to update, list to list, remove to remove.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
The full documentation for
|
The full documentation for
|
||||||
.B spkg:11:
|
.B spkg
|
||||||
is maintained as a Texinfo manual. If the
|
is maintained as a Texinfo manual. If the
|
||||||
.B info
|
.B info
|
||||||
and
|
and
|
||||||
.B spkg:11:
|
.B spkg
|
||||||
programs are properly installed at your site, the command
|
programs are properly installed at your site, the command
|
||||||
.IP
|
.IP
|
||||||
.B info spkg:11:
|
.B info spkg
|
||||||
.PP
|
.PP
|
||||||
should give you access to the complete manual.
|
should give you access to the complete manual.
|
||||||
|
|
|
@ -3,7 +3,7 @@ PRETTY_NAME="Duck Linux Beta"
|
||||||
ID=dlb
|
ID=dlb
|
||||||
BUILD_ID=rolling
|
BUILD_ID=rolling
|
||||||
ANSI_COLOR="38;2;23;147;209"
|
ANSI_COLOR="38;2;23;147;209"
|
||||||
HOME_URL=""
|
HOME_URL="https://git.hippoz.xyz/duck"
|
||||||
DOCUMENTATION_URL=""
|
DOCUMENTATION_URL=""
|
||||||
SUPPORT_URL=""
|
SUPPORT_URL=""
|
||||||
BUG_REPORT_URL=""
|
BUG_REPORT_URL=""
|
||||||
|
|
159
spkg
159
spkg
|
@ -1,49 +1,120 @@
|
||||||
#!/usr/bin/env sh
|
#!/bin/sh
|
||||||
# NOTE: sPKG via wget CAN'T RUN WITHOUT MAKE!!!
|
source="https://git.hippoz.xyz/duck/repo/raw/branch/master"
|
||||||
source=git.hippoz.xyz/spkg/repos
|
tmpdir="/tmp"
|
||||||
# THIS IS UT.BETA
|
setup() {
|
||||||
case ${1} in
|
prefix=$1
|
||||||
#setup does the important shit like, copy spkg and chmod it, install osrel to etc.
|
mkdir "${prefix}"/bin
|
||||||
setup) cp ./spkg /usr/bin/spkg && chmod +x /usr/bin/spkg && mkdir /etc/ && mv os-release /etc/ ;;
|
cp ./spkg "${prefix}"/bin/spkg
|
||||||
#remove, just well, uninstalls and removes from cache.
|
chmod +x "${prefix}"/bin/spkg
|
||||||
remove) for fname in $@
|
mkdir "${prefix}"/etc/
|
||||||
do
|
mv os-release "${prefix}"/etc/
|
||||||
pushd && cd /usr/src/${2} && make uninstall && cd .. && rm -rf ${2} && sed "s/${2}//" && popd && done ;;
|
mkdir "${prefix}"/var
|
||||||
#install is complicated, root dir just changes the root dir, first install gets the make file that's requested, prepares, makes, installs
|
mkdir "${prefix}"/var/cache
|
||||||
#and saves to cache.
|
mkdir "${prefix}"/usr/
|
||||||
install) case ${2} in
|
mkdir "${prefix}"/usr/share
|
||||||
--root-dir=) for fname in $@
|
mkdir "${prefix}"/usr/share/man
|
||||||
do
|
mkdir "${prefix}"/usr/share/man/man1 "${prefix}"/usr/share/man/man2 "${prefix}"/usr/share/man/man3 "${prefix}"/usr/share/man/man4 "${prefix}"/usr/share/man/man5 "${prefix}"/usr/share/man/man6 "${prefix}"/usr/share/man/man7 "${prefix}"/usr/share/man/man8 "${prefix}"/usr/share/man/man9
|
||||||
pushd && 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 && ${3} --version && popd && done || echo 'Invalid package.' && popd ;;
|
install -Dm644 ./man /usr/share/man1/spkg.1
|
||||||
*) for fname in $@
|
}
|
||||||
do
|
removepkg() {
|
||||||
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 && cat ${3} > /var/cache/spkg.cache && popd && done || echo 'Invalid package.' && popd ;;
|
pkgname=$1
|
||||||
|
prefix=$2
|
||||||
|
cd /usr/src/"${pkgname}" || exit 2
|
||||||
|
{
|
||||||
|
. ./PACKAGE
|
||||||
|
"pkg_uninstall" "${prefix}"
|
||||||
|
}
|
||||||
|
sed "s/${pkgname} ${pkg_ver}//" "${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 -O "${prefix}"/usr/src/"${pkgname}" "${source}"/"${pkgname}"/PACKAGE
|
||||||
|
cd "${prefix}"/usr/src/"${pkgname}" || exit 2
|
||||||
|
export PREFIX="${prefix}"
|
||||||
|
export PKGNAME="${pkgname}"
|
||||||
|
{
|
||||||
|
. ./PACKAGE
|
||||||
|
"pkg_install" "${prefix}"
|
||||||
|
}
|
||||||
|
sed a\ "${pkgname} ${pkg_ver}" "${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
|
||||||
|
}
|
||||||
|
dblist() {
|
||||||
|
cat /var/cache/spkg.cache
|
||||||
|
}
|
||||||
|
usage() {
|
||||||
|
echo ' How to use: install to install, update to update, list to list, remove to remove. '
|
||||||
|
}
|
||||||
|
version() {
|
||||||
|
echo "spkg 21.07.02.1a"
|
||||||
|
}
|
||||||
|
case "${1}" in
|
||||||
|
setup)
|
||||||
|
case "${2}" in
|
||||||
|
--root-dir) setup "${3}" ;;
|
||||||
|
*) setup "/" ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
cache) case ${2} in
|
remove)
|
||||||
#cache clean rm and save are easy thus won't wase time for them
|
case "${2}" in
|
||||||
clean) rm -rf /usr/src/* ;;
|
--root-dir) removepkg "${3}" "${4}" ;;
|
||||||
rm) rm -rf /usr/src/${3} ;;
|
*) removepkg "${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 ;;
|
esac ;;
|
||||||
#database lookup local just greps cache
|
install)
|
||||||
# on the other hand, query is complicated, does the same thing though.
|
case "${2}" in
|
||||||
#but for online cache.
|
--root-dir) instpkg "${4}" "${3}" ;;
|
||||||
database) case ${3} in
|
*) instpkg "${3}" "/" ;;
|
||||||
lookup) case ${4} in
|
esac ;;
|
||||||
local) grep $@ /var/cache/spkg.cache ;;
|
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;;
|
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 ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
esac ;;
|
list)
|
||||||
#update is really complicated. you must know that it compares local and repo version of the package
|
dblist ;;
|
||||||
update) for fname in $@
|
update)
|
||||||
do
|
update "${2}" ;;
|
||||||
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 && cat ${2} > /var/cache/spkg.cache && ${2} --version > /var/cache/spkg.cache && popd && done ;;
|
--help)
|
||||||
--help) echo 'sPKG via WGET, to cache, just type in sudo spkg cache save.
|
usage ;;
|
||||||
to install, just type in sudo spkg install.
|
--version)
|
||||||
to update, just type in sudo spkg update.
|
version ;;
|
||||||
to setup (IMPORTANT!!!), just type in sudo spkg setup' ;;
|
|
||||||
--version) echo 'beta 21.06.29.2a.ut' ;;
|
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Reference in a new issue