Compare commits

...

30 commits

Author SHA1 Message Date
0a3e474971 Don't use spkg and read this file 2021-07-04 00:56:15 +03:00
Ohio2
9de707fdde spkg change 2021-07-02 03:25:46 +02:00
Ohio2
a0c9a157d8 dot instead of source, source caused problems 2021-07-01 20:38:39 +02:00
Ohio2
d215e11a08 spkg script change 2021-07-01 20:21:00 +02:00
Ohio2
edf3f7dbc8 Manual setup part 2021-07-01 19:21:30 +02:00
Ohio2
2c9d523f9d /bin 2021-07-01 18:38:43 +02:00
Ohio2
06d5c456a9 Setup updated for current sPKG standards 2021-07-01 18:06:28 +02:00
Ohio2
87198c7507 fixed perfix typo 2021-07-01 17:22:19 +02:00
hippoz
21c5eeab32 switch to using package scripts instead of makefiles 2021-07-01 18:18:02 +03:00
Ohio2
79d6b7881b CRITICAL PATCH NO 1000 2021-07-01 01:30:34 +02:00
Ohio2
cf72136072 critical bug 2021-07-01 01:22:09 +02:00
Ohio2
dfe8b548dd Major patch 2021-06-30 23:16:01 +02:00
Ohio2
2355e05562 patch in $source 2021-06-30 22:57:44 +02:00
Ohio2
cd264800cc fix typo 2021-06-30 22:54:50 +02:00
Ohio2
9f617d1280 sPKG via WGET fixed; sources and setup 2021-06-30 22:38:15 +02:00
Ohio2
0e5c0de66a Too much lines for something that just lists packages 2021-06-30 02:25:18 +02:00
Ohio2
2497f084c6 dblist added 2021-06-30 02:18:42 +02:00
d4b8b95c2f little correction 2021-06-30 02:29:11 +03:00
Ohio2
f4a0b92ca0 Caching in the new spkg 2021-06-30 01:25:28 +02:00
Ohio2
0aef560fe8 June 30th manual update 2021-06-30 00:29:43 +02:00
c6f1681cb9 fixed format of v. 2021-06-30 01:27:22 +03:00
hippoz
e8590c3426 bump version and have each package start in its own working directory 2021-06-30 01:26:20 +03:00
Ohio2
4ce26f75e6 etc 2021-06-29 23:19:51 +02:00
4f3c5a6930 add home to os-release 2021-06-29 23:10:54 +03:00
5a6750444e Merge pull request 'format code and split things into their own respective functions' (#6) from hippoz/spkg:master into master
Reviewed-on: #6
2021-06-29 22:56:42 +03:00
Ohio2
b0d9b00fc3 ... 2021-06-29 21:51:11 +02:00
hippoz
8d88abdda7 format code and split things into their own respective functions 2021-06-29 22:35:23 +03:00
Ohio2
b477c096ae $ 2021-06-29 17:04:04 +02:00
Ohio2
6c96f158fc caching works properly now 2021-06-29 16:08:44 +02:00
Ohio2
0015593109 2b 2021-06-29 15:51:10 +02:00
4 changed files with 128 additions and 55 deletions

1
README.md Normal file
View file

@ -0,0 +1 @@
As of yesterday, sPKG via wget is comndomned to use until cancellation (Presumably never)

13
man
View file

@ -1,18 +1,19 @@
.\" 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
spkg:11: \- manual page for spkg:11: parse error near `&&'
spkg \- manual page for spkg 21.07.01.2a.nr
.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"
The full documentation for
.B spkg:11:
.B spkg
is maintained as a Texinfo manual. If the
.B info
and
.B spkg:11:
.B spkg
programs are properly installed at your site, the command
.IP
.B info spkg:11:
.B info spkg
.PP
should give you access to the complete manual.

View file

@ -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=""

159
spkg
View file

@ -1,49 +1,120 @@
#!/usr/bin/env sh
# NOTE: sPKG via wget CAN'T RUN WITHOUT MAKE!!!
source=git.hippoz.xyz/spkg/repos
# THIS IS UT.BETA
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} && make uninstall && cd .. && rm -rf ${2} && sed "s/${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
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 ;;
*) for fname in $@
do
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 ;;
#!/bin/sh
source="https://git.hippoz.xyz/duck/repo/raw/branch/master"
tmpdir="/tmp"
setup() {
prefix=$1
mkdir "${prefix}"/bin
cp ./spkg "${prefix}"/bin/spkg
chmod +x "${prefix}"/bin/spkg
mkdir "${prefix}"/etc/
mv os-release "${prefix}"/etc/
mkdir "${prefix}"/var
mkdir "${prefix}"/var/cache
mkdir "${prefix}"/usr/
mkdir "${prefix}"/usr/share
mkdir "${prefix}"/usr/share/man
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
install -Dm644 ./man /usr/share/man1/spkg.1
}
removepkg() {
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 ;;
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 ;;
remove)
case "${2}" in
--root-dir) removepkg "${3}" "${4}" ;;
*) removepkg "${3}" "/" ;;
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;;
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 ;;
esac ;;
#update is really complicated. you must know that it compares local and repo version of the package
update) for fname in $@
do
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) 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.2a.ut' ;;
list)
dblist ;;
update)
update "${2}" ;;
--help)
usage ;;
--version)
version ;;
esac