Merge pull request 'pmbuild' (#10) from pmbuild into main
Reviewed-on: https://gitea.home.com:3000/TolaMironcenko/pm/pulls/10
This commit was merged in pull request #10.
This commit is contained in:
commit
2dfdf91528
4 files changed
+133
-41
No files matched your search
+2
-1
@@ -1,3 +1,4 @@
|
|||||||
pm.pkg
|
pm.pkg
|
||||||
pm.pkg.gz
|
pm.pkg.gz
|
||||||
rootfs
|
rootfs
|
||||||
|
package
|
||||||
@@ -2,53 +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
|
||||||
echo busybox > pm.pkg/deps
|
@echo busybox > pm.pkg/deps
|
||||||
cp -v src/pm pm.pkg/usr/bin/pm
|
@cp src/pm pm.pkg/usr/bin/pm
|
||||||
tar -czvf pm.pkg.gz pm.pkg
|
@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
|
||||||
|
}
|
||||||
@@ -107,6 +107,7 @@ down() {
|
|||||||
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
|
||||||
@@ -258,7 +259,9 @@ query() {
|
|||||||
printf "$YELLOW**$BWHITE No installed packages\n$RESET"
|
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
|
||||||
@@ -301,7 +304,6 @@ 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"
|
printf "$YELLOW**$GREEN Sync $BWHITE$i\n$RESET"
|
||||||
# echo "$i"
|
|
||||||
serverdir=$(echo $i | sed -e "/http:\//s///")
|
serverdir=$(echo $i | sed -e "/http:\//s///")
|
||||||
serverdir=$(echo $serverdir | sed -e "/ftp:\//s///")
|
serverdir=$(echo $serverdir | sed -e "/ftp:\//s///")
|
||||||
mkdir -p $reposquerydir/$serverdir &> /dev/null
|
mkdir -p $reposquerydir/$serverdir &> /dev/null
|
||||||
@@ -328,22 +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///")
|
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() {
|
ss() {
|
||||||
search
|
search $1
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -353,6 +355,7 @@ clear() {
|
|||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#--- show package dependencies function ---
|
||||||
deps() {
|
deps() {
|
||||||
if [ "$1" = "" ]; then
|
if [ "$1" = "" ]; then
|
||||||
help
|
help
|
||||||
@@ -364,7 +367,80 @@ deps() {
|
|||||||
fi
|
fi
|
||||||
cat $installedpackagesdir/$1.pkg/deps
|
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 [[ $(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
|
||||||
|
sed -i "s/.\///" $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)
|
||||||
checkroot
|
checkroot
|
||||||
@@ -374,7 +450,11 @@ case "$1" in
|
|||||||
checkroot
|
checkroot
|
||||||
"$1" $2
|
"$1" $2
|
||||||
;;
|
;;
|
||||||
|
build)
|
||||||
|
buildpkg $2
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
help
|
help
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
#------------
|
||||||
Reference in new issue
Block a user