updated fore functions
This commit is contained in:
1 parent
ef47824b17
commit
29d7ea9d66
1 file changed
+247
-77
@@ -11,9 +11,11 @@
|
|||||||
## ## ##
|
## ## ##
|
||||||
## ## ##
|
## ## ##
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
#---------------- variables --------------------------
|
#---------------- variables --------------------------
|
||||||
version="1.0.0"
|
version="1.0.0"
|
||||||
export rootdir=/
|
rootdir=/
|
||||||
repofile=$rootdir/etc/pm/repo
|
repofile=$rootdir/etc/pm/repo
|
||||||
packagesqueryfile=$rootdir/usr/share/pm/query
|
packagesqueryfile=$rootdir/usr/share/pm/query
|
||||||
reposquerydir=$rootdir/usr/share/pm/repos
|
reposquerydir=$rootdir/usr/share/pm/repos
|
||||||
@@ -22,32 +24,44 @@ installedpackagesdir=$rootdir/usr/share/pm/packages
|
|||||||
command=""
|
command=""
|
||||||
packages=""
|
packages=""
|
||||||
archives=""
|
archives=""
|
||||||
|
destdir=""
|
||||||
|
colors=y
|
||||||
#-----------------------------------------------------
|
#-----------------------------------------------------
|
||||||
|
|
||||||
#----- colors -------
|
#----- colors -------
|
||||||
RESET="\033[0m"
|
RESET=""
|
||||||
GREEN="\033[0;32m"
|
GREEN=""
|
||||||
RED="\033[0;31m"
|
RED=""
|
||||||
BRED="\033[1;31m"
|
BRED=""
|
||||||
YELLOW="\033[1;33m"
|
YELLOW=""
|
||||||
BWHITE="\033[1;37m"
|
BWHITE=""
|
||||||
BBLUE="\033[1;34m"
|
BBLUE=""
|
||||||
BGREEN="\033[1;32m"
|
BGREEN=""
|
||||||
|
if [ "$colors" = "y" ]; then
|
||||||
|
RESET="\033[0m"
|
||||||
|
GREEN="\033[0;32m"
|
||||||
|
RED="\033[0;31m"
|
||||||
|
BRED="\033[1;31m"
|
||||||
|
YELLOW="\033[1;33m"
|
||||||
|
BWHITE="\033[1;37m"
|
||||||
|
BBLUE="\033[1;34m"
|
||||||
|
BGREEN="\033[1;32m"
|
||||||
|
fi
|
||||||
#--------------------
|
#--------------------
|
||||||
|
|
||||||
#------------ check status function ------------
|
#------------ check status function ------------
|
||||||
check() {
|
check() {
|
||||||
[ $1 -ne 0 ] \
|
[ $1 -ne 0 ] \
|
||||||
&& printf "$BBLUE**$BWHITE $2 [$BRED ERROR $BWHITE]\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} $2 [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit $1
|
&& exit $1
|
||||||
printf "$BBLUE**$BWHITE $2 [$BGREEN SUCCESS $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} $2 [${BGREEN} SUCCESS ${BWHITE}]\n${RESET}"
|
||||||
}
|
}
|
||||||
#-----------------------------------------------
|
#-----------------------------------------------
|
||||||
|
|
||||||
#---------------- check root priveleges function ------------------------
|
#---------------- check root priveleges function ------------------------
|
||||||
checkroot() {
|
checkroot() {
|
||||||
[[ $(id -u) != 0 ]] \
|
[[ $(id -u) != 0 ]] \
|
||||||
&& printf "$BBLUE**$BWHITE You must be root [$BRED ERROR $BWHITE]\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} You must be root [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@@ -55,7 +69,7 @@ checkroot() {
|
|||||||
# check non root priveleges function
|
# check non root priveleges function
|
||||||
checknonroot() {
|
checknonroot() {
|
||||||
[[ $(id -u) == 0 ]] \
|
[[ $(id -u) == 0 ]] \
|
||||||
&& printf "$BBLUE**$BWHITE You must be non root [$BRED ERROR $BWHITE]\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} You must be non root [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
}
|
}
|
||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
@@ -92,12 +106,12 @@ down() {
|
|||||||
for j in $repoquery; do
|
for j in $repoquery; do
|
||||||
if [[ "$(get_pkgname $j)" == "$k" ]]; then
|
if [[ "$(get_pkgname $j)" == "$k" ]]; then
|
||||||
if [ ! -f $cachedpkgdir/$j.pkg.gz ]; then
|
if [ ! -f $cachedpkgdir/$j.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/$j.pkg.gz
|
echo $i/$j.pkg.gz
|
||||||
wget $i/$j.pkg.gz -P $cachedpkgdir
|
wget $i/$j.pkg.gz -P $cachedpkgdir
|
||||||
check $? "Download package"
|
check $? "Download package"
|
||||||
else
|
else
|
||||||
printf "$YELLOW**$GREEN successful downloaded $k\n$RESET"
|
printf "${YELLOW}**${GREEN} successful downloaded $k\n${RESET}"
|
||||||
downloaded=y
|
downloaded=y
|
||||||
fi
|
fi
|
||||||
downloaded=y
|
downloaded=y
|
||||||
@@ -105,7 +119,7 @@ down() {
|
|||||||
done
|
done
|
||||||
done
|
done
|
||||||
if [ "$downloaded" == "n" ]; then
|
if [ "$downloaded" == "n" ]; then
|
||||||
printf "$BBLUE**$BWHITE Can't find package $k [$BRED ERROR $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} Can't find package $k [${BRED} ERROR ${BWHITE}]\n${RESET}"
|
||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
done
|
done
|
||||||
@@ -118,18 +132,18 @@ download() {
|
|||||||
#-------------------- unpack local package archive ----------------------
|
#-------------------- unpack local package archive ----------------------
|
||||||
unpack() {
|
unpack() {
|
||||||
[[ "$archives" == "" ]] \
|
[[ "$archives" == "" ]] \
|
||||||
&& printf "$BBLUE**$BWHITE Specify package name [$BRED ERROR $BWHITE]\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} Specify package name [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
for i in $archives; do
|
for i in $archives; do
|
||||||
if [ ! -f $i ]; then
|
if [ ! -f $i ]; then
|
||||||
printf "$BBLUE**$BWHITE File $i not found [$BRED ERROR $BWHITE]\n$RESET" \
|
printf "${BBLUE}**${BWHITE} File $i not found [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
fi
|
fi
|
||||||
packagename=$(echo $i | sed -e "/.gz/s///")
|
packagename=$(echo $i | 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}"
|
||||||
[ ! -f $packagesqueryfile ] \
|
[ ! -f $packagesqueryfile ] \
|
||||||
&& printf "$BBLUE**$BWHITE Can't find $packagesqueryfile [$BRED ERROR $BWHITE]\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} Can't find $packagesqueryfile [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
installed=false
|
installed=false
|
||||||
for i in $(/usr/bin/cat $packagesqueryfile); do
|
for i in $(/usr/bin/cat $packagesqueryfile); do
|
||||||
@@ -138,14 +152,14 @@ unpack() {
|
|||||||
&& break
|
&& break
|
||||||
done
|
done
|
||||||
[[ "$installed" == "true" ]] \
|
[[ "$installed" == "true" ]] \
|
||||||
&& printf "$YELLOW**$RESET Package already installed:$YELLOW reinstalling\n$RESET"
|
&& printf "${YELLOW}**${RESET} Package already installed:${YELLOW} reinstalling\n${RESET}"
|
||||||
tar -xf $cachedpkgdir/$packagename.gz -C $rootdir/tmp
|
tar -xf $cachedpkgdir/$packagename.gz -C $rootdir/tmp
|
||||||
cd $rootdir/tmp/$packagename
|
cd $rootdir/tmp/$packagename
|
||||||
[ -f pre_install ] \
|
[ -f pre_install ] \
|
||||||
&& /usr/bin/sh -c ./pre_install \
|
&& /usr/bin/sh -c ./pre_install \
|
||||||
&& rm -v pre_install &> /dev/null
|
&& rm -v pre_install &> /dev/null
|
||||||
if [ -f deps ]; then
|
if [ -f deps ]; then
|
||||||
printf "$YELLOW**$GREEN Checking deps\n$RESET"
|
printf "${YELLOW}**${GREEN} Checking deps\n${RESET}"
|
||||||
deps=$(/usr/bin/cat deps)
|
deps=$(/usr/bin/cat deps)
|
||||||
for dep in $deps; do
|
for dep in $deps; do
|
||||||
have=false
|
have=false
|
||||||
@@ -175,12 +189,12 @@ unpack() {
|
|||||||
[ -f $rootdir/post_install ] \
|
[ -f $rootdir/post_install ] \
|
||||||
&& rm $rootdir/post_install
|
&& rm $rootdir/post_install
|
||||||
[ -f $rootdir/tmp/$packagename/post_install ] \
|
[ -f $rootdir/tmp/$packagename/post_install ] \
|
||||||
&& 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
|
||||||
[[ "$installed" == "false" ]] \
|
[[ "$installed" == "false" ]] \
|
||||||
&& echo ${packagename%.pkg*} >> $packagesqueryfile
|
&& echo ${packagename%.pkg*} >> $packagesqueryfile
|
||||||
rm -rv $rootdir/tmp/$packagename &> /dev/null
|
rm -rv $rootdir/tmp/$packagename &> /dev/null
|
||||||
printf "$YELLOW**$GREEN Installed ${packagename%.pkg*} successful\n$RESET"
|
printf "${YELLOW}**${GREEN} Installed ${packagename%.pkg*} successful\n${RESET}"
|
||||||
cd - &> /dev/null
|
cd - &> /dev/null
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -191,11 +205,11 @@ u() {
|
|||||||
|
|
||||||
#------------------ delete package function -----------------------------
|
#------------------ delete package function -----------------------------
|
||||||
del() {
|
del() {
|
||||||
printf "$YELLOW**$GREEN deleting\n$RESET"
|
printf "${YELLOW}**${GREEN} deleting\n${RESET}"
|
||||||
for i in $packages; do
|
for i in $packages; do
|
||||||
printf "$YELLOW**$GREEN deleting $i\n$RESET"
|
printf "${YELLOW}**${GREEN} deleting $i\n${RESET}"
|
||||||
[ ! -f $installedpackagesdir/$i*.pkg/list ] \
|
[ ! -f $installedpackagesdir/$i*.pkg/list ] \
|
||||||
&& printf "$BBLUE**$BWHITE package not installed ($i) [$BRED ERROR $BWHITE]\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} package not installed ($i) [${BRED} ERROR ${BWHITE}]\n${RESET}" \
|
||||||
&& exit 1
|
&& exit 1
|
||||||
[ -f $installedpackagesdir/$i*.pkg/pre_delete ] \
|
[ -f $installedpackagesdir/$i*.pkg/pre_delete ] \
|
||||||
&& /usr/bin/sh -c $installedpackagesdir/$i*.pkg/pre_delete
|
&& /usr/bin/sh -c $installedpackagesdir/$i*.pkg/pre_delete
|
||||||
@@ -213,7 +227,7 @@ del() {
|
|||||||
done
|
done
|
||||||
[ -f $installedpackagesdir/$i*.pkg/post_delete ] \
|
[ -f $installedpackagesdir/$i*.pkg/post_delete ] \
|
||||||
&& /usr/bin/sh -c $installedpackagesdir/$i*.pkg/post_delete
|
&& /usr/bin/sh -c $installedpackagesdir/$i*.pkg/post_delete
|
||||||
printf "$YELLOW**$GREEN delete $i successful\n$RESET"
|
printf "${YELLOW}**${GREEN} delete $i successful\n${RESET}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
d() {
|
d() {
|
||||||
@@ -229,12 +243,12 @@ list() {
|
|||||||
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
||||||
cd - &>/dev/null
|
cd - &>/dev/null
|
||||||
if [[ "$(/usr/bin/cat $packagesqueryfile | grep $i)" == "" ]]; then
|
if [[ "$(/usr/bin/cat $packagesqueryfile | grep $i)" == "" ]]; then
|
||||||
printf "$BBLUE**$BWHITE Package "$i" is not installed [$BRED ERROR $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} Package "$i" is not installed [${BRED} ERROR ${BWHITE}]\n${RESET}"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
filelist=$(/usr/bin/cat $installedpackagesdir/$pkgname*.pkg/list)
|
filelist=$(/usr/bin/cat $installedpackagesdir/$pkgname*.pkg/list)
|
||||||
for j in $filelist; do
|
for j in $filelist; do
|
||||||
printf "$YELLOW$(get_pkgname $pkgname) $BGREEN$(get_pkgver $pkgname)-$(get_pkgrel $pkgname): $BWHITE$j$RESET\n"
|
printf "${YELLOW}$(get_pkgname $pkgname) ${BGREEN}$(get_pkgver $pkgname)-$(get_pkgrel $pkgname): ${BWHITE}$j${RESET}\n"
|
||||||
done
|
done
|
||||||
unset pkgname
|
unset pkgname
|
||||||
done
|
done
|
||||||
@@ -245,12 +259,12 @@ list() {
|
|||||||
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
||||||
cd - &>/dev/null
|
cd - &>/dev/null
|
||||||
if [[ "$(/usr/bin/cat $packagesqueryfile | grep $i)" == "" ]]; then
|
if [[ "$(/usr/bin/cat $packagesqueryfile | grep $i)" == "" ]]; then
|
||||||
printf "$BBLUE**$BWHITE Package "$i" is not installed [$BRED ERROR $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} Package "$i" is not installed [${BRED} ERROR ${BWHITE}]\n${RESET}"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
filelist=$(/usr/bin/cat $installedpackagesdir/"${pkgname}".pkg/list)
|
filelist=$(/usr/bin/cat $installedpackagesdir/"${pkgname}".pkg/list)
|
||||||
for j in $filelist; do
|
for j in $filelist; do
|
||||||
printf "$YELLOW$(get_pkgname $pkgname) $BGREEN$(get_pkgver $pkgname)-$(get_pkgrel $pkgname): $BWHITE$j$RESET\n"
|
printf "${YELLOW}$(get_pkgname $pkgname) ${BGREEN}$(get_pkgver $pkgname)-$(get_pkgrel $pkgname): ${BWHITE}$j${RESET}\n"
|
||||||
done
|
done
|
||||||
unset pkgname
|
unset pkgname
|
||||||
done
|
done
|
||||||
@@ -259,27 +273,36 @@ l() {
|
|||||||
list
|
list
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# print pkgrel function
|
||||||
get_pkgrel() {
|
get_pkgrel() {
|
||||||
echo $(echo $1 | awk -F'-' '{ print $NF }')
|
echo $(echo $1 | awk -F'-' '{ print $NF }')
|
||||||
}
|
}
|
||||||
|
#------------------------
|
||||||
|
|
||||||
|
# print pkgver function
|
||||||
get_pkgver() {
|
get_pkgver() {
|
||||||
echo $(echo $1 | awk -F'-' '{ print $(NF-1) }')
|
echo $(echo $1 | awk -F'-' '{ print $(NF-1) }')
|
||||||
}
|
}
|
||||||
|
#------------------------
|
||||||
|
|
||||||
|
# print pkgname function
|
||||||
get_pkgname() {
|
get_pkgname() {
|
||||||
echo $( echo $(echo $1 | awk -F'-' '{ for (i=NF-2; i>=1; i--) print $i }') | awk -F' ' '{ if (NF==1) { print $NF } else { for (i=NF; i >= 1; i--) { if (i-1 >= 1) { printf $i "-" } else { printf $i } } } }')
|
echo $( echo $(echo $1 | awk -F'-' '{ for (i=NF-2; i>=1; i--) print $i }') | awk -F' ' '{ if (NF==1) { print $NF } else { for (i=NF; i >= 1; i--) { if (i-1 >= 1) { printf $i "-" } else { printf $i } } } }')
|
||||||
}
|
}
|
||||||
|
#------------------------
|
||||||
|
|
||||||
|
# print package information function
|
||||||
printpkg() {
|
printpkg() {
|
||||||
printf "$BWHITE$(get_pkgname $1) $BGREEN$(get_pkgver $1)-$(get_pkgrel $1)\n$RESET"
|
printf "${BWHITE}$(get_pkgname $1) ${BGREEN}$(get_pkgver $1)-$(get_pkgrel $1)\n${RESET}"
|
||||||
}
|
}
|
||||||
|
#-------------------------------------
|
||||||
|
|
||||||
#------------------- show installed packages function -------------------
|
#------------------- show installed packages function -------------------
|
||||||
query() {
|
query() {
|
||||||
packagesquery=$(/usr/bin/cat $packagesqueryfile)
|
packagesquery=$(/usr/bin/cat $packagesqueryfile)
|
||||||
[[ "$packagesquery" == "" ]] \
|
[[ "$packagesquery" == "" ]] \
|
||||||
&& printf "$YELLOW**$BWHITE No installed packages\n$RESET" \
|
&& printf "${YELLOW}**${BWHITE} No installed packages\n${RESET}" \
|
||||||
&& exit 0
|
&& exit 0
|
||||||
for i in $packagesquery; do
|
for i in $packagesquery; do
|
||||||
printpkg $i
|
printpkg $i
|
||||||
@@ -293,22 +316,30 @@ q() {
|
|||||||
#--------------------- show help function -------------------------------
|
#--------------------- show help function -------------------------------
|
||||||
help() {
|
help() {
|
||||||
printf "
|
printf "
|
||||||
$YELLOW**$GREEN pm usage$RESET:
|
${YELLOW}**${GREEN} pm usage${RESET}:
|
||||||
${BWHITE}add, a [package name] - download and install from repository
|
${BWHITE}pm <options> <command> [<package name>]
|
||||||
unpack, u [/path/to/package/archive] - unpack(install) from local package archive
|
|
||||||
down, download [package name] - download package from repository without install
|
${YELLOW}Commands:${BWHITE}
|
||||||
up, upgrade - upgrade packages
|
${BGREEN}add, a, -a, --add [package name]${BWHITE} - download and install from repository
|
||||||
del, d [package name] - delete package
|
${BGREEN}unpack, u, -u, --unpack [/path/to/package/archive]${BWHITE} - unpack(install) from local package archive
|
||||||
list, l [package name] - list files in package
|
${BGREEN}down, download, --download [package name]${BWHITE} - download package from repository without install
|
||||||
search, ss [package name] - search package in repository
|
${BGREEN}up, upgrade, -U, --upgrade${BWHITE} - upgrade packages
|
||||||
query, q - show installed packages
|
${BGREEN}del, d, -d, --delete, --del [package name]${BWHITE} - delete package
|
||||||
help - this help message
|
${BGREEN}list, l, -L, --list [package name]${BWHITE} - list files in package
|
||||||
clear, c - clear all package archives from cached packages directory
|
${BGREEN}search, ss, -s, --search, --ss [package name]${BWHITE} - search package in repository
|
||||||
sync, s - synchronize repository
|
${BGREEN}query, q, -q, --query${BWHITE} - show installed packages
|
||||||
deps [package name] - show package dependencies
|
${BGREEN}help, -h, --help${BWHITE} - this help message
|
||||||
build - build package (./ must contain PMBUILD)
|
${BGREEN}clear, c, -c, --clear${BWHITE} - clear all package archives from cached packages directory
|
||||||
index, i - scan directory with packages and print packages in terminal (to create repository query use pm index > query)
|
${BGREEN}sync, s, -S, --sync${BWHITE} - synchronize repository
|
||||||
$RESET"
|
${BGREEN}deps, -D, --deps [package name]${BWHITE} - show package dependencies
|
||||||
|
${BGREEN}build${BWHITE} - build package (./ must contain PMBUILD)
|
||||||
|
${BGREEN}index, i, -i, --index${BWHITE} - scan directory with packages and print packages in terminal (to create repository query use pm index > query)
|
||||||
|
${BGREEN}cache, cs, -C, --cache${BWHITE} - show cache size
|
||||||
|
${BGREEN}v, version, -v, --version${BWHITE} - show version
|
||||||
|
|
||||||
|
${YELLOW}Options:${BWHITE}
|
||||||
|
${BGREEN}-r, --rootdir${BWHITE} - set root directory for package manager
|
||||||
|
${RESET}"
|
||||||
}
|
}
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -316,7 +347,7 @@ $RESET"
|
|||||||
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"
|
printf "${YELLOW}**${GREEN} Sync ${BWHITE}$i\n${RESET}"
|
||||||
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
|
||||||
@@ -346,9 +377,9 @@ search() {
|
|||||||
&& export installed=true \
|
&& export installed=true \
|
||||||
&& break
|
&& break
|
||||||
done
|
done
|
||||||
printf "$YELLOW$serverdir: $BWHITE$(get_pkgname $j) $BGREEN$(get_pkgver $j)-$(get_pkgrel $j) $RESET"
|
printf "${YELLOW}$serverdir: ${BWHITE}$(get_pkgname $j) ${BGREEN}$(get_pkgver $j)-$(get_pkgrel $j) ${RESET}"
|
||||||
[[ "$installed" == "true" ]] \
|
[[ "$installed" == "true" ]] \
|
||||||
&& printf "$BBLUE[installed]\n$RESET" \
|
&& printf "${BBLUE}[installed]\n${RESET}" \
|
||||||
|| echo ""
|
|| echo ""
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
@@ -362,12 +393,12 @@ search() {
|
|||||||
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 =~ $k ]]; then
|
if [[ $j =~ $k ]]; then
|
||||||
printf "$YELLOW$serverdir: $BWHITE$j\n$RESET"
|
printf "${YELLOW}$serverdir: ${BWHITE}$j\n${RESET}"
|
||||||
found=true
|
found=true
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
[ "$found" = "false" ] && printf "$YELLOW**$RED error:$RESET can't find package ($k)\n"
|
[ "$found" = "false" ] && printf "${YELLOW}**${RED} error:${RESET} can't find package ($k)\n"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
ss() {
|
ss() {
|
||||||
@@ -377,7 +408,9 @@ ss() {
|
|||||||
|
|
||||||
#------------------- clear cached packages directory --------------------
|
#------------------- clear cached packages directory --------------------
|
||||||
clear() {
|
clear() {
|
||||||
rm -v $cachedpkgdir/*
|
printf "${YELLOW}**${BWHITE} clearing cached packages directory "
|
||||||
|
rm -rf $cachedpkgdir/*
|
||||||
|
printf "[${GREEN} OK${BWHITE} ]\n${RESET}"
|
||||||
}
|
}
|
||||||
clean() {
|
clean() {
|
||||||
clear
|
clear
|
||||||
@@ -394,9 +427,9 @@ deps() {
|
|||||||
cd $installedpackagesdir
|
cd $installedpackagesdir
|
||||||
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
||||||
cd - &>/dev/null
|
cd - &>/dev/null
|
||||||
printf "$YELLOW$(get_pkgname $pkgname) $BGREEN$(get_pkgver $pkgname)-$(get_pkgrel $pkgname)$BWHITE deps: \n$RESET"
|
printf "${YELLOW}$(get_pkgname $pkgname) ${BGREEN}$(get_pkgver $pkgname)-$(get_pkgrel $pkgname)${BWHITE} deps: \n${RESET}"
|
||||||
[ ! -f $installedpackagesdir/${pkgname}.pkg/deps ] \
|
[ ! -f $installedpackagesdir/${pkgname}.pkg/deps ] \
|
||||||
&& printf "\t$YELLOW**$BWHITE No deps\n$RESET" \
|
&& printf "\t${YELLOW}**${BWHITE} No deps\n${RESET}" \
|
||||||
&& continue
|
&& continue
|
||||||
for j in $(cat $installedpackagesdir/${pkgname}.pkg/deps); do
|
for j in $(cat $installedpackagesdir/${pkgname}.pkg/deps); do
|
||||||
printf "\t"
|
printf "\t"
|
||||||
@@ -411,12 +444,12 @@ deps() {
|
|||||||
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
pkgname=$(echo $(find . -name "$i*") | sed -e "/.\//s///" | sed -e "/.pkg/s///")
|
||||||
cd - &>/dev/null
|
cd - &>/dev/null
|
||||||
if [ "$pkgname" = "" ]; then
|
if [ "$pkgname" = "" ]; then
|
||||||
printf "$BBLUE**$BWHITE Package $i not found [$BRED ERROR $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} Package $i not found [${BRED} ERROR ${BWHITE}]\n${RESET}"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
printf "$YELLOW$(get_pkgname $pkgname) $BGREEN$(get_pkgver $pkgname)-$(get_pkgrel $pkgname)$BWHITE deps: \n$RESET"
|
printf "${YELLOW}$(get_pkgname $pkgname) ${BGREEN}$(get_pkgver $pkgname)-$(get_pkgrel $pkgname)${BWHITE} deps: \n${RESET}"
|
||||||
[ ! -f $installedpackagesdir/${pkgname}.pkg/deps ] \
|
[ ! -f $installedpackagesdir/${pkgname}.pkg/deps ] \
|
||||||
&& printf "\t$YELLOW**$BWHITE No deps\n$RESET" \
|
&& printf "\t${YELLOW}**${BWHITE} No deps\n${RESET}" \
|
||||||
&& continue
|
&& continue
|
||||||
for j in $(cat $installedpackagesdir/${pkgname}.pkg/deps); do
|
for j in $(cat $installedpackagesdir/${pkgname}.pkg/deps); do
|
||||||
printf "\t"
|
printf "\t"
|
||||||
@@ -433,7 +466,7 @@ buildpkg() {
|
|||||||
if [ "$1" != "" ]; then
|
if [ "$1" != "" ]; then
|
||||||
source $1
|
source $1
|
||||||
else
|
else
|
||||||
printf "$BBLUE**$BWHITE Can't find PMBUILD [$BRED ERROR $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} Can't find PMBUILD [${BRED} ERROR ${BWHITE}]\n${RESET}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -442,7 +475,7 @@ buildpkg() {
|
|||||||
export buildroot=$(pwd)
|
export buildroot=$(pwd)
|
||||||
if [ -f $buildroot/$pkgname-$pkgver-$pkgrel.pkg.gz ]; then
|
if [ -f $buildroot/$pkgname-$pkgver-$pkgrel.pkg.gz ]; then
|
||||||
if [ "$1" != "-r" ]; 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"
|
printf "${BBLUE}**${BWHITE} $pkgname-$pkgver-$pkgrel.pkg.gz already exists please use -r to rebuild [${YELLOW} WARNING ${BWHITE}]\n${RESET}"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
[ -d pkg ] && rm -rf pkg
|
[ -d pkg ] && rm -rf pkg
|
||||||
@@ -457,36 +490,36 @@ buildpkg() {
|
|||||||
export pkgdir=$buildroot/pkg/$pkgname-$pkgver-$pkgrel.pkg
|
export pkgdir=$buildroot/pkg/$pkgname-$pkgver-$pkgrel.pkg
|
||||||
[ "$srcdir" = "" ] && export srcdir=$buildroot/src/$pkgname
|
[ "$srcdir" = "" ] && export srcdir=$buildroot/src/$pkgname
|
||||||
[ "$gitsource" != "" ] \
|
[ "$gitsource" != "" ] \
|
||||||
&& printf "$BBLUE**$BWHITE Downloading sources\n$RESET" \
|
&& printf "${BBLUE}**${BWHITE} Downloading sources\n${RESET}" \
|
||||||
&& git clone $gitsource $srcdir \
|
&& git clone $gitsource $srcdir \
|
||||||
&& check $? "Download sources"
|
&& check $? "Download sources"
|
||||||
if [ "$source" != "" ]; then
|
if [ "$source" != "" ]; then
|
||||||
printf "$BBLUE**$BWHITE Downloading sources\n$RESET"
|
printf "${BBLUE}**${BWHITE} Downloading sources\n${RESET}"
|
||||||
[ ! -d $srcdir ] && mkdir -p $srcdir
|
[ ! -d $srcdir ] && mkdir -p $srcdir
|
||||||
cd $srcdir
|
cd $srcdir
|
||||||
[ ! -f $pkgname-$pkgver.tar.* ] && wget $source
|
[ ! -f $pkgname-$pkgver.tar.* ] && wget $source
|
||||||
cd -
|
cd -
|
||||||
fi
|
fi
|
||||||
if [[ $(type -t configure) = function ]]; then
|
if [[ $(type -t configure) = function ]]; then
|
||||||
printf "$BBLUE**$BWHITE Configuring package\n$RESET"
|
printf "${BBLUE}**${BWHITE} Configuring package\n${RESET}"
|
||||||
configure
|
configure
|
||||||
check $? "Configure"
|
check $? "Configure"
|
||||||
fi
|
fi
|
||||||
if [[ $(type -t build) = function ]]; then
|
if [[ $(type -t build) = function ]]; then
|
||||||
printf "$BBLUE**$BWHITE Building package\n$RESET"
|
printf "${BBLUE}**${BWHITE} Building package\n${RESET}"
|
||||||
build
|
build
|
||||||
check $? "Build"
|
check $? "Build"
|
||||||
else
|
else
|
||||||
echo "no build"
|
echo "no build"
|
||||||
fi
|
fi
|
||||||
if [[ $(type -t package) == function ]]; then
|
if [[ $(type -t package) == function ]]; then
|
||||||
printf "$BBLUE**$BWHITE Packaging package\n$RESET"
|
printf "${BBLUE}**${BWHITE} Packaging package\n${RESET}"
|
||||||
package
|
package
|
||||||
check $? "Package"
|
check $? "Package"
|
||||||
else
|
else
|
||||||
echo "no package"
|
echo "no package"
|
||||||
fi
|
fi
|
||||||
printf "$BBLUE**$BWHITE Stripping unneded symbols\n$RESET"
|
printf "${BBLUE}**${BWHITE} Stripping unneded symbols\n${RESET}"
|
||||||
STRIP=$(which strip)
|
STRIP=$(which strip)
|
||||||
if [ -n "$CROSS_COMPILE" ]; then
|
if [ -n "$CROSS_COMPILE" ]; then
|
||||||
STRIP=$CROSS_COMPILE-strip
|
STRIP=$CROSS_COMPILE-strip
|
||||||
@@ -494,7 +527,7 @@ buildpkg() {
|
|||||||
for execfile in $(find $pkgdir -executable -type f); do
|
for execfile in $(find $pkgdir -executable -type f); do
|
||||||
$STRIP $execfile
|
$STRIP $execfile
|
||||||
done
|
done
|
||||||
printf "$BBLUE**$BWHITE Strip unneded symbols [$BGREEN SUCCESS $BWHITE]\n$RESET"
|
printf "${BBLUE}**${BWHITE} Strip unneded symbols [${BGREEN} SUCCESS ${BWHITE}]\n${RESET}"
|
||||||
cd $pkgdir
|
cd $pkgdir
|
||||||
find -type f > $buildroot/list
|
find -type f > $buildroot/list
|
||||||
find -type l >> $buildroot/list
|
find -type l >> $buildroot/list
|
||||||
@@ -510,7 +543,7 @@ buildpkg() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
cd $pkgdir
|
cd $pkgdir
|
||||||
printf "$BBLUE**$BWHITE Archiving package\n$RESET"
|
printf "${BBLUE}**${BWHITE} Archiving package\n${RESET}"
|
||||||
tar -czf $buildroot/$pkgname-$pkgver-$pkgrel.pkg.gz .. &> /dev/null
|
tar -czf $buildroot/$pkgname-$pkgver-$pkgrel.pkg.gz .. &> /dev/null
|
||||||
check $? "Archive package"
|
check $? "Archive package"
|
||||||
cd $buildroot
|
cd $buildroot
|
||||||
@@ -528,7 +561,7 @@ upgrade() {
|
|||||||
if [ $(get_pkgrel $j) -gt $(get_pkgrel $i) ]; then
|
if [ $(get_pkgrel $j) -gt $(get_pkgrel $i) ]; then
|
||||||
printf "${BRED}old: $(printpkg $i)"
|
printf "${BRED}old: $(printpkg $i)"
|
||||||
printf "${BGREEN}new: $(printpkg $j)"
|
printf "${BGREEN}new: $(printpkg $j)"
|
||||||
printf "${BGREEN}from: $(printf $repo | sed 's/://g')\n$RESET"
|
printf "${BGREEN}from: $(printf $repo | sed 's/://g')\n${RESET}"
|
||||||
total_updates=$((total_updates+1))
|
total_updates=$((total_updates+1))
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
@@ -537,18 +570,19 @@ upgrade() {
|
|||||||
if [ $repover -gt $instver ]; then
|
if [ $repover -gt $instver ]; then
|
||||||
printf "${BRED}old: $(printpkg $i)"
|
printf "${BRED}old: $(printpkg $i)"
|
||||||
printf "${BGREEN}new: $(printpkg $j)"
|
printf "${BGREEN}new: $(printpkg $j)"
|
||||||
printf "${BGREEN}from: $(printf $repo | sed 's/://g')\n$RESET"
|
printf "${BGREEN}from: $(printf $repo | sed 's/://g')\n${RESET}"
|
||||||
total_updates=$((total_updates+1))
|
total_updates=$((total_updates+1))
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
printf "${YELLOW}Total updates: ${BWHITE}$total_updates\n$RESET"
|
printf "${YELLOW}Total updates: ${BWHITE}$total_updates\n${RESET}"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
up() {
|
up() {
|
||||||
upgrade
|
upgrade
|
||||||
}
|
}
|
||||||
|
#-----------------------------
|
||||||
|
|
||||||
# index packages in directory and create query file for create pm repository
|
# index packages in directory and create query file for create pm repository
|
||||||
index() {
|
index() {
|
||||||
@@ -559,6 +593,62 @@ i() {
|
|||||||
}
|
}
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# calculate cache size function
|
||||||
|
cachesize() {
|
||||||
|
printf "${YELLOW}Cache size: ${BWHITE}$(du -sh $cachedpkgdir | awk '{print $1}')\n${RESET}"
|
||||||
|
}
|
||||||
|
cs() {
|
||||||
|
cachesize
|
||||||
|
}
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
# print version function
|
||||||
|
version() {
|
||||||
|
printf "
|
||||||
|
${BWHITE}########## #### ####
|
||||||
|
${BWHITE}########## #### ####
|
||||||
|
${BWHITE}## ## ## ## ## ##
|
||||||
|
${BWHITE}## ## ## ## ## ##
|
||||||
|
${BWHITE}########## ## ## ## - ${BGREEN}PACKAGE MANAGER FOR SIMPLE LINUX
|
||||||
|
${BWHITE}########## ## ## ## - ${BGREEN}AUTHOR ${BWHITE}-- TOLA MIRONCENKO
|
||||||
|
${BWHITE}## ## ## - ${BGREEN}VERSION ${BWHITE}-- ${version}
|
||||||
|
${BWHITE}## ## ##
|
||||||
|
${BWHITE}## ## ##
|
||||||
|
${BWHITE}## ## ##
|
||||||
|
${RESET}"
|
||||||
|
}
|
||||||
|
v() {
|
||||||
|
version
|
||||||
|
}
|
||||||
|
#------------------------------
|
||||||
|
|
||||||
|
# install pm to some rootfs directory function
|
||||||
|
selfinstall() {
|
||||||
|
[ -z "$destdir" ] && destdir="rootfs"
|
||||||
|
printf "${BGREEN}Installing pm to ${BWHITE}$destdir ${BGREEN}directory\n${RESET}"
|
||||||
|
printf "${YELLOW}Creating directories... ${RESET}"
|
||||||
|
[ ! -d $destdir ] && mkdir -p $destdir
|
||||||
|
[ ! -d $destdir/etc/pm ] && mkdir -p $destdir/etc/pm
|
||||||
|
[ ! -d $destdir/tmp ] && mkdir -p $destdir/tmp
|
||||||
|
[ ! -d $destdir/usr/bin ] && mkdir -p $destdir/usr/bin
|
||||||
|
[ ! -d $destdir/usr/share/pm ] && mkdir -p $destdir/usr/share/pm
|
||||||
|
[ ! -d $destdir/usr/share/pm/packages ] && mkdir -p $destdir/usr/share/pm/packages
|
||||||
|
[ ! -d $destdir/usr/share/pm/repos ] && mkdir -p $destdir/usr/share/pm/repos
|
||||||
|
[ ! -d $destdir/var/cache/pm/pkg ] && mkdir -p $destdir/var/cache/pm/pkg
|
||||||
|
printf "${BWHITE}[ ${BGREEN}OK ${BWHITE}]${RESET}\n"
|
||||||
|
printf "${YELLOW}Creating files... ${RESET}"
|
||||||
|
[ ! -f $destdir/etc/pm/repo ] && touch $destdir/etc/pm/repo
|
||||||
|
[ ! -f $destdir/usr/share/pm/query ] && touch $destdir/usr/share/pm/query
|
||||||
|
[ ! -f $destdir/usr/bin/pm ] && cp $rootdir/usr/bin/pm $destdir/usr/bin/pm
|
||||||
|
printf "${BWHITE}[ ${BGREEN}OK ${BWHITE}]${RESET}\n"
|
||||||
|
printf "${BGREEN}Installation completed successfully.${RESET}\n"
|
||||||
|
}
|
||||||
|
si() {
|
||||||
|
selfinstall
|
||||||
|
}
|
||||||
|
#--------------------------------------------
|
||||||
|
|
||||||
|
# parse command function
|
||||||
parse_command() {
|
parse_command() {
|
||||||
while [ $1 ]; do
|
while [ $1 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@@ -574,21 +664,26 @@ parse_command() {
|
|||||||
packages=$@
|
packages=$@
|
||||||
break;
|
break;
|
||||||
;;
|
;;
|
||||||
unpack|u|up|upgrade|i|index)
|
unpack|u|up|upgrade|i|index|v|version)
|
||||||
command=$1
|
command=$1
|
||||||
shift
|
shift
|
||||||
archives=$@
|
archives=$@
|
||||||
break;
|
break;
|
||||||
;;
|
;;
|
||||||
query|q|search|ss|list|l|deps)
|
query|q|search|ss|list|l|deps|cachesize|cs)
|
||||||
command=$1
|
command=$1
|
||||||
shift
|
shift
|
||||||
packages=$@
|
packages=$@
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
selfinstall|si)
|
||||||
|
command=$1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
build)
|
build)
|
||||||
checknonroot
|
checknonroot
|
||||||
buildpkg $@
|
buildpkg $@
|
||||||
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
shift
|
shift
|
||||||
@@ -596,6 +691,9 @@ parse_command() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
#---------------------------
|
||||||
|
|
||||||
|
# parse options function
|
||||||
parse_opts() {
|
parse_opts() {
|
||||||
while [ $1 ]; do
|
while [ $1 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@@ -607,8 +705,79 @@ parse_opts() {
|
|||||||
rootdir=$2
|
rootdir=$2
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
-q|--query)
|
||||||
|
command=query
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-S|--sync)
|
||||||
|
command=sync
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-C|--cache)
|
||||||
|
command=cachesize
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-c|--clear)
|
||||||
|
command=clear
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-i|--index)
|
||||||
|
command=index
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-D|--deps)
|
||||||
|
command=deps
|
||||||
|
shift
|
||||||
|
packages=$@
|
||||||
|
;;
|
||||||
|
-L|--list)
|
||||||
|
command=list
|
||||||
|
shift
|
||||||
|
packages=$@
|
||||||
|
;;
|
||||||
|
-a|--add)
|
||||||
|
command=add
|
||||||
|
shift
|
||||||
|
packages=$@
|
||||||
|
;;
|
||||||
|
-u|--unpack)
|
||||||
|
command=unpack
|
||||||
|
shift
|
||||||
|
archives=$@
|
||||||
|
;;
|
||||||
|
--download)
|
||||||
|
command=download
|
||||||
|
shift
|
||||||
|
packages=$@
|
||||||
|
;;
|
||||||
|
-d|--delete|--del)
|
||||||
|
command=del
|
||||||
|
shift
|
||||||
|
packages=$@
|
||||||
|
;;
|
||||||
|
-U|--upgrade)
|
||||||
|
command=upgrade
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-s|--search|--ss)
|
||||||
|
command=search
|
||||||
|
shift
|
||||||
|
packages=$@
|
||||||
|
;;
|
||||||
|
-v|--version)
|
||||||
|
command=version
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--si|--selfinstall)
|
||||||
|
command=selfinstall
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--dest)
|
||||||
|
destdir=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
if [ "${1#--}" != "$1" ]; then
|
if [ "${1#--}" != "$1" ] || [ "${1#-}" != "$1" ]; then
|
||||||
echo "Invalid option: $1" >&2
|
echo "Invalid option: $1" >&2
|
||||||
help
|
help
|
||||||
exit 1
|
exit 1
|
||||||
@@ -618,6 +787,7 @@ parse_opts() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
#---------------------------
|
||||||
|
|
||||||
#--- main ---
|
#--- main ---
|
||||||
main() {
|
main() {
|
||||||
|
|||||||
Reference in new issue
Block a user