mirror of
https://github.com/outbackdingo/scratchpkg.git
synced 2026-02-05 08:28:00 +00:00
updated
This commit is contained in:
184
buildpkg
184
buildpkg
@@ -4,52 +4,80 @@ export LC_ALL=C
|
||||
|
||||
. /usr/share/scratchpkg/functions || exit 1
|
||||
|
||||
source_check() {
|
||||
|
||||
url_stat=0
|
||||
|
||||
for sources in ${source[@]}; do
|
||||
if [ $(echo $sources | grep -E "(ftp|http|https)://") ]; then
|
||||
if [ $(echo $sources | grep -E "::(ftp|http|https)://") ]; then
|
||||
uri=$(echo "$sources" | awk -F '::' '{print $2}')
|
||||
else
|
||||
uri="$sources"
|
||||
fi
|
||||
fi
|
||||
echo -ne "Checking $uri ... "
|
||||
wget --spider -q "$uri"
|
||||
if [ $? = 0 ]; then
|
||||
echo -e ${GREEN}OK${CRESET}
|
||||
else
|
||||
url_stat=$?
|
||||
echo -e ${RED}FAILED${CRESET}
|
||||
fi
|
||||
done
|
||||
|
||||
return ${url_stat}
|
||||
|
||||
}
|
||||
|
||||
updatemdsum() {
|
||||
|
||||
if [ ! -z $source ]; then
|
||||
for um in $(seq 0 $((${#source[@]} - 1))); do
|
||||
if [ $(echo ${source[$um]} | grep -E "(ftp|http|https)://") ]; then
|
||||
if [ $(echo ${source[$um]} | grep -E "::(ftp|http|https)://") ]; then
|
||||
sourcename="$SOURCE_DIR/$(echo ${source[$um]} | awk -F '::' '{print $1}')"
|
||||
else
|
||||
sourcename="$SOURCE_DIR/$(echo ${source[$um]} | rev | cut -d / -f 1 | rev)"
|
||||
fi
|
||||
else
|
||||
sourcename="${source[$um]}"
|
||||
fi
|
||||
needupdatechecksum="$needupdatechecksum $sourcename"
|
||||
done
|
||||
|
||||
for file in ${needupdatechecksum[@]}; do
|
||||
if [ ! -f $file ]; then
|
||||
missingsource+=($file)
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${#missingsource[@]}" -gt 0 ]; then
|
||||
msg "Missing source:"
|
||||
for ms in ${missingsource[@]}; do
|
||||
msg2 "$ms"
|
||||
done
|
||||
exitscript1
|
||||
fi
|
||||
|
||||
md5sum $needupdatechecksum | awk '{ print $1 }' > .md5sum
|
||||
[ -f .md5sum ] && msg "md5sum updated."
|
||||
else
|
||||
echo "" > .md5sum
|
||||
if [ -z $source ]; then
|
||||
msgwarn "source=() is empty, no need md5sum."
|
||||
return 0
|
||||
fi
|
||||
|
||||
for um in $(seq 0 $((${#source[@]} - 1))); do
|
||||
if [ $(echo ${source[$um]} | grep -E "(ftp|http|https)://") ]; then
|
||||
if [ $(echo ${source[$um]} | grep -E "::(ftp|http|https)://") ]; then
|
||||
sourcename="$SOURCE_DIR/$(echo ${source[$um]} | awk -F '::' '{print $1}')"
|
||||
else
|
||||
sourcename="$SOURCE_DIR/$(echo ${source[$um]} | rev | cut -d / -f 1 | rev)"
|
||||
fi
|
||||
else
|
||||
sourcename="${source[$um]}"
|
||||
fi
|
||||
needupdatechecksum="$needupdatechecksum $sourcename"
|
||||
done
|
||||
|
||||
for file in ${needupdatechecksum[@]}; do
|
||||
if [ ! -f $file ]; then
|
||||
missingsource+=($file)
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${#missingsource[@]}" -gt 0 ]; then
|
||||
msg "Missing source:"
|
||||
for ms in ${missingsource[@]}; do
|
||||
msg2 "$ms"
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo -e "md5sum=($(md5sum $needupdatechecksum | awk '{ print $1 }'))"
|
||||
|
||||
}
|
||||
|
||||
checkmdsum() {
|
||||
|
||||
for i in $(cat .md5sum); do
|
||||
mdsums+=($i)
|
||||
done
|
||||
if [ -z $md5sum ]; then
|
||||
msgwarn "md5sum is empty, please provide it."
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "${#source[@]}" != "${#mdsums[@]}" ]; then
|
||||
if [ "${#source[@]}" != "${#md5sum[@]}" ]; then
|
||||
msgerr "Total source and md5sums different."
|
||||
exitscript1
|
||||
return 1
|
||||
fi
|
||||
|
||||
for s in $(seq 0 $((${#source[@]} - 1))); do
|
||||
@@ -63,7 +91,7 @@ checkmdsum() {
|
||||
sourcename="${source[$s]}"
|
||||
fi
|
||||
sum=$(md5sum "$sourcename" | awk '{ print $1 }')
|
||||
if [ "$sum" != "${mdsums[$s]}" ] && [ "SKIP" != "${mdsums[$s]}" ]; then
|
||||
if [ "$sum" != "${md5sum[$s]}" ] && [ "SKIP" != "${md5sum[$s]}" ]; then
|
||||
errormdsum+=($sourcename)
|
||||
fi
|
||||
done
|
||||
@@ -73,7 +101,7 @@ checkmdsum() {
|
||||
for mismatch in ${errormdsum[@]}; do
|
||||
msg2 "$mismatch"
|
||||
done
|
||||
exitscript1
|
||||
return 1
|
||||
fi
|
||||
|
||||
}
|
||||
@@ -107,14 +135,14 @@ downloadsource(){
|
||||
fi
|
||||
fi
|
||||
if [ -f $SOURCE_DIR/$tarballname ]; then
|
||||
msg "Source file ${color_green}$tarballname${color_reset} found."
|
||||
msg "Source file ${GREEN}$tarballname${CRESET} found."
|
||||
else
|
||||
checktool wget
|
||||
if [ -f $SOURCE_DIR/$tarballname.partial ]; then
|
||||
msg "Resuming ${color_green}$1${color_reset}."
|
||||
msg "Resuming ${GREEN}$1${CRESET}."
|
||||
$WGETRESUME $tarballurl && mv $SOURCE_DIR/$tarballname.partial $SOURCE_DIR/$tarballname || exitscript1
|
||||
else
|
||||
msg "Downloading ${color_green}$1${color_reset}."
|
||||
msg "Downloading ${GREEN}$1${CRESET}."
|
||||
$WGETCMD $tarballurl && mv $SOURCE_DIR/$tarballname.partial $SOURCE_DIR/$tarballname || exitscript1
|
||||
fi
|
||||
fi
|
||||
@@ -143,7 +171,7 @@ preparesource() {
|
||||
for i in ${noextract[@]}; do
|
||||
if [ "$i" = "$tarballname" ]; then
|
||||
NO_EXTRACT=yes
|
||||
msg "Preparing ${color_green}$tarballname${color_reset}..." && cp $SOURCE_DIR/$tarballname $SRC || ERROR_PREPARE_SOURCE+=($tarballname)
|
||||
msg "Preparing ${GREEN}$tarballname${CRESET}..." && cp $SOURCE_DIR/$tarballname $SRC || ERROR_PREPARE_SOURCE+=($tarballname)
|
||||
break
|
||||
fi
|
||||
done
|
||||
@@ -157,17 +185,17 @@ preparesource() {
|
||||
MODE="Preparing" ;;
|
||||
esac
|
||||
|
||||
msg2 "$MODE ${color_green}$tarballname${color_reset}..."
|
||||
msg2 "$MODE ${GREEN}$tarballname${CRESET}..."
|
||||
$COMMAND
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
msgerr "$MODE ${color_red}$tarballname${color_reset} failed."
|
||||
msgerr "$MODE ${RED}$tarballname${CRESET} failed."
|
||||
clearworkdir
|
||||
exitscript1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
msg2 "Preparing ${color_green}$sources${color_reset}..." && cp $sources $SRC || ERROR_PREPARE_SOURCE+=($sources)
|
||||
msg2 "Preparing ${GREEN}$sources${CRESET}..." && cp $sources $SRC || ERROR_PREPARE_SOURCE+=($sources)
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@@ -195,18 +223,18 @@ loadspkgbuild() {
|
||||
|
||||
buildpackage() {
|
||||
|
||||
msg "Start build ${color_green}$name-$version-$release${color_reset}."
|
||||
msg "Start build ${GREEN}$name-$version-$release${CRESET}."
|
||||
|
||||
pushd $SRC
|
||||
|
||||
(exec &> >(tee -i $LOG_DIR/$name.log); echo "$name-$version"; echo $(date); set -e -x; build)
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
msgerr "Build ${color_red}$PKGNAME${color_reset} failed."
|
||||
msgerr "Build ${RED}$PKGNAME${CRESET} failed."
|
||||
clearworkdir
|
||||
exitscript1
|
||||
else
|
||||
msg "Successfully build ${color_green}$name-$version-$release${color_reset}."
|
||||
msg "Successfully build ${GREEN}$name-$version-$release${CRESET}."
|
||||
fi
|
||||
|
||||
popd
|
||||
@@ -262,7 +290,7 @@ packaging() {
|
||||
[ -n "$makedepends" ] && for md in ${makedepends[@]}; do echo "makedepends = $md" >> .pkginfo; done
|
||||
[ -n "$noextract" ] && echo "noextract = $noextract" >> .pkginfo
|
||||
|
||||
msg "Packaging ${color_green}$name-$version-$release${color_reset}..."
|
||||
msg "Packaging ${GREEN}$name-$version-$release${CRESET}..."
|
||||
|
||||
for file in .pkginstall .pkgreadme; do
|
||||
if [ -f $file ]; then
|
||||
@@ -272,7 +300,7 @@ packaging() {
|
||||
tar -c -J -p -f $PACKAGE_DIR/$PKGNAME * .pkginfo "${addtotar[@]}"
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
msgerr "Packaging ${color_red}$PKGNAME${color_reset} failed."
|
||||
msgerr "Packaging ${RED}$PKGNAME${CRESET} failed."
|
||||
if [ -f $PACKAGE_DIR/$PKGNAME ]; then
|
||||
rm $PACKAGE_DIR/$PKGNAME
|
||||
fi
|
||||
@@ -280,12 +308,12 @@ packaging() {
|
||||
else
|
||||
pkgsize="$(ls -lh $PACKAGE_DIR/$PKGNAME | awk '{print $5}')"
|
||||
$EXTPROG -t -v -f $PACKAGE_DIR/$PKGNAME
|
||||
msg "Successfully create package ${color_green}$PKGNAME${color_reset}. (${pkgsize})"
|
||||
msg "Successfully create package ${GREEN}$PKGNAME${CRESET}. (${pkgsize})"
|
||||
fi
|
||||
|
||||
case $PREINSTALL_STATUS in
|
||||
OK) msg "preinstall : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "preinstall : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "preinstall : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "preinstall : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
popd
|
||||
@@ -300,11 +328,7 @@ buildpkg() {
|
||||
getsource
|
||||
|
||||
if [ ! "$IGNORE_MDSUM" ]; then
|
||||
if [ -f .md5sum ]; then
|
||||
checkmdsum
|
||||
else
|
||||
updatemdsum
|
||||
fi
|
||||
checkmdsum || exitscript1
|
||||
fi
|
||||
preparesource
|
||||
|
||||
@@ -368,7 +392,7 @@ checkdeps() {
|
||||
msg2 "$msd"
|
||||
done
|
||||
for msmkd in ${MSMKDEP[@]}; do
|
||||
msg2 "$msmkd ${color_cyan}(make)${color_reset}"
|
||||
msg2 "$msmkd ${CYAN}(make)${CRESET}"
|
||||
done
|
||||
exitscript1
|
||||
fi
|
||||
@@ -464,7 +488,7 @@ clearworkdir() {
|
||||
|
||||
interrupted() {
|
||||
#echo ""
|
||||
#msg "${color_yellow}Interrupted!${color_reset}"
|
||||
#msg "${YELLOW}Interrupted!${CRESET}"
|
||||
clearworkdir
|
||||
exitscript1
|
||||
}
|
||||
@@ -492,11 +516,12 @@ Options:
|
||||
-fr, --force-rebuild rebuild package
|
||||
-im, --ignore-mdsum skip md5sum checking
|
||||
-um, --update-mdsum update md5sum
|
||||
-cm, --check-mdsum check md5sum for source file
|
||||
-cm, --check-mdsum calculate and print md5sum for source file
|
||||
-do, --download-only download only source file
|
||||
-eo, --extract-only extract only source file
|
||||
-kw, --keep-work keep working directory
|
||||
-rd, --redownload re-download source file
|
||||
-cs, --check-source check dead url for sources
|
||||
-sd, --source-dir <path> override directory path for sources
|
||||
-pd, --package-dir <path> override directory path for compiled package
|
||||
-h, --help show this help message
|
||||
@@ -536,6 +561,7 @@ parse_options() {
|
||||
-eo | --extract-only) EXTRACT_ONLY=yes ;;
|
||||
-kw | --keep-work) KEEP_WORK=yes ;;
|
||||
-rd | --redownload) REDOWNLOAD_SOURCE=yes ;;
|
||||
-cs | --check-source) SOURCE_CHECK=yes ;;
|
||||
-h | --help) SHOWHELP=yes ;;
|
||||
-sd | --source-dir) testinput "$2" && SOURCE_DIR="$2" || exit 1; shift ;;
|
||||
-pd | --package-dir) testinput "$2" && PACKAGE_DIR="$2" || exit 1; shift ;;
|
||||
@@ -561,18 +587,25 @@ main() {
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#check_directory
|
||||
# source spkgbuild
|
||||
loadspkgbuild
|
||||
|
||||
# show help page
|
||||
if [ "$SOURCE_CHECK" ]; then
|
||||
source_check || exit $?
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# check required directory
|
||||
checkdirexist "$WORK_DIR" "$SOURCE_DIR" "$PACKAGE_DIR" "$LOG_DIR"
|
||||
checkdirwrite "$WORK_DIR" "$SOURCE_DIR" "$PACKAGE_DIR" "$LOG_DIR"
|
||||
checkdirread "$WORK_DIR" "$SOURCE_DIR" "$PACKAGE_DIR" "$LOG_DIR"
|
||||
|
||||
loadspkgbuild
|
||||
checkdirread "$WORK_DIR" "$SOURCE_DIR" "$PACKAGE_DIR" "$LOG_DIR"
|
||||
|
||||
if [ "$INSTALL_PKG" ] || [ "$UPGRADE_PKG" ] || [ "$REINSTALL_PKG" ]; then
|
||||
NO_ORPHAN_CHECK=yes
|
||||
fi
|
||||
|
||||
### CHECK SPKGBUILD ###
|
||||
# check the required field in spkgbuild
|
||||
if [ -z "$name" ]; then
|
||||
msgerr "'name' is empty!"
|
||||
exit 1
|
||||
@@ -592,37 +625,36 @@ main() {
|
||||
|
||||
PKGNAME="$name-$version-$release.spkg.txz"
|
||||
|
||||
### UPDATE CHECKSUM ###
|
||||
# calculate & print md5sum
|
||||
if [ "$UPDATE_MDSUM" ]; then
|
||||
getsource
|
||||
updatemdsum
|
||||
exit 0
|
||||
fi
|
||||
|
||||
### CHECK FOR LOCK FILE ###
|
||||
# check for lock file
|
||||
if [ -f /tmp/spkg.$name.lock ]; then
|
||||
msgerr "Cant build same package simultaneously."
|
||||
msgerr "remove ${color_yellow}/tmp/spkg.$name.lock${color_reset} if no build process for ${color_yellow}$name.${color_reset}"
|
||||
msgerr "remove ${YELLOW}/tmp/spkg.$name.lock${CRESET} if no build process for ${YELLOW}$name.${CRESET}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### DOWNLOAD ONLY ###
|
||||
# download source only
|
||||
if [ "$DOWNLOAD_ONLY" ]; then
|
||||
getsource
|
||||
exit 0
|
||||
fi
|
||||
|
||||
### EXTRACT ONLY ###
|
||||
# extract source only
|
||||
if [ "$EXTRACT_ONLY" ]; then
|
||||
getsource
|
||||
preparesource
|
||||
exit 0
|
||||
fi
|
||||
|
||||
### BUILD ###
|
||||
# build package
|
||||
if [ -f $PACKAGE_DIR/$PKGNAME ] && [ ! "$FORCE_REBUILD" ]; then # if package txz exist and not force rebuild
|
||||
if [ ! "$INSTALL_PKG" ] && [ ! "$REINSTALL_PKG" ] && [ ! "$UPGRADE_PKG" ]; then
|
||||
msg "${color_green}$PKGNAME${color_reset} is up-to-date."
|
||||
msg "${GREEN}$PKGNAME${CRESET} is up-to-date."
|
||||
exitscript0
|
||||
fi
|
||||
else
|
||||
@@ -640,7 +672,7 @@ main() {
|
||||
fi
|
||||
fi
|
||||
|
||||
### INSTALL PACKAGE ###
|
||||
# install package
|
||||
if [ "$INSTALL_PKG" ] || [ "$REINSTALL_PKG" ] || [ "$UPGRADE_PKG" ]; then
|
||||
installpkg $PACKAGE_DIR/$PKGNAME ${OPTS[@]} || exitscript1
|
||||
fi
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
### SET COLOUR CODE ###
|
||||
color_red='\e[0;31m' #Red
|
||||
color_green='\e[0;32m' #Green
|
||||
color_yellow='\e[0;33m' #Yellow
|
||||
color_blue='\e[0;34m' #Blue
|
||||
color_purple='\e[0;35m' #Purple
|
||||
color_cyan='\e[0;36m' #Cyan
|
||||
color_gray='\e[0;37m' #Gray
|
||||
color_bred='\e[1;31m' #Bold red
|
||||
color_bgreen='\e[1;32m' #Bold green
|
||||
color_byellow='\e[1;33m' #Bold yellow
|
||||
color_bblue='\e[1;34m' #Bold blue
|
||||
color_bpurple='\e[1;35m' #Bold purple
|
||||
color_bcyan='\e[1;36m' #Bold cyan
|
||||
color_bgray='\e[1;37m' #Bold gray
|
||||
color_reset='\e[0m' #Reset color
|
||||
RED='\e[0;31m' #Red
|
||||
GREEN='\e[0;32m' #Green
|
||||
YELLOW='\e[0;33m' #Yellow
|
||||
BLUE='\e[0;34m' #Blue
|
||||
PURPLE='\e[0;35m' #Purple
|
||||
CYAN='\e[0;36m' #Cyan
|
||||
GRAY='\e[0;37m' #Gray
|
||||
BRED='\e[1;31m' #Bold red
|
||||
BGREEN='\e[1;32m' #Bold green
|
||||
BYELLOW='\e[1;33m' #Bold yellow
|
||||
BBLUE='\e[1;34m' #Bold blue
|
||||
BPURPLE='\e[1;35m' #Bold purple
|
||||
BCYAN='\e[1;36m' #Bold cyan
|
||||
BGRAY='\e[1;37m' #Bold gray
|
||||
CRESET='\e[0m' #Reset color
|
||||
|
||||
nocolor() {
|
||||
|
||||
color_red=''
|
||||
color_green=''
|
||||
color_yellow=''
|
||||
color_blue=''
|
||||
color_purple=''
|
||||
color_cyan=''
|
||||
color_gray=''
|
||||
color_bred=''
|
||||
color_bgreen=''
|
||||
color_byellow=''
|
||||
color_bblue=''
|
||||
color_bpurple=''
|
||||
color_bcyan=''
|
||||
color_bgray=''
|
||||
color_reset=''
|
||||
RED=''
|
||||
GREEN=''
|
||||
YELLOW=''
|
||||
BLUE=''
|
||||
PURPLE=''
|
||||
CYAN=''
|
||||
GRAY=''
|
||||
BRED=''
|
||||
BGREEN=''
|
||||
BYELLOW=''
|
||||
BBLUE=''
|
||||
BPURPLE=''
|
||||
BCYAN=''
|
||||
BGRAY=''
|
||||
CRESET=''
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ source "$FUNCTIONS/options"
|
||||
source "$FUNCTIONS/color"
|
||||
source "$FUNCTIONS/message"
|
||||
|
||||
### SET SOME VALUE ###
|
||||
# defaults value
|
||||
CONF_FILE="/etc/scratchpkg.conf"
|
||||
BUILD_SCRIPT="spkgbuild"
|
||||
|
||||
@@ -32,15 +32,18 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### SET BSDTAR FOR EXTRACT PROGRAM IF LIBARCHIVE IS INSTALLED ###
|
||||
if [ "$(type -pa bsdtar)" ]; then
|
||||
EXTPROG=bsdtar
|
||||
# check for extract tool
|
||||
if [ "$(type -p bsdtar)" ]; then
|
||||
EXTPROG=$(type -p bsdtar)
|
||||
elif [ "$(type -p tar)" ]; then
|
||||
EXTPROG=$(type -p tar)
|
||||
else
|
||||
EXTPROG=tar
|
||||
msgerr "libarchive or tar is needed. Aborted"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
### FUNCTIONS LOAD BY SCRATCHPKG ###
|
||||
# functions load by scratchpkg
|
||||
pushd() {
|
||||
command pushd "$@" >/dev/null
|
||||
}
|
||||
@@ -83,13 +86,14 @@ needroot() {
|
||||
|
||||
checktool() {
|
||||
|
||||
if ! type -pa $1 &>/dev/null; then
|
||||
if ! type -p $1 &>/dev/null; then
|
||||
msgerr "$1 not exist in your system!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# function to print all installed packages
|
||||
allinstalled() {
|
||||
|
||||
ls ${INDEX_DIR}/*/.pkginfo | rev | cut -d '/' -f2 | rev 2>/dev/null
|
||||
@@ -98,13 +102,13 @@ allinstalled() {
|
||||
|
||||
getpkginfo() {
|
||||
|
||||
description=$(cat $BUILD_SCRIPT | grep ^'# description' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
backup=$(cat $BUILD_SCRIPT | grep ^'# backup' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
conflict=$(cat $BUILD_SCRIPT | grep ^'# conflict' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
depends=$(cat $BUILD_SCRIPT | grep ^'# depends' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
makedepends=$(cat $BUILD_SCRIPT | grep ^'# makedepends' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
noextract=$(cat $BUILD_SCRIPT | grep ^'# noextract' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
options=$(cat $BUILD_SCRIPT | grep ^'# options' | sed 's/\://' | cut -d ' ' -f 3-)
|
||||
description=$(grep "^# description[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# description[[:blank:]]*:[[:blank:]]*//')
|
||||
backup=$(grep "^# backup[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# backup[[:blank:]]*:[[:blank:]]*//')
|
||||
conflict=$(grep "^# conflict[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# conflict[[:blank:]]*:[[:blank:]]*//')
|
||||
depends=$(grep "^# depends[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# depends[[:blank:]]*:[[:blank:]]*//')
|
||||
makedepends=$(grep "^# makedepends[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# makedepends[[:blank:]]*:[[:blank:]]*//')
|
||||
noextract=$(grep "^# noextract[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# noextract[[:blank:]]*:[[:blank:]]*//')
|
||||
options=$(grep "^# options[[:blank:]]*:" $BUILD_SCRIPT | sed 's/^# options[[:blank:]]*:[[:blank:]]*//')
|
||||
|
||||
. $BUILD_SCRIPT
|
||||
|
||||
@@ -150,7 +154,6 @@ installed_pkg_info() {
|
||||
|
||||
getinfopkg() {
|
||||
|
||||
#echo $(tar xf $2 .pkginfo -O | grep ^$1 | cut -d " " -f3)
|
||||
cat /tmp/spkg.$2.pkginfo | grep ^$1 | cut -d " " -f3
|
||||
|
||||
}
|
||||
@@ -170,7 +173,7 @@ vercomp() {
|
||||
createtemplate() {
|
||||
|
||||
if [ -d $1 ]; then
|
||||
msg "Error directory ${color_red}$1${color_reset} already exist"
|
||||
msg "Error directory ${RED}$1${CRESET} already exist"
|
||||
exit 1
|
||||
else
|
||||
mkdir $1
|
||||
@@ -186,6 +189,7 @@ version=
|
||||
release=1
|
||||
options=()
|
||||
source=()
|
||||
md5sum=()
|
||||
|
||||
build() {
|
||||
cd \$name-\$version
|
||||
@@ -193,7 +197,7 @@ build() {
|
||||
make
|
||||
make DESTDIR=\$PKG install
|
||||
}" > $1/$BUILD_SCRIPT
|
||||
msg "Template port have created for ${color_green}$1${color_reset}."
|
||||
msg "Template port have created for ${GREEN}$1${CRESET}."
|
||||
fi
|
||||
|
||||
}
|
||||
@@ -202,7 +206,7 @@ checkdirexist() {
|
||||
|
||||
for dir in "$@"; do
|
||||
if [ ! -d $dir ]; then
|
||||
msgwarn "Directory ${color_yellow}$dir${color_reset} not exist."
|
||||
msgwarn "Directory ${YELLOW}$dir${CRESET} not exist."
|
||||
DIR_ERROR=yes
|
||||
fi
|
||||
done
|
||||
@@ -215,7 +219,7 @@ checkdirwrite() {
|
||||
|
||||
for dir in "$@"; do
|
||||
if [ ! -w $dir ]; then
|
||||
msgwarn "Directory ${color_yellow}$dir${color_reset} not writable."
|
||||
msgwarn "Directory ${YELLOW}$dir${CRESET} not writable."
|
||||
DIR_ERROR=yes
|
||||
fi
|
||||
done
|
||||
@@ -228,7 +232,7 @@ checkdirread() {
|
||||
|
||||
for dir in "$@"; do
|
||||
if [ ! -x $dir ] || [ ! -r $1 ]; then
|
||||
msgwarn "Directory ${color_yellow}$dir${color_reset} not readable."
|
||||
msgwarn "Directory ${YELLOW}$dir${CRESET} not readable."
|
||||
DIR_ERROR=yes
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
msg() {
|
||||
echo -e "${color_green}==>${color_reset} $1"
|
||||
echo -e "${GREEN}==>${CRESET} $1"
|
||||
}
|
||||
|
||||
msginfo() {
|
||||
echo -e "${color_cyan}==> INFO:${color_reset} $1"
|
||||
echo -e "${CYAN}==> INFO:${CRESET} $1"
|
||||
}
|
||||
|
||||
msgerr() {
|
||||
echo -e "${color_red}==> ERROR:${color_reset} $1"
|
||||
echo -e "${RED}==> ERROR:${CRESET} $1"
|
||||
}
|
||||
|
||||
msgwarn() {
|
||||
echo -e "${color_yellow}==> WARNING:${color_reset} $1"
|
||||
echo -e "${YELLOW}==> WARNING:${CRESET} $1"
|
||||
}
|
||||
|
||||
msg2() {
|
||||
echo -e "${color_blue} ->${color_reset} $1"
|
||||
echo -e "${BLUE} ->${CRESET} $1"
|
||||
}
|
||||
|
||||
msg3() {
|
||||
|
||||
84
installpkg
84
installpkg
@@ -21,7 +21,7 @@ installpkg() {
|
||||
checkdeps
|
||||
fi
|
||||
|
||||
msg "Installing ${color_green}$name-$version-$release${color_reset}..."
|
||||
msg "Installing ${GREEN}$name-$version-$release${CRESET}..."
|
||||
|
||||
# noextract file into system
|
||||
for noextr in ${NO_EXTRACT[@]}; do
|
||||
@@ -65,21 +65,15 @@ installpkg() {
|
||||
fi
|
||||
|
||||
#installing package into system
|
||||
if [[ $(tar -tf "$PKGNAME") ]]; then
|
||||
msg2 "Extracting package..."
|
||||
if [ "$VERBOSE_INSTALL" ]; then
|
||||
tar --keep-directory-symlink --no-overwrite-dir -p -x -v -f $PKGNAME -C $ROOT_DIR --exclude=.pkginfo --exclude=.pkginstall --exclude=.pkgreadme ${excludefile[@]}
|
||||
else
|
||||
tar --keep-directory-symlink --no-overwrite-dir -p -x -f $PKGNAME -C $ROOT_DIR --exclude=.pkginfo --exclude=.pkginstall --exclude=.pkgreadme ${excludefile[@]}
|
||||
fi
|
||||
msg2 "Extracting package..."
|
||||
if [ "$VERBOSE_INSTALL" ]; then
|
||||
tar --keep-directory-symlink --no-overwrite-dir -p -x -v -f $PKGNAME -C $ROOT_DIR --exclude=.pkginfo --exclude=.pkginstall --exclude=.pkgreadme ${excludefile[@]}
|
||||
else
|
||||
msgerr "Package is corrupted. Aborted!"
|
||||
spkglock
|
||||
exit 1
|
||||
tar --keep-directory-symlink --no-overwrite-dir -p -x -f $PKGNAME -C $ROOT_DIR --exclude=.pkginfo --exclude=.pkginstall --exclude=.pkgreadme ${excludefile[@]}
|
||||
fi
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
msgerr "Failed install ${color_red}$name-$version-$release${color_reset}."
|
||||
msgerr "Failed install ${RED}$name-$version-$release${CRESET}."
|
||||
while IFS=' ' read -r line; do
|
||||
pushd $ROOT_DIR
|
||||
rm_silent "$line" || rmdir_silent --ignore-fail-on-non-empty "$line"
|
||||
@@ -106,29 +100,29 @@ installpkg() {
|
||||
restoreconf
|
||||
|
||||
case $PREINSTALL_STATUS in
|
||||
OK) msg "preinstall : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "preinstall : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "preinstall : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "preinstall : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
case $PREUPGRADE_STATUS in
|
||||
OK) msg "preupgrade : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "preupgrade : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "preupgrade : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "preupgrade : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
case $POSTINSTALL_STATUS in
|
||||
OK) msg "postinstall : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "postinstall : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "postinstall : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "postinstall : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
case $POSTUPGRADE_STATUS in
|
||||
OK) msg "postupgrade : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "postupgrade : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "postupgrade : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "postupgrade : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
runhooks
|
||||
|
||||
if [ -f $INDEX_DIR/$name/.pkgreadme ]; then
|
||||
msg "This package has ${color_green}readme${color_reset}"
|
||||
msg "This package has ${GREEN}readme${CRESET}"
|
||||
fi
|
||||
|
||||
# remove lock file
|
||||
@@ -176,7 +170,7 @@ registerpkg() {
|
||||
tar -t -f $PKGNAME --exclude=.pkginfo --exclude=.pkginstall --exclude=.pkgreadme ${excludefile[@]} > $INDEX_DIR/$name/.files
|
||||
tar -x -f $PKGNAME -C $INDEX_DIR/$name .pkginstall .pkgreadme >/dev/null 2>&1
|
||||
|
||||
msg "Successfully install ${color_green}$name-$version-$release${color_reset}."
|
||||
msg "Successfully install ${GREEN}$name-$version-$release${CRESET}."
|
||||
|
||||
}
|
||||
|
||||
@@ -206,7 +200,7 @@ checkpkgconflict() {
|
||||
|
||||
for pkg in ${conflict[@]}; do
|
||||
if [ -d $INDEX_DIR/$pkg ]; then
|
||||
msg "Conflict package!: ${color_yellow}$pkg${color_reset}"
|
||||
msg "Conflict package!: ${YELLOW}$pkg${CRESET}"
|
||||
PKG_CONFLICT=yes
|
||||
fi
|
||||
done
|
||||
@@ -259,38 +253,12 @@ upcheckconflict() {
|
||||
|
||||
}
|
||||
|
||||
# get information from compressed package
|
||||
#getname() {
|
||||
|
||||
#name=$(tar xf $PKGNAME .pkginfo -O | grep ^name | cut -d " " -f3)
|
||||
#version=$(tar xf $PKGNAME .pkginfo -O | grep ^version | cut -d " " -f3)
|
||||
#release=$(tar xf $PKGNAME .pkginfo -O | grep ^release | cut -d " " -f3)
|
||||
#depends=$(tar xf $PKGNAME .pkginfo -O | grep ^depends | cut -d " " -f3-)
|
||||
#makedepends=$(tar xf $PKGNAME .pkginfo -O | grep ^makedepends | cut -d " " -f3-)
|
||||
#conflict=$(tar xf $PKGNAME .pkginfo -O | grep ^conflict | cut -d " " -f3-)
|
||||
|
||||
#packagename=$name-$version-$release
|
||||
|
||||
#}
|
||||
|
||||
# get information from package index
|
||||
#getoldname() {
|
||||
|
||||
#iname=$(cat $INDEX_DIR/$name/.pkginfo | grep ^name | cut -d " " -f3)
|
||||
#iversion=$(cat $INDEX_DIR/$name/.pkginfo | grep ^version | cut -d " " -f3)
|
||||
#irelease=$(cat $INDEX_DIR/$name/.pkginfo | grep ^release | cut -d " " -f3)
|
||||
#backup=$(cat $INDEX_DIR/$name/.pkginfo | grep ^backup | cut -d " " -f3-)
|
||||
|
||||
#ipackagename=$iname-$iversion-$irelease
|
||||
|
||||
#}
|
||||
|
||||
backupconf() {
|
||||
|
||||
pushd $ROOT_DIR
|
||||
for bkp in ${backup[@]}; do
|
||||
if [ -e $bkp ]; then
|
||||
msg2 "Backup ${color_purple}$bkp${color_reset}"
|
||||
msg2 "Backup ${PURPLE}$bkp${CRESET}"
|
||||
rm -f $bkp.spkgtmp
|
||||
cp $bkp $bkp.spkgtmp
|
||||
FILEBACKUP+=($bkp)
|
||||
@@ -317,7 +285,7 @@ restoreconf() {
|
||||
checkoutdate() {
|
||||
|
||||
if [ "$version-$release" = "$iversion-$irelease" ]; then
|
||||
msg "Package ${color_green}$name${color_reset} is up-to-date."
|
||||
msg "Package ${GREEN}$name${CRESET} is up-to-date."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -493,13 +461,13 @@ main() {
|
||||
|
||||
### CHECK EXISTANT OF PACKAGE FILE ###
|
||||
if [ ! -f $PKGNAME ]; then
|
||||
msgerr "Package ${color_red}$1${color_reset} not exist!"
|
||||
msgerr "Package ${RED}$1${CRESET} not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### INTEGRITY OF PACKAGE ###
|
||||
if ! tar -tf $PKGNAME &>/dev/null; then
|
||||
msgerr "Package ${color_red}$1${color_reset} is corrupted!"
|
||||
msgerr "Package ${RED}$1${CRESET} is corrupted!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -514,7 +482,7 @@ main() {
|
||||
### CHECK FOR LOCK FILE ###
|
||||
if [ -f /tmp/spkg.lock ]; then
|
||||
msgerr "Cant install/remove package simultaneously."
|
||||
msgerr "remove ${color_yellow}/tmp/spkg.lock${color_reset} if no install/remove package process running."
|
||||
msgerr "remove ${YELLOW}/tmp/spkg.lock${CRESET} if no install/remove package process running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -539,14 +507,14 @@ main() {
|
||||
iname=$(installed_pkg_info name $name)
|
||||
iversion=$(installed_pkg_info version $name)
|
||||
irelease=$(installed_pkg_info release $name)
|
||||
msg "Package ${color_green}$iname-$iversion-$irelease${color_reset} already installed."
|
||||
msg "Package ${GREEN}$iname-$iversion-$irelease${CRESET} already installed."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
### IF UPGRADE OR REINSTALL PACKAGE ###
|
||||
if [ "$UPGRADE_PKG" ] || [ "$REINSTALL_PKG" ]; then
|
||||
if [ ! -d $INDEX_DIR/$name ]; then
|
||||
msg "Package ${color_red}$name${color_reset} is not installed."
|
||||
msg "Package ${RED}$name${CRESET} is not installed."
|
||||
exit 1
|
||||
fi
|
||||
iname=$(installed_pkg_info name $name)
|
||||
@@ -559,10 +527,10 @@ main() {
|
||||
exit 0
|
||||
fi
|
||||
checkoutdate
|
||||
msg "Upgrading package: ${color_yellow}$iname-$iversion-$irelease${color_reset} -> ${color_green}$name-$version-$release${color_reset}"
|
||||
msg "Upgrading package: ${YELLOW}$iname-$iversion-$irelease${CRESET} -> ${GREEN}$name-$version-$release${CRESET}"
|
||||
# REINSTALL PACKAGE
|
||||
elif [ "$REINSTALL_PKG" ]; then
|
||||
msg "Reinstall package ${color_green}$name${color_reset}."
|
||||
msg "Reinstall package ${GREEN}$name${CRESET}."
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
20
removepkg
20
removepkg
@@ -15,7 +15,7 @@ spkglock() {
|
||||
|
||||
removepkg() {
|
||||
|
||||
msg "Removing ${color_green}$ipackagename${color_reset}..."
|
||||
msg "Removing ${GREEN}$ipackagename${CRESET}..."
|
||||
|
||||
### CHECK DEPENDENCY ###
|
||||
if [ ! "$IGNORE_DEP" ]; then
|
||||
@@ -70,21 +70,21 @@ removepkg() {
|
||||
rm -R $INDEX_DIR/$1
|
||||
|
||||
if [ -d $INDEX_DIR/$1 ]; then
|
||||
msgerr "Error occured while removing ${color_red}$ipackagename${color_reset}."
|
||||
msgerr "Error occured while removing ${RED}$ipackagename${CRESET}."
|
||||
spkglock
|
||||
exit 1
|
||||
else
|
||||
msg "Successfully remove ${color_green}$ipackagename${color_reset}."
|
||||
msg "Successfully remove ${GREEN}$ipackagename${CRESET}."
|
||||
fi
|
||||
|
||||
case $PREREMOVE_STATUS in
|
||||
OK) msg "preremove : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "preremove : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "preremove : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "preremove : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
case $POSTREMOVE_STATUS in
|
||||
OK) msg "postremove : ${color_green}OK${color_reset}" ;;
|
||||
KO) msg "postremove : ${color_red}FAIL${color_reset}" ;;
|
||||
OK) msg "postremove : ${GREEN}OK${CRESET}" ;;
|
||||
KO) msg "postremove : ${RED}FAIL${CRESET}" ;;
|
||||
esac
|
||||
|
||||
runremovehooks
|
||||
@@ -140,7 +140,7 @@ checkdeps() {
|
||||
done
|
||||
|
||||
if [ "${#ERRDEP[@]}" -gt 0 ]; then
|
||||
msgwarn "Package ${color_yellow}$iname-$iversion-$irelease${color_reset} is needed for:"
|
||||
msgwarn "Package ${YELLOW}$iname-$iversion-$irelease${CRESET} is needed for:"
|
||||
for pkg in ${ERRDEP[@]}; do
|
||||
msg2 "$pkg"
|
||||
done
|
||||
@@ -296,13 +296,13 @@ main() {
|
||||
### CHECK FOR LOCK FILE ###
|
||||
if [ -f /tmp/spkg.lock ]; then
|
||||
msgerr "Cant install/remove package simultaneously."
|
||||
msgerr "remove ${color_yellow}/tmp/spkg.lock${color_reset} if no install/remove package process running."
|
||||
msgerr "remove ${YELLOW}/tmp/spkg.lock${CRESET} if no install/remove package process running."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for pkg in ${RMNAME[@]}; do
|
||||
if [ ! -d $INDEX_DIR/$pkg ]; then
|
||||
msg "Package ${color_red}$pkg${color_reset} not installed."
|
||||
msg "Package ${RED}$pkg${CRESET} not installed."
|
||||
else
|
||||
getoldname $pkg ### GET NAME, VERSION, RELEASE FROM INSTALLED PACKAGE DATABASE ###
|
||||
removepkg $pkg ### REMOVE PACKAGE ###
|
||||
|
||||
116
scratch
116
scratch
@@ -11,42 +11,42 @@ showinfo() {
|
||||
echo -e " | SCRATCHPKG CONFIG |"
|
||||
echo -e " --+-------------------+--"
|
||||
echo
|
||||
echo -e "${color_purple}CFLAGS${color_reset} $CFLAGS"
|
||||
echo -e "${color_purple}CXXFLAGS${color_reset} $CXXFLAGS"
|
||||
echo -e "${color_purple}MAKEFLAGS${color_reset} $MAKEFLAGS"
|
||||
echo -e "${PURPLE}CFLAGS${CRESET} $CFLAGS"
|
||||
echo -e "${PURPLE}CXXFLAGS${CRESET} $CXXFLAGS"
|
||||
echo -e "${PURPLE}MAKEFLAGS${CRESET} $MAKEFLAGS"
|
||||
echo
|
||||
echo -e "${color_purple}PORT_REPO${color_reset}"
|
||||
echo -e "${PURPLE}PORT_REPO${CRESET}"
|
||||
for repo in ${PORT_REPO[@]}; do
|
||||
echo $repo
|
||||
done
|
||||
echo
|
||||
echo -e "${color_purple}ROOT_DIR${color_reset} $ROOT_DIR"
|
||||
echo -e "${color_purple}INDEX_DIR${color_reset} $INDEX_DIR"
|
||||
echo -e "${PURPLE}ROOT_DIR${CRESET} $ROOT_DIR"
|
||||
echo -e "${PURPLE}INDEX_DIR${CRESET} $INDEX_DIR"
|
||||
echo
|
||||
echo -e "${color_purple}PACKAGE_DIR${color_reset} $PACKAGE_DIR"
|
||||
echo -e "${color_purple}SOURCE_DIR${color_reset} $SOURCE_DIR"
|
||||
echo -e "${color_purple}WORK_DIR${color_reset} $WORK_DIR"
|
||||
echo -e "${color_purple}LOG_DIR${color_reset} $LOG_DIR"
|
||||
echo -e "${color_purple}HOOK_DIR${color_reset} $HOOK_DIR"
|
||||
echo -e "${PURPLE}PACKAGE_DIR${CRESET} $PACKAGE_DIR"
|
||||
echo -e "${PURPLE}SOURCE_DIR${CRESET} $SOURCE_DIR"
|
||||
echo -e "${PURPLE}WORK_DIR${CRESET} $WORK_DIR"
|
||||
echo -e "${PURPLE}LOG_DIR${CRESET} $LOG_DIR"
|
||||
echo -e "${PURPLE}HOOK_DIR${CRESET} $HOOK_DIR"
|
||||
echo
|
||||
echo -e "${color_purple}NO_EXTRACT${color_reset} $NO_EXTRACT"
|
||||
echo -e "${PURPLE}NO_EXTRACT${CRESET} $NO_EXTRACT"
|
||||
echo
|
||||
echo -e "${color_purple}OPTIONS${color_reset}"
|
||||
echo -e "${PURPLE}OPTIONS${CRESET}"
|
||||
for opt in ${OPTIONS[@]}; do
|
||||
echo $opt
|
||||
done
|
||||
echo
|
||||
echo -e "${color_purple}PURGE_FILES${color_reset}"
|
||||
echo -e "${PURPLE}PURGE_FILES${CRESET}"
|
||||
for pg in ${PURGE_FILES[@]}; do
|
||||
echo $pg
|
||||
done
|
||||
echo
|
||||
echo -e "${color_purple}DOC_DIRS${color_reset}"
|
||||
echo -e "${PURPLE}DOC_DIRS${CRESET}"
|
||||
for dc in ${DOC_DIRS[@]}; do
|
||||
echo $dc
|
||||
done
|
||||
echo
|
||||
echo -e "${color_purple}MAN_DIRS${color_reset}"
|
||||
echo -e "${PURPLE}MAN_DIRS${CRESET}"
|
||||
for md in ${MAN_DIRS[@]}; do
|
||||
echo $md
|
||||
done
|
||||
@@ -60,7 +60,7 @@ listinstalled() {
|
||||
iname=$(installed_pkg_info name $pkg)
|
||||
iversion=$(installed_pkg_info version $pkg)
|
||||
irelease=$(installed_pkg_info release $pkg)
|
||||
echo -e "$iname ${color_green}$iversion${color_reset}-${color_blue}$irelease${color_reset}"
|
||||
echo -e "$iname ${GREEN}$iversion${CRESET}-${BLUE}$irelease${CRESET}"
|
||||
done
|
||||
|
||||
}
|
||||
@@ -88,7 +88,7 @@ listorphan() {
|
||||
iname=$(installed_pkg_info name $all)
|
||||
iversion=$(installed_pkg_info version $all)
|
||||
irelease=$(installed_pkg_info release $all)
|
||||
echo -e "$iname ${color_green}$iversion${color_reset}-${color_blue}$irelease${color_reset}"
|
||||
echo -e "$iname ${GREEN}$iversion${CRESET}-${BLUE}$irelease${CRESET}"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -99,9 +99,9 @@ searchpkg() {
|
||||
for port in ${PORT_REPO[@]}; do
|
||||
if [ -d $port ]; then
|
||||
pushd $port
|
||||
OUTPUT=$(grep -R "# description" | grep -i "$1" | grep "$BUILD_SCRIPT" | cut -d '/' -f1)
|
||||
OUTPUT=$(grep -R description | grep "$BUILD_SCRIPT:# description[[:blank:]]*:" | sed "s/$BUILD_SCRIPT:# description[[:blank:]]*://" | grep -i "$1" | cut -d '/' -f1)
|
||||
popd
|
||||
if [ "$OUTPUT" ]; then
|
||||
if [ -n "$OUTPUT" ]; then
|
||||
found=yes
|
||||
for out in ${OUTPUT[@]}; do
|
||||
if [ -f $port/$out/$BUILD_SCRIPT ]; then
|
||||
@@ -110,16 +110,16 @@ searchpkg() {
|
||||
popd
|
||||
if [ ! -z "$name" ] && [ ! -z "$version" ] && [ ! -z "$release" ]; then
|
||||
portname=$(basename $port)
|
||||
search_result="${color_blue}($portname)${color_reset} ${color_purple}$name${color_reset} ${color_cyan}$version-$release${color_reset}"
|
||||
search_result="${BLUE}($portname)${CRESET} ${PURPLE}$name${CRESET} ${CYAN}$version-$release${CRESET}"
|
||||
if [ -d $INDEX_DIR/$name ]; then
|
||||
iversion=$(installed_pkg_info version $name)
|
||||
irelease=$(installed_pkg_info release $name)
|
||||
[ -f $INDEX_DIR/$name/.lock ] && ITSLOCK="[locked]"
|
||||
if [ "$version-$release" = "$iversion-$irelease" ]; then
|
||||
msg3 "$search_result ${color_green}[installed]${color_reset} ${color_blue}$ITSLOCK${color_reset}"
|
||||
msg3 "$search_result ${GREEN}[installed]${CRESET} ${BLUE}$ITSLOCK${CRESET}"
|
||||
msg4 "$description"
|
||||
else
|
||||
msg3 "$search_result ${color_yellow}[installed $iversion-$irelease]${color_reset} ${color_blue}$ITSLOCK${color_reset}"
|
||||
msg3 "$search_result ${YELLOW}[installed $iversion-$irelease]${CRESET} ${BLUE}$ITSLOCK${CRESET}"
|
||||
msg4 "$description"
|
||||
fi
|
||||
else
|
||||
@@ -133,7 +133,7 @@ searchpkg() {
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [ "$found" != "yes" ]; then
|
||||
if [ ! "$found" ]; then
|
||||
msg "No matching package found."
|
||||
fi
|
||||
}
|
||||
@@ -142,7 +142,7 @@ checkowner() {
|
||||
|
||||
for pkg in $(allinstalled); do
|
||||
for output in $(cat $INDEX_DIR/$pkg/.files | grep $1); do
|
||||
echo -e "${color_cyan}$pkg${color_reset} => ${color_purple}$output${color_reset}"
|
||||
echo -e "${CYAN}$pkg${CRESET} => ${PURPLE}$output${CRESET}"
|
||||
done
|
||||
done
|
||||
|
||||
@@ -151,7 +151,7 @@ checkowner() {
|
||||
showtree() {
|
||||
|
||||
if [ ! -f $INDEX_DIR/$1/.pkginfo ]; then
|
||||
msg "Package ${color_red}$1${color_reset} not installed."
|
||||
msg "Package ${RED}$1${CRESET} not installed."
|
||||
else
|
||||
while IFS=' ' read -r line; do
|
||||
echo "$line"
|
||||
@@ -166,14 +166,14 @@ checkintegrity() {
|
||||
for pkg in $(allinstalled); do
|
||||
while IFS=' ' read -r line; do
|
||||
if [ ! -e "$line" ]; then
|
||||
msg "${color_blue}$pkg${color_reset} is missing: ${color_purple}/$line${color_reset}"
|
||||
msg "${BLUE}$pkg${CRESET} is missing: ${PURPLE}/$line${CRESET}"
|
||||
MISSING_FILE=yes
|
||||
fi
|
||||
done < <(cat $INDEX_DIR/$pkg/.files)
|
||||
done
|
||||
popd
|
||||
|
||||
[ "$UID" != "0" ] && msg "${color_yellow}(check integrity is recommended run as root or using sudo)${color_reset}"
|
||||
[ "$UID" != "0" ] && msg "${YELLOW}(check integrity is recommended run as root or using sudo)${CRESET}"
|
||||
[ ! "$MISSING_FILE" ] && msg "Your system file is consistent with package tree."
|
||||
|
||||
}
|
||||
@@ -181,12 +181,12 @@ checkintegrity() {
|
||||
showpackageinfo() {
|
||||
|
||||
if [ ! -f $1 ]; then
|
||||
msg "${color_red}$1${color_reset} not exist."
|
||||
msg "${RED}$1${CRESET} not exist."
|
||||
exit 1
|
||||
else
|
||||
if [ $(tar -tf "$1" | grep -x ".pkginfo") ]; then
|
||||
getpkginfofrompkg $1
|
||||
echo -e "${color_green}info:${color_reset}"
|
||||
echo -e "${GREEN}info:${CRESET}"
|
||||
[ "$name" ] && echo "name = $name"
|
||||
[ "$version" ] && echo "version = $version"
|
||||
[ "$release" ] && echo "release = $release"
|
||||
@@ -197,18 +197,18 @@ showpackageinfo() {
|
||||
[ "$makedepends" ] && for md in ${makedepends[@]}; do echo "makedepends = $md"; done
|
||||
echo ""
|
||||
if [ $(tar -tf "$1" | grep -x ".pkgreadme") ]; then
|
||||
echo -e "${color_green}readme:${color_reset}"
|
||||
echo -e "${GREEN}readme:${CRESET}"
|
||||
tar -xf $1 .pkgreadme -O
|
||||
echo ""
|
||||
echo ""
|
||||
fi
|
||||
if [ $(tar -tf "$1" | grep -x ".pkginstall") ]; then
|
||||
echo -e "${color_green}pkginstall files:${color_reset}"
|
||||
echo -e "${GREEN}pkginstall files:${CRESET}"
|
||||
tar -xf $1 .pkginstall -O
|
||||
echo ""
|
||||
fi
|
||||
else
|
||||
msg "${color_yellow}$1${color_reset} is not package created by scratchpkg."
|
||||
msg "${YELLOW}$1${CRESET} is not package created by scratchpkg."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -222,27 +222,27 @@ showdepends() {
|
||||
getpkginfo
|
||||
popd
|
||||
else
|
||||
msgerr "Port ${color_red}$1${color_reset} not exist."
|
||||
msgerr "Port ${RED}$1${CRESET} not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for dep in ${depends[@]}; do
|
||||
if [ -d $INDEX_DIR/$dep ]; then
|
||||
msg2 "$dep ${color_green}[installed]${color_reset}"
|
||||
msg2 "$dep ${GREEN}[installed]${CRESET}"
|
||||
elif getportpath $dep >/dev/null; then
|
||||
msg2 "$dep"
|
||||
else
|
||||
msg2 "$dep ${color_red}[port not exist]${color_reset}"
|
||||
msg2 "$dep ${RED}[port not exist]${CRESET}"
|
||||
fi
|
||||
done
|
||||
|
||||
for mdep in ${makedepends[@]}; do
|
||||
if [ -d $INDEX_DIR/$mdep ]; then
|
||||
msg2 "$mdep ${color_cyan}(make)${color_reset} ${color_green}[installed]${color_reset}"
|
||||
msg2 "$mdep ${CYAN}(make)${CRESET} ${GREEN}[installed]${CRESET}"
|
||||
elif getportpath $mdep >/dev/null; then
|
||||
msg2 "$mdep ${color_cyan}(make)${color_reset}"
|
||||
msg2 "$mdep ${CYAN}(make)${CRESET}"
|
||||
else
|
||||
msg "$mdep ${color_cyan}(make)${color_reset} ${color_red}[port not exist]${color_reset}"
|
||||
msg "$mdep ${CYAN}(make)${CRESET} ${RED}[port not exist]${CRESET}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -255,8 +255,8 @@ checkupdate() {
|
||||
iversion=$(installed_pkg_info version $pkg)
|
||||
irelease=$(installed_pkg_info release $pkg)
|
||||
[ -f "$INDEX_DIR/$pkg/.lock" ] && ITSLOCK="[locked]"
|
||||
outdatemsg="$name ${color_red}$iversion-$irelease${color_reset} => ${color_green}$version-$release${color_reset} ${color_blue}$ITSLOCK${color_reset}"
|
||||
newerinstmsg="$name ${color_red}$iversion-$irelease${color_reset} => ${color_green}$version-$release${color_reset} ${color_yellow}[newer installed]${color_reset} ${color_blue}$ITSLOCK${color_reset}"
|
||||
outdatemsg="$name ${RED}$iversion-$irelease${CRESET} => ${GREEN}$version-$release${CRESET} ${BLUE}$ITSLOCK${CRESET}"
|
||||
newerinstmsg="$name ${RED}$iversion-$irelease${CRESET} => ${GREEN}$version-$release${CRESET} ${YELLOW}[newer installed]${CRESET} ${BLUE}$ITSLOCK${CRESET}"
|
||||
if [ "$version" != "$iversion" ]; then
|
||||
vercomp $version $iversion
|
||||
if [ $? = 2 ]; then
|
||||
@@ -286,7 +286,7 @@ checkupdate() {
|
||||
showdependent() {
|
||||
|
||||
if [ ! -d $INDEX_DIR/$1 ]; then
|
||||
msg "Package ${color_red}$1${color_reset} not installed."
|
||||
msg "Package ${RED}$1${CRESET} not installed."
|
||||
exit 1
|
||||
else
|
||||
for all_installed in $(ls $INDEX_DIR); do
|
||||
@@ -301,7 +301,7 @@ showdependent() {
|
||||
for mdep in ${makedepend[@]}; do
|
||||
if [ $mdep = $1 ]; then
|
||||
DP=yes
|
||||
msg2 "$all_installed ${color_cyan}(make)${color_reset}"
|
||||
msg2 "$all_installed ${CYAN}(make)${CRESET}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
@@ -321,7 +321,7 @@ showglobaldependent() {
|
||||
if [ $dep = $1 ]; then
|
||||
GDP=yes
|
||||
if [ -d $INDEX_DIR/$all ]; then
|
||||
msg2 "$all ${color_green}[installed]${color_reset}"
|
||||
msg2 "$all ${GREEN}[installed]${CRESET}"
|
||||
else
|
||||
msg2 "$all"
|
||||
fi
|
||||
@@ -332,9 +332,9 @@ showglobaldependent() {
|
||||
if [ $mdep = $1 ]; then
|
||||
GDP=yes
|
||||
if [ -d $INDEX_DIR/$all ]; then
|
||||
msg2 "$all ${color_cyan}(make)${color_reset} ${color_green}[installed]${color_reset}"
|
||||
msg2 "$all ${CYAN}(make)${CRESET} ${GREEN}[installed]${CRESET}"
|
||||
else
|
||||
msg2 "$all ${color_cyan}(make)${color_reset}"
|
||||
msg2 "$all ${CYAN}(make)${CRESET}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -447,11 +447,11 @@ pkgcache() {
|
||||
ALL_SOURCES_SIZE=0M
|
||||
fi
|
||||
|
||||
msg "${color_cyan}Package cache ($ALL_PACKAGES_SIZE):${color_reset}"
|
||||
msg "${CYAN}Package cache ($ALL_PACKAGES_SIZE):${CRESET}"
|
||||
[ ${#ALL_PACKAGES[@]} -gt 0 ] && (echo ${ALL_PACKAGES[@]} | tr ' ' '\n') || echo "(none)"
|
||||
|
||||
echo ""
|
||||
msg "${color_cyan}Source cache ($ALL_SOURCES_SIZE):${color_reset}"
|
||||
msg "${CYAN}Source cache ($ALL_SOURCES_SIZE):${CRESET}"
|
||||
[ ${#ALL_SOURCES[@]} -gt 0 ] && (echo ${ALL_SOURCES[@]} | tr ' ' '\n') || echo "(none)"
|
||||
|
||||
}
|
||||
@@ -518,15 +518,15 @@ listports() {
|
||||
for ports in $(ls $repo/*/$BUILD_SCRIPT | rev | cut -d '/' -f2 | rev 2>/dev/null); do
|
||||
. "$repo/$ports/$BUILD_SCRIPT"
|
||||
if [ -f "$PACKAGE_DIR/$name-$version-$release.spkg.txz" ]; then
|
||||
echo -e "$name ${color_green}$version${color_reset}-${color_blue}$release${color_reset} ${color_purple}[*]${color_reset}"
|
||||
echo -e "$name ${GREEN}$version${CRESET}-${BLUE}$release${CRESET} ${PURPLE}[*]${CRESET}"
|
||||
else
|
||||
echo -e "$name ${color_green}$version${color_reset}-${color_blue}$release${color_reset}"
|
||||
echo -e "$name ${GREEN}$version${CRESET}-${BLUE}$release${CRESET}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
[ "$REPO_EXIST" ] || msgerr "Repository ${color_red}$1${color_reset} not exist."
|
||||
[ "$REPO_EXIST" ] || msgerr "Repository ${RED}$1${CRESET} not exist."
|
||||
|
||||
}
|
||||
|
||||
@@ -611,10 +611,10 @@ missingdep() {
|
||||
done
|
||||
fi
|
||||
if [ ${#msd[@]} -gt 0 ]; then
|
||||
echo -e "${color_green}$pkg${color_reset} missing ${color_red}${msd[@]}${color_reset}"
|
||||
echo -e "${GREEN}$pkg${CRESET} missing ${RED}${msd[@]}${CRESET}"
|
||||
fi
|
||||
if [ ${#msmd[@]} -gt 0 ]; then
|
||||
echo -e "${color_green}$pkg${color_reset} missing ${color_red}${msmd[@]}${color_reset} ${color_blue}(make)${color_reset}"
|
||||
echo -e "${GREEN}$pkg${CRESET} missing ${RED}${msmd[@]}${CRESET} ${BLUE}(make)${CRESET}"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -644,7 +644,7 @@ missingport() {
|
||||
for dep in $depends; do
|
||||
if ! getportpath $dep >/dev/null; then
|
||||
ms+=($dep)
|
||||
#echo -e "${color_green}$portname${color_reset} requires ${color_red}$dep${color_reset}"
|
||||
#echo -e "${GREEN}$portname${CRESET} requires ${RED}$dep${CRESET}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@@ -652,15 +652,15 @@ missingport() {
|
||||
for mdep in $makedepends; do
|
||||
if ! getportpath $mdep >/dev/null; then
|
||||
mms+=($mdep)
|
||||
#echo -e "${color_green}$portname${color_reset} requires ${color_red}$mdep${color_reset} ${color_blue}(make)${color_reset}"
|
||||
#echo -e "${GREEN}$portname${CRESET} requires ${RED}$mdep${CRESET} ${BLUE}(make)${CRESET}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ ${#ms[@]} -gt 0 ]; then
|
||||
echo -e "${color_green}$portname${color_reset} requires ${color_red}${ms[@]}${color_reset}"
|
||||
echo -e "${GREEN}$portname${CRESET} requires ${RED}${ms[@]}${CRESET}"
|
||||
fi
|
||||
if [ ${#mms[@]} -gt 0 ]; then
|
||||
echo -e "${color_green}$portname${color_reset} requires ${color_red}${mms[@]}${color_reset} ${color_blue}(make)${color_reset}"
|
||||
echo -e "${GREEN}$portname${CRESET} requires ${RED}${mms[@]}${CRESET} ${BLUE}(make)${CRESET}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
@@ -684,7 +684,6 @@ Options:
|
||||
-pd, --package-dir <path> override directory path for compiled package
|
||||
-v, --verbose verbose process
|
||||
-im, --ignore-mdsum skip md5sum check for sources
|
||||
-um, --update-mdsum update md5sum file for port
|
||||
-do, --download-only download sources only
|
||||
-eo, --extract-only extract sources only
|
||||
-kw, --keep-work keep working directory
|
||||
@@ -752,7 +751,6 @@ parse_options() {
|
||||
-fr | --force-rebuild) OPTS+=($1) ;;
|
||||
-v | --verbose) OPTS+=($1) ;;
|
||||
-im | --ignore-mdsum) OPTS+=($1) ;;
|
||||
-um | --update-mdsum) OPTS+=($1) ;;
|
||||
-do | --download-only) OPTS+=($1) ;;
|
||||
-eo | --extract-only) OPTS+=($1) ;;
|
||||
-kw | --keep-work) OPTS+=($1) ;;
|
||||
|
||||
@@ -10,6 +10,7 @@ version=
|
||||
release=1
|
||||
options=()
|
||||
source=()
|
||||
md5sum=()
|
||||
|
||||
build() {
|
||||
cd $name-$version
|
||||
|
||||
Reference in New Issue
Block a user