Compare commits
21
Commits
20250110-1
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1164975e3 | ||
|
|
dcdd2ea51a | ||
|
|
b93e6153af | ||
|
|
0d15808a6f | ||
|
|
2dfdf91528 | ||
|
|
20ca8e49ee | ||
|
|
26b9d8118e | ||
|
|
f14d5866f3 | ||
|
|
fc2d7e7915 | ||
|
|
feded5e14e | ||
|
|
fb463d418d | ||
|
|
9f0f903c5e | ||
|
|
106ae39803 | ||
|
|
758b247438 | ||
|
|
55623e13db | ||
|
|
f9c7e6b8d6 | ||
|
|
a05836abfd | ||
|
|
256dd28e05 | ||
|
|
b75fc8a68a | ||
|
|
db0e243794 | ||
|
|
6e8bdba73f |
No files matched your search
@@ -1,3 +1,4 @@
|
|||||||
pm.pkg
|
pm.pkg
|
||||||
pm.pkg.gz
|
pm.pkg.gz
|
||||||
rootfs
|
rootfs
|
||||||
|
package
|
||||||
@@ -2,52 +2,53 @@ DESTDIR=/
|
|||||||
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
if [ ! -d ${DESTDIR}/etc/pm ]; then \
|
@if [ ! -d ${DESTDIR}/etc/pm ]; then \
|
||||||
mkdir -pv ${DESTDIR}/etc/pm; \
|
mkdir -p ${DESTDIR}/etc/pm; \
|
||||||
touch ${DESTDIR}/etc/pm/repo; \
|
# touch ${DESTDIR}/etc/pm/repo; \
|
||||||
fi
|
fi
|
||||||
if [ ! -d ${DESTDIR}/tmp ]; then \
|
@if [ ! -d ${DESTDIR}/tmp ]; then \
|
||||||
mkdir -pv ${DESTDIR}/tmp; \
|
mkdir -p ${DESTDIR}/tmp; \
|
||||||
fi
|
fi
|
||||||
if [ ! -d ${DESTDIR}/usr/bin ]; then \
|
@if [ ! -d ${DESTDIR}/usr/bin ]; then \
|
||||||
mkdir -pv ${DESTDIR}/usr/bin; \
|
mkdir -p ${DESTDIR}/usr/bin; \
|
||||||
fi
|
fi
|
||||||
if [ ! -d ${DESTDIR}/usr/share/pm ]; then \
|
@if [ ! -d ${DESTDIR}/usr/share/pm ]; then \
|
||||||
mkdir -pv ${DESTDIR}/usr/share/pm/{packages,repos}; \
|
mkdir -p ${DESTDIR}/usr/share/pm/{packages,repos}; \
|
||||||
touch ${DESTDIR}/usr/share/pm/query; \
|
# touch ${DESTDIR}/usr/share/pm/query; \
|
||||||
fi
|
fi
|
||||||
if [ ! -d ${DESTDIR}/var/cache/pm/pkg ]; then \
|
@if [ ! -d ${DESTDIR}/var/cache/pm/pkg ]; then \
|
||||||
mkdir -pv ${DESTDIR}/var/cache/pm/pkg; \
|
mkdir -p ${DESTDIR}/var/cache/pm/pkg; \
|
||||||
fi
|
fi
|
||||||
cp -v src/pm ${DESTDIR}/usr/bin/pm;
|
@cp src/pm ${DESTDIR}/usr/bin/pm;
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
if [ -d ${DESTDIR}/etc/pm ]; then \
|
@if [ -d ${DESTDIR}/etc/pm ]; then \
|
||||||
rm -rv ${DESTDIR}/etc/pm; \
|
rm -r ${DESTDIR}/etc/pm; \
|
||||||
fi
|
fi
|
||||||
if [ -d ${DESTDIR}/usr/share/pm ]; then \
|
@if [ -d ${DESTDIR}/usr/share/pm ]; then \
|
||||||
rm -rv ${DESTDIR}/usr/share/pm; \
|
rm -r ${DESTDIR}/usr/share/pm; \
|
||||||
fi
|
fi
|
||||||
if [ -d ${DESTDIR}/var/cache/pm ]; then \
|
@if [ -d ${DESTDIR}/var/cache/pm ]; then \
|
||||||
rm -rv ${DESTDIR}/var/cache/pm; \
|
rm -r ${DESTDIR}/var/cache/pm; \
|
||||||
fi
|
fi
|
||||||
if [ -f ${DESTDIR}/usr/bin/pm ]; then \
|
@if [ -f ${DESTDIR}/usr/bin/pm ]; then \
|
||||||
rm -v ${DESTDIR}/usr/bin/pm; \
|
rm ${DESTDIR}/usr/bin/pm; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
package:
|
package:
|
||||||
mkdir -pv pm.pkg/usr/bin
|
@mkdir -p pm.pkg/usr/bin
|
||||||
mkdir -pv pm.pkg/etc/pm
|
@mkdir -p pm.pkg/etc/pm
|
||||||
mkdir -pv pm.pkg/var/cache/pm/pkg
|
@mkdir -p pm.pkg/var/cache/pm/pkg
|
||||||
mkdir -pv pm.pkg/usr/share/pm/{repos,packages}
|
@mkdir -p pm.pkg/usr/share/pm/{repos,packages}
|
||||||
echo usr/bin/pm > pm.pkg/list
|
@echo usr/bin/pm > pm.pkg/list
|
||||||
cp -v src/pm pm.pkg/usr/bin/pm
|
@echo busybox > pm.pkg/deps
|
||||||
tar -czvf pm.pkg.gz pm.pkg
|
@cp src/pm pm.pkg/usr/bin/pm
|
||||||
|
@tar -czf pm.pkg.gz pm.pkg
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
if [ -d pm.pkg ]; then \
|
@if [ -d pm.pkg ]; then \
|
||||||
rm -rv pm.pkg; \
|
rm -r pm.pkg; \
|
||||||
fi
|
fi
|
||||||
if [ -f pm.pkg.gz ]; then \
|
@if [ -f pm.pkg.gz ]; then \
|
||||||
rm -v pm.pkg.gz; \
|
rm pm.pkg.gz; \
|
||||||
fi
|
fi
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
pkgname=pm
|
||||||
|
pkgver=1.1
|
||||||
|
pkgrel=1
|
||||||
|
# srcdir=/home/tola/Documents/linux/pm
|
||||||
|
gitsource="https://gitea.home.com:3000/TolaMironcenko/pm.git"
|
||||||
|
deps="busybox"
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd $srcdir
|
||||||
|
make install DESTDIR=$pkgdir
|
||||||
|
}
|
||||||
@@ -29,6 +29,8 @@
|
|||||||
```
|
```
|
||||||
pfetch.pkg
|
pfetch.pkg
|
||||||
├── list
|
├── list
|
||||||
|
├── deps
|
||||||
|
├── post_install
|
||||||
└── usr
|
└── usr
|
||||||
└── bin
|
└── bin
|
||||||
└── pfetch
|
└── pfetch
|
||||||
@@ -39,3 +41,9 @@ pfetch.pkg
|
|||||||
```
|
```
|
||||||
usr/bin/pfetch
|
usr/bin/pfetch
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Example deps file (pfetch for example)
|
||||||
|
|
||||||
|
```
|
||||||
|
busybox
|
||||||
|
```
|
||||||
@@ -49,37 +49,45 @@ checkroot() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
checkroot
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
#----------------- add(install) package function ------------------------
|
#----------------- add(install) package function ------------------------
|
||||||
add() {
|
add() {
|
||||||
|
shift 1
|
||||||
if [[ "$1" == "" ]]; then
|
if [[ "$1" == "" ]]; then
|
||||||
help
|
help
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
for i in $*; do
|
for i in $@; do
|
||||||
if [[ "$i" == "add" ]]; then
|
case $i in
|
||||||
continue
|
add|a)
|
||||||
fi
|
continue
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
for i in $*; do
|
for i in $@; do
|
||||||
if [[ "$i" == "add" ]]; then
|
case $i in
|
||||||
continue
|
add|a)
|
||||||
fi
|
continue
|
||||||
down $i
|
;;
|
||||||
|
*)
|
||||||
|
down $i
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
for i in $*; do
|
for i in $@; do
|
||||||
if [[ "$i" == "add" ]]; then
|
case $i in
|
||||||
continue
|
add|a)
|
||||||
fi
|
continue
|
||||||
unpack $cachedpkgdir/$i.pkg.gz
|
;;
|
||||||
|
*)
|
||||||
|
unpack $cachedpkgdir/$i.pkg.gz
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
a() {
|
a() {
|
||||||
add $*
|
add $@
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -93,12 +101,13 @@ down() {
|
|||||||
check $? "Read repositories"
|
check $? "Read repositories"
|
||||||
for i in $servers; do
|
for i in $servers; do
|
||||||
serverdir=$(echo $i | sed -e "/http:\/\//s///")
|
serverdir=$(echo $i | sed -e "/http:\/\//s///")
|
||||||
serverdir=$(echo $i | sed -e "/ftp:\/\//s///")
|
serverdir=$(echo $serverdir | sed -e "/ftp:\/\//s///")
|
||||||
repoquery=$(/usr/bin/cat $reposquerydir/$serverdir/query | sed -e '/.pkg.gz/s///')
|
repoquery=$(/usr/bin/cat $reposquerydir/$serverdir/query | sed -e '/.pkg.gz/s///')
|
||||||
for j in $repoquery; do
|
for j in $repoquery; do
|
||||||
if [[ $j == $1 ]]; then
|
if [[ $j == $1 ]]; then
|
||||||
if [ ! -f $cachedpkgdir/$1.pkg.gz ]; then
|
if [ ! -f $cachedpkgdir/$1.pkg.gz ]; then
|
||||||
printf "$YELLOW**$RESET Downloading $YELLOW$serverdir: $Bwhite$j\n$RESET"
|
printf "$YELLOW**$RESET Downloading $YELLOW$serverdir: $Bwhite$j\n$RESET"
|
||||||
|
echo $i/$1.pkg.gz
|
||||||
wget $i/$1.pkg.gz -P $cachedpkgdir
|
wget $i/$1.pkg.gz -P $cachedpkgdir
|
||||||
check $? "Download package"
|
check $? "Download package"
|
||||||
# if [[ "$?" == "0" ]]; then
|
# if [[ "$?" == "0" ]]; then
|
||||||
@@ -112,7 +121,7 @@ down() {
|
|||||||
printf "$YELLOW**$GREEN successful downloaded $1\n$RESET"
|
printf "$YELLOW**$GREEN successful downloaded $1\n$RESET"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
# exit 0
|
return
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
@@ -129,13 +138,42 @@ unpack() {
|
|||||||
packagename=$(echo $1 | sed -e "/.gz/s///")
|
packagename=$(echo $1 | sed -e "/.gz/s///")
|
||||||
packagename=${packagename#*pkg/}
|
packagename=${packagename#*pkg/}
|
||||||
printf "$YELLOW**$GREEN Installing ${packagename%.pkg*}\n$RESET"
|
printf "$YELLOW**$GREEN Installing ${packagename%.pkg*}\n$RESET"
|
||||||
installed=$(/usr/bin/cat $packagesqueryfile | grep ${packagename%.pkg*})
|
if [ ! -f $packagesqueryfile ]; then
|
||||||
check $? "Read $packagesqueryfile"
|
printf "$BBLUE**$BWHITE Can't find $packagesqueryfile [$BRED ERROR $BWHITE]\n$RESET"
|
||||||
if [[ "$installed" != "" ]]; then
|
fi
|
||||||
|
installed=false
|
||||||
|
for i in $(/usr/bin/cat $packagesqueryfile); do
|
||||||
|
if [ "$i" = "${packagename%.pkg*}" ]; then
|
||||||
|
export installed=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$installed" == "true" ]]; then
|
||||||
printf "$YELLOW**$RESET Package already installed:$YELLOW reinstalling\n$RESET"
|
printf "$YELLOW**$RESET Package already installed:$YELLOW reinstalling\n$RESET"
|
||||||
fi
|
fi
|
||||||
tar -xvf $1 -C $rootdir/tmp &> /dev/null
|
tar -xvf $1 -C $rootdir/tmp &> /dev/null
|
||||||
cd $rootdir/tmp/$packagename
|
cd $rootdir/tmp/$packagename
|
||||||
|
if [ -f deps ]; then
|
||||||
|
printf "$YELLOW**$GREEN Checking deps\n$RESET"
|
||||||
|
deps=$(/usr/bin/cat deps)
|
||||||
|
for dep in $deps; do
|
||||||
|
have=false
|
||||||
|
for pack in $(/usr/bin/cat $packagesqueryfile); do
|
||||||
|
if [ $pack = $dep ]; then
|
||||||
|
have=yes
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ "$have" = "false" ]; then
|
||||||
|
pkgnow=$packagename
|
||||||
|
add "" $dep
|
||||||
|
unpack $cachedpkgdir/$pkgnow.gz
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
mkdir $installedpackagesdir/$packagename &> /dev/null
|
||||||
|
mv -v deps $installedpackagesdir/$packagename &> /dev/null
|
||||||
|
fi
|
||||||
mkdir $installedpackagesdir/$packagename &> /dev/null
|
mkdir $installedpackagesdir/$packagename &> /dev/null
|
||||||
mv -v list $installedpackagesdir/$packagename &> /dev/null
|
mv -v list $installedpackagesdir/$packagename &> /dev/null
|
||||||
cp -r ./* $rootdir/
|
cp -r ./* $rootdir/
|
||||||
@@ -146,7 +184,7 @@ unpack() {
|
|||||||
printf "$YELLOW**$GREEN post_install script ${packagename%.pkg*}\n$RESET"
|
printf "$YELLOW**$GREEN post_install script ${packagename%.pkg*}\n$RESET"
|
||||||
/usr/bin/sh -c $rootdir/tmp/$packagename/post_install &> /dev/null
|
/usr/bin/sh -c $rootdir/tmp/$packagename/post_install &> /dev/null
|
||||||
fi
|
fi
|
||||||
if [[ "$(/usr/bin/cat $packagesqueryfile | grep ${packagename%.pkg*})" == "" ]]; then
|
if [[ "$installed" == "false" ]]; then
|
||||||
echo ${packagename%.pkg*} >> $packagesqueryfile
|
echo ${packagename%.pkg*} >> $packagesqueryfile
|
||||||
fi
|
fi
|
||||||
rm -rv $rootdir/tmp/$packagename &> /dev/null
|
rm -rv $rootdir/tmp/$packagename &> /dev/null
|
||||||
@@ -160,10 +198,8 @@ u() {
|
|||||||
#------------------ delete package function -----------------------------
|
#------------------ delete package function -----------------------------
|
||||||
del() {
|
del() {
|
||||||
printf "$YELLOW**$GREEN deleting\n$RESET"
|
printf "$YELLOW**$GREEN deleting\n$RESET"
|
||||||
for i in $*; do
|
shift 1
|
||||||
if [[ "$i" == "del" ]]; then
|
for i in $@; do
|
||||||
continue
|
|
||||||
fi
|
|
||||||
printf "$YELLOW**$GREEN deleting $i\n$RESET"
|
printf "$YELLOW**$GREEN deleting $i\n$RESET"
|
||||||
if [ ! -f $installedpackagesdir/$i.pkg/list ]; then
|
if [ ! -f $installedpackagesdir/$i.pkg/list ]; then
|
||||||
printf "$BBLUE**$BWHITE package not installed ($i) [$BRED ERROR $BWHITE]\n$RESET"
|
printf "$BBLUE**$BWHITE package not installed ($i) [$BRED ERROR $BWHITE]\n$RESET"
|
||||||
@@ -174,19 +210,32 @@ del() {
|
|||||||
done
|
done
|
||||||
# rm -v $rootdir/$(/usr/bin/cat $installedpackagesdir/$i.pkg/list)
|
# rm -v $rootdir/$(/usr/bin/cat $installedpackagesdir/$i.pkg/list)
|
||||||
rm -rv $installedpackagesdir/$i.pkg &> /dev/null
|
rm -rv $installedpackagesdir/$i.pkg &> /dev/null
|
||||||
sed -i "/$i/d" $packagesqueryfile
|
packs=$(cat $packagesqueryfile)
|
||||||
|
rm $packagesqueryfile
|
||||||
|
for pack in $packs; do
|
||||||
|
if [ "$pack" = "$i" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo $pack >> $packagesqueryfile
|
||||||
|
done
|
||||||
|
# sed -i "s/$i/d" $packagesqueryfile
|
||||||
printf "$YELLOW**$GREEN delete $i successful\n$RESET"
|
printf "$YELLOW**$GREEN delete $i successful\n$RESET"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
d() {
|
d() {
|
||||||
del $*
|
del $@
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
#------------------- list files in package function ---------------------
|
#------------------- list files in package function ---------------------
|
||||||
list() {
|
list() {
|
||||||
if [[ "$1" == "" ]]; then
|
if [[ "$1" == "" ]]; then
|
||||||
help
|
for i in $(/usr/bin/cat $packagesqueryfile); do
|
||||||
|
filelist=$(/usr/bin/cat $installedpackagesdir/$i.pkg/list)
|
||||||
|
for j in $filelist; do
|
||||||
|
printf "$YELLOW$i: $BWHITE$j$RESET\n"
|
||||||
|
done
|
||||||
|
done
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
if [[ "$(/usr/bin/cat $packagesqueryfile | grep $1)" == "" ]]; then
|
if [[ "$(/usr/bin/cat $packagesqueryfile | grep $1)" == "" ]]; then
|
||||||
@@ -207,10 +256,12 @@ l() {
|
|||||||
query() {
|
query() {
|
||||||
packagesquery=$(/usr/bin/cat $packagesqueryfile)
|
packagesquery=$(/usr/bin/cat $packagesqueryfile)
|
||||||
if [[ "$packagesquery" == "" ]]; then
|
if [[ "$packagesquery" == "" ]]; then
|
||||||
printf "$YELLOW**$BWHITE No installed packages\n"
|
printf "$YELLOW**$BWHITE No installed packages\n$RESET"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
printf "$packagesquery\n"
|
for i in $packagesquery; do
|
||||||
|
printf "$BWHITE$i\n$RESET"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
q() {
|
q() {
|
||||||
query
|
query
|
||||||
@@ -221,16 +272,17 @@ q() {
|
|||||||
help() {
|
help() {
|
||||||
printf "
|
printf "
|
||||||
$YELLOW**$GREEN pm usage$RESET :
|
$YELLOW**$GREEN pm usage$RESET :
|
||||||
$BWHITE pm add [package name] - download and install from repository
|
$BWHITE add, a [package name] - download and install from repository
|
||||||
pm unpack [/path/to/package/archive] - unpack(install) from local package archive
|
unpack, u [/path/to/package/archive] - unpack(install) from local package archive
|
||||||
pm down [package name] - download package from repository without install
|
down, download [package name] - download package from repository without install
|
||||||
pm del [package name] - delete package
|
del, d [package name] - delete package
|
||||||
pm list [package name] - list files in package
|
list, l [package name] - list files in package
|
||||||
pm search [package name] - search package in repository
|
search, ss [package name] - search package in repository
|
||||||
pm query - show installed packages
|
query, q - show installed packages
|
||||||
pm help - this help message
|
help - this help message
|
||||||
pm clear - clear all package archives from cached packages directory
|
clear - clear all package archives from cached packages directory
|
||||||
pm sync - synchronize repository
|
sync, s - synchronize repository
|
||||||
|
deps [package name] - show package dependencies
|
||||||
|
|
||||||
$YELLOW**$GREEN examples$RESET :
|
$YELLOW**$GREEN examples$RESET :
|
||||||
$BWHITE pm add dnsmasq
|
$BWHITE pm add dnsmasq
|
||||||
@@ -251,12 +303,17 @@ help() {
|
|||||||
sync() {
|
sync() {
|
||||||
servers=$(/usr/bin/cat $repofile)
|
servers=$(/usr/bin/cat $repofile)
|
||||||
for i in $servers; do
|
for i in $servers; do
|
||||||
|
printf "$YELLOW**$GREEN Sync $BWHITE$i\n$RESET"
|
||||||
serverdir=$(echo $i | sed -e "/http:\//s///")
|
serverdir=$(echo $i | sed -e "/http:\//s///")
|
||||||
serverdir=$(echo $i | sed -e "/ftp:\//s///")
|
serverdir=$(echo $serverdir | sed -e "/ftp:\//s///")
|
||||||
mkdir -p $reposquerydir/$serverdir &> /dev/null
|
mkdir -p $reposquerydir/$serverdir &> /dev/null
|
||||||
wget $i/query -O $reposquerydir/$serverdir/query &> /dev/null
|
wget $i/query -O $reposquerydir/$serverdir/query &> /dev/null
|
||||||
|
check $? "Sync $i"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
s() {
|
||||||
|
sync
|
||||||
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
#----------------- search package in repo function ----------------------
|
#----------------- search package in repo function ----------------------
|
||||||
@@ -265,6 +322,7 @@ search() {
|
|||||||
if [[ ! $1 ]]; then
|
if [[ ! $1 ]]; then
|
||||||
for i in $servers; do
|
for i in $servers; do
|
||||||
serverdir=$(echo $i | sed -e "/http:\/\//s///")
|
serverdir=$(echo $i | sed -e "/http:\/\//s///")
|
||||||
|
serverdir=$(echo $serverdir | sed -e "/ftp:\/\//s///")
|
||||||
repoquery=$(/usr/bin/cat $reposquerydir/$serverdir/query | sed -e '/.pkg.gz/s///')
|
repoquery=$(/usr/bin/cat $reposquerydir/$serverdir/query | sed -e '/.pkg.gz/s///')
|
||||||
for j in $repoquery; do
|
for j in $repoquery; do
|
||||||
printf "$YELLOW$serverdir: $BWHITE$j\n$RESET"
|
printf "$YELLOW$serverdir: $BWHITE$j\n$RESET"
|
||||||
@@ -272,18 +330,22 @@ search() {
|
|||||||
done
|
done
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
found=false
|
||||||
for i in $servers; do
|
for i in $servers; do
|
||||||
serverdir=$(echo $i | sed -e "/http:\/\//s///")
|
serverdir=$(echo $i | sed -e "/http:\/\//s///")
|
||||||
|
serverdir=$(echo $serverdir | sed -e "/ftp:\/\//s///")
|
||||||
repoquery=$(/usr/bin/cat $reposquerydir/$serverdir/query | sed -e '/.pkg.gz/s///')
|
repoquery=$(/usr/bin/cat $reposquerydir/$serverdir/query | sed -e '/.pkg.gz/s///')
|
||||||
for j in $repoquery; do
|
for j in $repoquery; do
|
||||||
if [[ $j == $1 ]]; then
|
if [[ $j =~ $1 ]]; then
|
||||||
printf "$YELLOW$serverdir: $BWHITE$j\n$RESET"
|
printf "$YELLOW$serverdir: $BWHITE$j\n$RESET"
|
||||||
exit 0
|
found=true
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
printf "$YELLOW**$RED error:$RESET can't find package ($1)\n"
|
[ "$found" = "false" ] && printf "$YELLOW**$RED error:$RESET can't find package ($1)\n"
|
||||||
|
}
|
||||||
|
ss() {
|
||||||
|
search $1
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -293,14 +355,122 @@ clear() {
|
|||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#--- show package dependencies function ---
|
||||||
|
deps() {
|
||||||
|
if [ "$1" = "" ]; then
|
||||||
|
help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f $installedpackagesdir/$1.pkg/deps ]; then
|
||||||
|
printf "$YELLOW**$BWHITE No deps\n$RESET"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
cat $installedpackagesdir/$1.pkg/deps
|
||||||
|
}
|
||||||
|
#------------------------------------------
|
||||||
|
|
||||||
|
#--- build package uses PMBUILD file function ---
|
||||||
|
buildpkg() {
|
||||||
|
if [ ! -f ./PMBUILD ]; then
|
||||||
|
if [ "$1" != "" ]; then
|
||||||
|
source $1
|
||||||
|
else
|
||||||
|
printf "$BBLUE**$BWHITE Can't find PMBUILD [$BRED ERROR $BWHITE]\n$RESET"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
source ./PMBUILD
|
||||||
|
fi
|
||||||
|
export buildroot=$(pwd)
|
||||||
|
if [ -f $buildroot/$pkgname-$pkgver-$pkgrel.pkg.gz ]; then
|
||||||
|
if [ "$1" != "-r" ]; then
|
||||||
|
printf "$BBLUE**$BWHITE $pkgname-$pkgver-$pkgrel.pkg.gz already exists please use -r to rebuild [$YELLOW WARNING $BWHITE]\n$RESET"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
[ -d pkg ] && rm -r pkg
|
||||||
|
[ -d src ] && rm -r src
|
||||||
|
[ -f $pkgname-$pkgver-$pkgrel.pkg.gz ] && rm -r $pkgname-$pkgver-$pkgrel.pkg.gz
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ ! -d src ] && mkdir -p src
|
||||||
|
[ ! -d pkg/$pkgname-$pkgver-$pkgrel.pkg ] && mkdir -p pkg/$pkgname-$pkgver-$pkgrel.pkg
|
||||||
|
export pkgdir=$buildroot/pkg/$pkgname-$pkgver-$pkgrel.pkg
|
||||||
|
if [ "$srcdir" = "" ]; then
|
||||||
|
export srcdir=$buildroot/src/$pkgname
|
||||||
|
fi
|
||||||
|
if [ "$gitsource" != "" ]; then
|
||||||
|
printf "$BBLUE**$BWHITE Downloading sources\n$RESET"
|
||||||
|
git clone $gitsource $srcdir
|
||||||
|
check $? "Download sources"
|
||||||
|
fi
|
||||||
|
if [ "$source" != "" ]; then
|
||||||
|
printf "$BBLUE**$BWHITE Downloading sources\n$RESET"
|
||||||
|
[ ! -d $srcdir ] && mkdir -p $srcdir
|
||||||
|
cd $srcdir
|
||||||
|
[ ! -f $pkgname-$pkgver.tar.* ] && wget $source
|
||||||
|
cd -
|
||||||
|
fi
|
||||||
|
if [[ $(type -t configure) = function ]]; then
|
||||||
|
printf "$BBLUE**$BWHITE Configuring package\n$RESET"
|
||||||
|
configure
|
||||||
|
check $? "Configure"
|
||||||
|
fi
|
||||||
|
if [[ $(type -t build) = function ]]; then
|
||||||
|
printf "$BBLUE**$BWHITE Building package\n$RESET"
|
||||||
|
build
|
||||||
|
check $? "Build"
|
||||||
|
else
|
||||||
|
echo "no build"
|
||||||
|
fi
|
||||||
|
if [[ $(type -t package) == function ]]; then
|
||||||
|
printf "$BBLUE**$BWHITE Packaging package\n$RESET"
|
||||||
|
package
|
||||||
|
check $? "Package"
|
||||||
|
else
|
||||||
|
echo "no package"
|
||||||
|
fi
|
||||||
|
printf "$BBLUE**$BWHITE Stripping unneded symbols\n$RESET"
|
||||||
|
for execfile in $(find $pkgdir -executable -type f); do
|
||||||
|
strip $execfile
|
||||||
|
done
|
||||||
|
printf "$BBLUE**$BWHITE Strip unneded symbols [$BGREEN SUCCESS $BWHITE]\n$RESET"
|
||||||
|
cd $pkgdir
|
||||||
|
find -type f > $buildroot/list
|
||||||
|
find -type l >> $buildroot/list
|
||||||
|
sed -i "s/.\///" $buildroot/list
|
||||||
|
sed -i 's/usr\/sbin//g' $buildroot/list
|
||||||
|
sed -i 's/usr\/lib64//g' $buildroot/list
|
||||||
|
sed -i 's/usr\/lib32//g' $buildroot/list
|
||||||
|
cd $buildroot
|
||||||
|
mv list $pkgdir/list
|
||||||
|
if [ "$deps" != "" ]; then
|
||||||
|
for i in $deps; do
|
||||||
|
echo $i >> $pkgdir/deps
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
cd $pkgdir
|
||||||
|
printf "$BBLUE**$BWHITE Archiving package\n$RESET"
|
||||||
|
tar -czf $buildroot/$pkgname-$pkgver-$pkgrel.pkg.gz .. &> /dev/null
|
||||||
|
check $? "Archive package"
|
||||||
|
cd $buildroot
|
||||||
|
unset pkgdir srcdir buildroot
|
||||||
|
}
|
||||||
|
#-----------------------------------------------------
|
||||||
|
|
||||||
|
#--- main ---
|
||||||
case "$1" in
|
case "$1" in
|
||||||
add|a|del|d)
|
add|a|del|d)
|
||||||
"$1" $*
|
checkroot
|
||||||
|
"$1" $@
|
||||||
;;
|
;;
|
||||||
query|q|help|sync|clear|search|list|l|unpack|u|down|download)
|
query|q|s|sync|clear|ss|search|list|l|unpack|u|down|download|deps)
|
||||||
|
checkroot
|
||||||
"$1" $2
|
"$1" $2
|
||||||
;;
|
;;
|
||||||
|
build)
|
||||||
|
buildpkg $2
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
help
|
help
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
#------------
|
||||||
Reference in new issue
Block a user