mirror of
https://github.com/outbackdingo/scratchpkg.git
synced 2026-02-05 08:28:00 +00:00
219 lines
5.3 KiB
Bash
219 lines
5.3 KiB
Bash
#!/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
|
|
|
|
### DECLARE SOME VALUE ###
|
|
CONF_FILE="/etc/scratchpkg.conf"
|
|
BUILD_SCRIPT="spkgbuild"
|
|
|
|
ROOT_DIR=/
|
|
INDEX_DIR=/var/spkg/index
|
|
BACKUP_DIR=/var/spkg/backup
|
|
REJECTED_DIR=/var/spkg/rejected
|
|
|
|
### SET BSDTAR FOR EXTRACT PROGRAM IF LIBARCHIVE IS INSTALLED ###
|
|
if [ -d $INDEX_DIR/libarchive ]; then
|
|
EXTPROG=bsdtar
|
|
else
|
|
EXTPROG=tar
|
|
fi
|
|
|
|
|
|
### FUNCTIONS LOAD BY SCRATCHPKG ###
|
|
pushd() {
|
|
command pushd "$@" > /dev/null
|
|
}
|
|
|
|
popd() {
|
|
command popd "$@" > /dev/null
|
|
}
|
|
|
|
msg() {
|
|
echo -e "${color_green}==>${color_reset} $1"
|
|
}
|
|
|
|
msginfo() {
|
|
echo -e "${color_cyan}==> INFO:${color_reset} $1"
|
|
}
|
|
|
|
msgerr() {
|
|
echo -e "${color_red}==> ERROR:${color_reset} $1"
|
|
}
|
|
|
|
msgwarn() {
|
|
echo -e "${color_yellow}==> WARNING:${color_reset} $1"
|
|
}
|
|
|
|
msg2() {
|
|
echo -e "${color_blue} ->${color_reset} $1"
|
|
}
|
|
|
|
msg3() {
|
|
echo -e "$1"
|
|
}
|
|
|
|
msg4() {
|
|
echo -e " $1"
|
|
}
|
|
|
|
rmdir_silent() {
|
|
command rmdir "$@" 2> /dev/null
|
|
}
|
|
|
|
rm_silent() {
|
|
command rm "$@" 2> /dev/null
|
|
}
|
|
|
|
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=''
|
|
|
|
}
|
|
|
|
updatesystemdb() {
|
|
|
|
# update desktop database
|
|
#msg2 "Updating desktop database..."
|
|
if [ -x /usr/bin/update-desktop-database ]; then
|
|
/usr/bin/update-desktop-database -q /usr/share/applications >/dev/null 2>&1
|
|
fi
|
|
|
|
# update mime database
|
|
#msg2 "Updating mime database..."
|
|
#if [ -x /usr/bin/update-mime-database ]; then
|
|
#/usr/bin/update-mime-database /usr/share/mime >/dev/null 2>&1
|
|
#fi
|
|
|
|
# update icon cache
|
|
#msg2 "Updating icon cache..."
|
|
if [ -f /usr/bin/gtk-update-icon-cache ]; then
|
|
find /usr/share/icons -mindepth 1 -maxdepth 1 -type d | while read -r THEME; do
|
|
if [ -f "$THEME/index.theme" ]; then
|
|
gtk-update-icon-cache -f "$THEME" >/dev/null 2>&1
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# update glib schema
|
|
#msg2 "Updating glib schemas..."
|
|
if [ -e /usr/share/glib-2.0/schemas ]; then
|
|
if [ -x /usr/bin/glib-compile-schemas ]; then
|
|
/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1
|
|
fi
|
|
fi
|
|
|
|
# run ldconfig
|
|
#msg2 "Running ldconfig..."
|
|
if [ -f /sbin/ldconfig ]; then
|
|
/sbin/ldconfig
|
|
fi
|
|
|
|
}
|
|
|
|
getpkginfo() {
|
|
|
|
description=$(cat $BUILD_SCRIPT | grep ^'# description' | sed 's/\://' | cut -d ' ' -f 3-)
|
|
homepage=$(cat $BUILD_SCRIPT | grep ^'# homepage' | sed 's/\://' | cut -d ' ' -f 3-)
|
|
maintainer=$(cat $BUILD_SCRIPT | grep ^'# maintainer' | 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-)
|
|
|
|
. $BUILD_SCRIPT
|
|
|
|
}
|
|
|
|
getpkginfofrompkg() {
|
|
|
|
name=$(tar xf $1 .pkginfo -O | grep ^name | cut -d " " -f3)
|
|
version=$(tar xf $1 .pkginfo -O | grep ^version | cut -d " " -f3)
|
|
release=$(tar xf $1 .pkginfo -O | grep ^release | cut -d " " -f3)
|
|
description=$(tar xf $1 .pkginfo -O | grep ^description | cut -d " " -f3-)
|
|
homepage=$(tar xf $1 .pkginfo -O | grep ^homepage | cut -d " " -f3-)
|
|
maintainer=$(tar xf $1 .pkginfo -O | grep ^maintainer | cut -d " " -f3-)
|
|
backup=$(tar xf $1 .pkginfo -O | grep ^backup | cut -d " " -f3-)
|
|
conflict=$(tar xf $1 .pkginfo -O | grep ^conflict | cut -d " " -f3-)
|
|
depends=$(tar xf $1 .pkginfo -O | grep ^depends | cut -d " " -f3-)
|
|
makedepends=$(tar xf $1 .pkginfo -O | grep ^makedepends | cut -d " " -f3-)
|
|
|
|
}
|
|
|
|
loadconfigfile() {
|
|
|
|
if [ -f $CONF_FILE ]; then
|
|
. $CONF_FILE
|
|
#PACKAGE_DIR=$(cat $CONF_FILE | grep ^'#PACKAGE_DIR' | tr -d '=' | tr -d '"' | cut -d ' ' -f 2-)
|
|
#SOURCE_DIR=$(cat $CONF_FILE | grep ^'#SOURCE_DIR' | tr -d '=' | tr -d '"' | cut -d ' ' -f 2-)
|
|
#WORK_DIR=$(cat $CONF_FILE | grep ^'#WORK_DIR' | tr -d '=' | tr -d '"' | cut -d ' ' -f 2-)
|
|
#PORT_REPO=$(cat $CONF_FILE | grep ^'#PORT_REPO' | tr -d '=' | tr -d '"' | cut -d ' ' -f 2-)
|
|
#PURGE_FILE=$(cat $CONF_FILE | grep ^'#PURGE_FILE' | tr -d '=' | tr -d '"' | cut -d ' ' -f 2-)
|
|
else
|
|
msg "${color_red}Configuration file not found.${color_reset}"
|
|
exit 1
|
|
fi
|
|
|
|
}
|
|
|
|
createtemplate() {
|
|
|
|
if [ -d $TEMPLATE_NAME ]; then
|
|
msg "Error folder ${color_red}$TEMPLATE_NAME${color_reset} already exist"
|
|
exit 1
|
|
else
|
|
mkdir $TEMPLATE_NAME
|
|
echo "# description :
|
|
# homepage :
|
|
# maintainer :
|
|
# backup :
|
|
# conflict :
|
|
# depends :
|
|
# makedepends :
|
|
# noextract :
|
|
|
|
name=$TEMPLATE_NAME
|
|
version=
|
|
release=1
|
|
source=()
|
|
|
|
build() {
|
|
cd \$name-\$version
|
|
./configure --prefix=/usr
|
|
make
|
|
make DESTDIR=\$PKG install
|
|
}" > $TEMPLATE_NAME/$BUILD_SCRIPT
|
|
msg "Template port have created for ${color_green}$TEMPLATE_NAME${color_reset}."
|
|
fi
|
|
|
|
}
|