From 6f8cb4243f4903e99763258002e42fe96a314b0e Mon Sep 17 00:00:00 2001 From: TolaMironcenko Date: Thu, 26 Dec 2024 00:50:34 +0700 Subject: [PATCH] updated some funcs in pm --- .gitignore | 3 +++ Makefile | 12 +++++++++++- src/pm | 17 ++++++++++++----- 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..65b2753 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +pm.pkg +pm.pkg.gz +rootfs \ No newline at end of file diff --git a/Makefile b/Makefile index f7252ab..9dc1e02 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ install: fi if [ ! -d ${DESTDIR}/usr/bin ]; then \ mkdir -pv ${DESTDIR}/usr/bin; \ + cp -v src/pm ${DESTDIR}/usr/bin/pm; \ fi if [ ! -d ${DESTDIR}/usr/share/pm ]; then \ mkdir -pv ${DESTDIR}/usr/share/pm/{packages,repos}; \ @@ -32,4 +33,13 @@ uninstall: fi if [ -f ${DESTDIR}/usr/bin/pm ]; then \ rm -v ${DESTDIR}/usr/bin/pm; \ - fi \ No newline at end of file + fi + +package: + mkdir -pv pm.pkg/usr/bin + mkdir -pv pm.pkg/etc/pm + mkdir -pv pm.pkg/var/cache/pm/pkg + mkdir -pv pm.pkg/usr/share/pm/{repos,packages} + echo usr/bin/pm > pm.pkg/list + cp -v src/pm pm.pkg/usr/bin/pm + tar -czvf pm.pkg.gz pm.pkg \ No newline at end of file diff --git a/src/pm b/src/pm index 5c3c746..616c4fa 100755 --- a/src/pm +++ b/src/pm @@ -12,7 +12,7 @@ ## ## ## #---------------- variables -------------------------- -rootdir=/home/tola/Documents/linux/pm/rootfs +export rootdir=/ repofile=$rootdir/etc/pm/repo packagesqueryfile=$rootdir/usr/share/pm/query reposquerydir=$rootdir/usr/share/pm/repos @@ -108,15 +108,19 @@ unpack() { packagename=${packagename#*pkg/} printf "$YELLOW**$GREEN Installing ${packagename%.pkg*}\n$RESET" if [[ "$(/usr/bin/cat $packagesqueryfile | grep ${packagename%.pkg*})" != "" ]]; then - printf "$YELLOW**$RESET Package already installed:$YELLOW reinstalling\n" + printf "$YELLOW**$RESET Package already installed:$YELLOW reinstalling\n$RESET" fi tar -xvf $1 -C $rootdir/tmp &> /dev/null cd $rootdir/tmp/$packagename mkdir $installedpackagesdir/$packagename &> /dev/null mv -v list $installedpackagesdir/$packagename &> /dev/null - cp -rv ./* $rootdir &> /dev/null + cp -r ./* $rootdir/ + if [ -f $rootdir/post_install ]; then + rm $rootdir/post_install + fi + printf "$YELLOW**$GREEN post_install script ${packagename%.pkg*}\n$RESET" if [ -f $rootdir/tmp/$packagename/post_install ]; then - sh -c $rootdir/tmp/$packagename/post_install + /usr/bin/sh -c $rootdir/tmp/$packagename/post_install &> /dev/null fi if [[ "$(/usr/bin/cat $packagesqueryfile | grep ${packagename%.pkg*})" == "" ]]; then echo ${packagename%.pkg*} >> $packagesqueryfile @@ -138,7 +142,10 @@ del() { printf "$YELLOW**$BRED error:$RESET package not installed\n" exit 0 fi - rm -v $rootdir/$(/usr/bin/cat $installedpackagesdir/$i.pkg/list) &> /dev/null + for file in $(/usr/bin/cat $installedpackagesdir/$i.pkg/list); do + rm -v $rootdir/$file + done + # rm -v $rootdir/$(/usr/bin/cat $installedpackagesdir/$i.pkg/list) rm -rv $installedpackagesdir/$i.pkg &> /dev/null sed -i "/$i/d" $packagesqueryfile printf "$YELLOW**$GREEN delete $i successful\n$RESET"