Advertising
- Stuff
- Monday, December 3rd, 2007 at 10:36:40pm UTC
- #!/bin/bash
- buildpkgver=1.4.0
- startdir="$(pwd)"
- err()
- {
- echo "$1"
- exit 1
- }
- help_msg()
- {
- cat <<EOHELP
- Usage: buildpkg [OPTIONS] [prototype]
- OPTIONS:
- no option creates build-\$pkgname.sh
- -g, --generate [prototype] copy a ZENBUILD prototype
- -c, --clean-dirs remove pkg and src directories
- -x, --execute creates build-\$pkgname.sh, then executes it
- -X, --x-and-clean combines -x and -c together
- -v, --version outputs the version
- -h, --help display this message
- Report bugs or suggestions to [email protected]
- EOHELP
- exit 1
- }
- generate_zenbuild() {
- EXTENSION="$1"
- ACTUALFILE=ZENBUILD
- [ -n "$EXTENSION" ] && ACTUALFILE+=".$EXTENSION"
- TEMPLATE="/etc/buildpkg/$ACTUALFILE"
- if [ ! -f "$TEMPLATE" ]; then
- err "No $TEMPLATE found in /etc/buildpkg, exiting."
- elif [ -f "$startdir/ZENBUILD" ]; then
- echo "There is already a ZENBUILD in the current directory."
- echo -n "Generate ZENBUILD and overwrite it anyways? [y/n] "
- while :; do #infinitely
- read answer
- case $answer in
- ''|'y'|'Y'|'yes'|'YES')
- rm $startdir/ZENBUILD
- cp $TEMPLATE $startdir/ZENBUILD
- echo "ZENBUILD created."
- exit
- ;;
- 'n'|'N'|'no'|'NO')
- echo "Not creating ZENBUILD, exiting."
- exit
- ;;
- *)
- echo -n "Incorrect response, reply y or n: "
- esac
- done
- else
- cp $TEMPLATE $startdir/ZENBUILD
- exit
- fi
- }
- #Set Options
- unset EXECUTE
- unset GENERATE
- unset REMOVEDIRS
- SHORTOPTS="hXxg::cv"
- LONGOPTS="help,version,x-and-clean,execute,generate::,clean-dirs"
- # separate word. The quotes around `[email protected]' are essential!
- # We need TEMP as the `eval set --' would nuke the return value of getopt.
- #TEMP=`getopt -o $SHORTOPTS --long $LONGOPTS -n build --"[email protected]"`
- TEMP=$(getopt -o $SHORTOPTS --long $LONGOPTS -n "$progname" -- "[email protected]")
- # Note the quotes around `$TEMP': they are essential!
- eval set -- "$TEMP"
- while [ $# -gt 0 ]; do
- case $1 in
- '-h'|'--help')
- help_msg
- exit
- ;;
- '-X'|'--x-and-clean')
- EXECUTE='1'
- REMOVEDIRS='1'
- ;;
- '-x'|'--execute')
- EXECUTE='1'
- ;;
- '-g'|'--generate')
- GENERATE='1'
- generate_zenbuild "$2"
- exit
- ;;
- '-c'|'--clean-dirs')
- REMOVEDIRS='1'
- ;;
- '-v'|'--version')
- echo "buildpkg version: $buildpkgver"
- exit
- ;;
- '')
- ;;
- --)
- break
- ;;
- *)
- err "Incorrect usage, see buildpkg --help"
- esac
- shift
- done
- if [ -f "${startdir}/ZENBUILD" ]; then
- unset pkgname pkgver pkgrel zenver arch source extradepends options
- unset dotnew url CFLAGS CXFLAGS slackdesc doinst build docs
- . ${startdir}/ZENBUILD
- else
- err "No ZENBUILD found in directory, see buildpkg --help"
- fi
- ##################Sanity Tests Begin######################################
- #Check that variables exist
- for VAR in pkgname pkgver pkgrel zenver arch slackdesc; do
- [[ ! "${!VAR}" ]] &&
- err "variable \"${VAR}\" is not set"
- done
- #special source check
- if [[ ! "$source" ]]; then
- echo "source should be filled except in rare occassions (cvs,svn,etc.)"
- fi
- #does build() exist?
- [[ ! "$(grep '^build\(\)' ${startdir}/ZENBUILD)" ]] &&
- err "No build() function found"
- #check that variables are sane
- [[ "$(echo $pkgver | grep -E '\-|_')" ]] &&
- err "No dashes or underscores allowed in pkgver"
- [[ "${slackdesc[10]}" ]] &&
- err "No more than 10 lines allowed in slackdesc"
- err "Maintainer isn't set in ZENBUILD, exiting"
- fi
- #Check for numerous commentaries
- NUMCOM=$(grep -e "^#[a-zA-Z]*=[a-zA-Z]*" ${startdir}/ZENBUILD | wc -l)
- [[ $NUMCOM -ge 2 ]] && echo "WARNING: You appear to have too many commented variables, you should look into it."
- #source sanity
- for SOURCES in "${source[@]}"; do
- if [ ! -f "$(basename $SOURCES)" ]; then
- protocol=$(echo $SOURCES | sed 's|:.*||')
- if [ "$protocol" = "http" -o "$protocol" = "https" -o "$protocol" = "ftp" ]; then
- echo -e "\nDownloading $(basename $SOURCES)\n"
- wget $SOURCES
- if [ ! "$?" == "0" ]; then
- echo "Download failed"
- exit 2
- fi
- else
- err "$SOURCES does not appear to be a url nor is it in the directory"
- fi
- else
- echo "$(basename $SOURCES) found in current directory"
- fi
- done
- #slackdesc sanity
- for ((LINE=0 ; LINE < 10 ; LINE++)); do
- REALLINE=$(expr $LINE + 1)
- if [ "${#slackdesc[$LINE]}" -gt "70" ] ; then
- let "extrachar=${#slackdesc[$LINE]}-70"
- err "Line ${REALLINE}: '${slackdesc[$LINE]}'
- is greater than 70 characters, make it $extrachar characters shorter."
- fi
- done
- #clean dotnew
- if [[ "$dotnew" ]]; then
- NUM='0'
- for dot in ${dotnew[@]}; do
- if [ "${dotnew[$NUM]:0:1}" == "/" ]; then
- dotnew[$NUM]=${dotnew[$NUM]:1}
- fi
- let "NUM++"
- done
- fi
- #########Sanity Tests End########################################
- #options=()
- if [ -n "$options" ]; then
- unset NOEXTRACT
- unset NOREQUIREDBUILDER
- unset REQUIREDBUILDERFLATDEPS
- unset NOSTRIP
- unset KEEPDEPFILE
- for opts in ${options[@]}; do
- case $opts in
- noextract)
- echo "Setting option noextract"
- NOEXTRACT='1'
- ;;
- norequiredbuilder)
- echo "Setting option norequiredbuilder"
- NOREQUIREDBUILDER='1'
- ;;
- nostrip)
- echo "Setting option nostrip"
- NOSTRIP='1'
- ;;
- requiredbuilderflatdeps)
- echo "Setting option requiredbuilderflatdeps"
- REQUIREDBUILDERFLATDEPS='1'
- ;;
- keepdepfile)
- echo "Setting option keepdepfile"
- KEEPDEPFILE='1'
- ;;
- *)
- echo "$opts is not a correct option, exiting."
- exit 2
- ;;
- esac
- done
- fi
- #######Generate Build Script#####################################
- cat <<EOA > ${startdir}/build-${pkgname}.sh
- #!/bin/bash
- #Automatically Created by buildpkg $buildpkgver
- EOA
- if [ "$(grep -e "^#Maintainer" $startdir/ZENBUILD)" ]; then
- grep -e "^#Maintainer" $startdir/ZENBUILD >> $startdir/build-$pkgname.sh
- fi
- [[ "$(grep -e "^#Former Maintainer(s)" $startdir/ZENBUILD)" ]] &&
- grep -e "^#Former Maintainer(s)" $startdir/ZENBUILD >> $startdir/build-$pkgname.sh
- [[ "$url" ]] && echo "#url: $url" >> $startdir/build-$pkgname.sh
- [[ "$KEEPDEPFILE" ]] && echo "KEEPDEPFILE='1'" >> $startdir/build-$pkgname.sh
- cat <<"EOREDUNDANT" >> $startdir/build-$pkgname.sh
- ######Begin Redundant Code######################################
- check_for_root() {
- if [ "$UID" != "0" ]; then
- echo "You need to be root"
- exit 1
- fi
- }
- clean_dirs () {
- for COMPLETED in src pkg; do
- if [ -e $COMPLETED ]; then
- rm -rf $COMPLETED
- fi
- done
- }
- clean_old_builds () {
- for COMPLETED in $package.{tgz,md5,dep}; do
- if [ "$KEEPDEPFILE" = "1" ] && [ $COMPLETED = $package.dep ]; then
- continue
- elif [ -e $COMPLETED ]; then
- rm -rf $COMPLETED
- fi
- done
- clean_dirs
- }
- set_pre_permissions() {
- cd $startdir/src
- find . -perm 664 -exec chmod 644 {} \;
- find . -perm 600 -exec chmod 644 {} \;
- find . -perm 444 -exec chmod 644 {} \;
- find . -perm 400 -exec chmod 644 {} \;
- find . -perm 440 -exec chmod 644 {} \;
- find . -perm 777 -exec chmod 755 {} \;
- find . -perm 775 -exec chmod 755 {} \;
- find . -perm 511 -exec chmod 755 {} \;
- find . -perm 711 -exec chmod 755 {} \;
- find . -perm 555 -exec chmod 755 {} \;
- }
- check_for_menu_compliance() {
- if [ -d "$startdir/pkg/usr/share/applications" ]; then
- cd $startdir/pkg/usr/share/applications
- for desktop in *.desktop; do
- Icon=$(grep -e "^Icon=" $desktop | sed 's/Icon=//')
- if [[ "$Icon" ]]; then
- if [ ! "$Icon" == "${Icon%.*}" ]; then
- sed '/Icon/s/\..*$//' -i $desktop
- Icon=$(grep -e "^Icon=" $desktop | sed 's/Icon=//')
- fi
- if [ -d "$startdir/pkg/usr/share/pixmaps" ]; then
- cd $startdir/pkg/usr/share/pixmaps
- for pixmaps in *; do
- [ -d $pixmaps ] && continue
- [ ! "${pixmaps##*.}" == "png" -a ! "${pixmaps##*.}" == "svg" ] && continue
- if [ "${pixmaps%.*}" == "$Icon" ]; then
- DIR=$(file $pixmaps | awk -F, '{print $2}' | sed 's/ //g')
- [ o"$DIR" == "o" ] && DIR="scalable"
- mkdir -p $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
- mv $pixmaps $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
- if [[ ! "$(ls $startdir/pkg/usr/share/pixmaps)" ]]; then
- rm -rf $startdir/pkg/usr/share/pixmaps
- fi
- fi
- done
- fi
- if [ -d "$startdir/pkg/usr/share/icons" ]; then
- cd $startdir/pkg/usr/share/icons
- for icons in *; do
- if [ "${icons%.*}" == "$Icon" ]; then
- [ ! "${pixmaps##*.}" == "png" -a ! "${pixmaps##*.}" == "svg" ] && continue
- DIR=$(file $icons | awk -F, '{print $2}' | sed 's/ //g')
- [ o"$DIR" == "o" ] && DIR="scalable"
- mkdir -p $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
- mv $icons $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
- fi
- done
- fi
- fi
- done
- fi
- }
- gzip_man_and_info_pages() {
- for DOCS in man info; do
- if [ -d "$startdir/pkg/usr/share/$DOCS" ]; then
- mv $startdir/pkg/usr/share/$DOCS $startdir/pkg/usr/$DOCS
- if [[ ! "$(ls $startdir/pkg/usr/share)" ]]; then
- rm -rf $startdir/pkg/usr/share
- fi
- fi
- if [ -d "$startdir/pkg/usr/$DOCS" ]; then
- # I've never seen symlinks in info pages....
- if [ "$DOCS" == "man" ]; then
- (cd $startdir/pkg/usr/$DOCS
- for manpagedir in $(find . -type d -name "man*" 2> /dev/null) ; do
- ( cd $manpagedir
- for eachpage in $( find . -type l -maxdepth 1 2> /dev/null) ; do
- ln -s $( readlink $eachpage ).gz $eachpage.gz
- rm $eachpage
- done )
- done)
- fi
- find $startdir/pkg/usr/$DOCS -type f -exec gzip -9 '{}' \;
- fi
- done
- }
- set_post_permissions() {
- for DIRS in usr/share/icons usr/doc; do
- if [ -d "$startdir/pkg/$DIRS" ]; then
- if [ "$DIRS" == "usr/doc" ]; then
- find $startdir/pkg/$DIRS -type f -exec chmod 644 {} \;
- find $startdir/pkg/$DIRS -type d -exec chmod 755 {} \;
- fi
- fi
- [ -d $startdir/pkg/$DIRS ] && chown root:root -R $startdir/pkg/$DIRS
- done
- [ -d $startdir/pkg/usr/bin ] && find $startdir/pkg/usr/bin -user root -group bin -exec chown root:root {} \;
- }
- copy_build_script() {
- mkdir -p $startdir/pkg/usr/src/$pkgname-$pkgver/
- cp $startdir/build-$pkgname.sh $startdir/pkg/usr/src/$pkgname-$pkgver/build-$pkgname.sh
- [ -f $startdir/ZENBUILD ] && cp $startdir/ZENBUILD $startdir/pkg/usr/src/$pkgname-$pkgver/ZENBUILD
- }
- create_package() {
- cd $startdir/pkg
- /sbin/makepkg -l y -c n $startdir/$package.tgz
- cd $startdir
- md5sum $package.tgz > $startdir/$package.md5
- }
- EOREDUNDANT
- if [ -z "$NOSTRIP" ]; then
- cat <<"EOREDUNDANT1" >> $startdir/build-$pkgname.sh
- strip_binaries() {
- cd $startdir/pkg
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
- xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
- xargs strip --strip-unneeded 2> /dev/null
- }
- EOREDUNDANT1
- fi
- cat <<"EOREDUNDANT2" >> $startdir/build-$pkgname.sh
- #########End Redundant Code#####################################
- #########Begin Non Redundant Code##############################
- EOREDUNDANT2
- if [[ "$source" ]]; then
- cat <<EOPREPAREDIRECTORY >>$startdir/build-$pkgname.sh
- prepare_directory() {
- mkdir \$startdir/src
- mkdir -p \$startdir/pkg/usr/src/\$pkgname-\$pkgver
- for SOURCES in \${source[@]}; do
- protocol=\$(echo \$SOURCES | sed 's|:.*||')
- if [ ! -f "\$(basename \$SOURCES)" ]; then
- if [ "\$protocol" = "http" -o "\$protocol" = "https" -o "\$protocol" = "ftp" ]; then
- echo -e "\nDownloading \$(basename \$SOURCES)\n"
- wget \$SOURCES
- if [ ! "\$?" == "0" ]; then
- echo "Download failed"
- exit 2
- fi
- else
- echo "\$SOURCES does not appear to be a url nor is it in the directory"
- exit 2
- fi
- fi
- cp -R \$(basename \$SOURCES) \$startdir/src
- if ! [ "\$protocol" = "http" -o "\$protocol" = "https" -o "\$protocol" = "ftp" ]; then
- cp -R \$startdir/\$(basename \$SOURCES) \$startdir/pkg/usr/src/\$pkgname-\$pkgver/
- fi
- if [ "\${SOURCES##*.}" == "desktop" ]; then
- [[ "\$(grep -e "^Categories=[a-zA-Z]*;" \$(basename \$SOURCES))" ]] && install -D \$startdir/\$(basename \$SOURCES) $startdir/pkg/usr/share/applications/\$(basename \$SOURCES)
- fi
- done
- }
- EOPREPAREDIRECTORY
- else
- cat <<"EOPREPAREDIRECTORY" >>$startdir/build-$pkgname.sh
- prepare_directory() {
- mkdir $startdir/src
- mkdir $startdir/pkg
- }
- EOPREPAREDIRECTORY
- fi
- if [ -z "$NOEXTRACT" ]; then
- cat <<EOEXTRACTSOURCES >>$startdir/build-$pkgname.sh
- extract_source() {
- cd \$startdir/src
- if [[ "\$(ls \$startdir/src)" ]]; then
- for FILES in \${source[@]}; do
- FILES="\$(basename \$FILES)"
- file_type=\$(file -biz "\$FILES")
- unset cmd
- case "\$file_type" in
- *application/x-tar*)
- cmd="tar -xf" ;;
- *application/x-zip*)
- cmd="unzip" ;;
- *application/x-gzip*)
- cmd="gunzip -d -f" ;;
- *application/x-bzip*)
- cmd="bunzip2 -f" ;;
- esac
- if [ "\$cmd" != "" ]; then
- echo "\$cmd \$FILES"
- \$cmd \$FILES
- fi
- done
- elif [ ! "\$source" ]; then
- echo -n "" # lame fix
- else
- echo "no files in the src directory \$startdir/src"
- exit 2
- fi
- }
- EOEXTRACTSOURCES
- fi
- sed -n '/^build()/,/^}$/p' $startdir/ZENBUILD >> $startdir/build-$pkgname.sh
- cat <<EOM >>$startdir/build-$pkgname.sh
- create_slackdesc() {
- mkdir \$startdir/pkg/install
- cat <<"EODESC" >\$startdir/pkg/install/slack-desc
- $pkgname: ${slackdesc[0]}
- $pkgname:
- $pkgname: ${slackdesc[1]}
- $pkgname: ${slackdesc[2]}
- $pkgname: ${slackdesc[3]}
- $pkgname: ${slackdesc[4]}
- $pkgname: ${slackdesc[5]}
- $pkgname: ${slackdesc[6]}
- $pkgname: ${slackdesc[7]}
- $pkgname: ${slackdesc[8]}
- $pkgname: ${slackdesc[9]}
- EODESC
- }
- EOM
- if [[ "$dotnew" ]]; then
- cat<<EOP >>$startdir/build-${pkgname}.sh
- setup_dotnew() {
- for files in ${dotnew[@]} ; do
- fullfile="\${startdir}/pkg/\${files}"
- if [ -e "\$fullfile" ]; then
- mv \$fullfile \${fullfile}.new
- else
- echo "\$fullfile was not found"
- exit 2
- fi
- done
- cat<<"EODOTNEW" >\$startdir/pkg/install/doinst.sh
- #Added by buildpkg $buildpkgver
- dotnew() {
- NEW="\${1}.new"
- OLD="\$1"
- if [ ! -e \$OLD ]; then
- mv \$NEW \$OLD
- elif [ -z "\$(cmp \$NEW \$OLD)" ]; then
- rm \$NEW
- fi
- }
- EOP
- for i in ${dotnew[@]}; do
- echo "dotnew $i" >> $startdir/build-$pkgname.sh
- done
- cat <<"EOQ" >>$startdir/build-$pkgname.sh
- EODOTNEW
- }
- EOQ
- fi
- if [[ "$(grep '^doinst\(\)' $startdir/ZENBUILD)" ]]; then
- cat <<EOPOSTINSTALL >>$startdir/build-$pkgname.sh
- setup_doinst() {
- cat <<"EODOINST" >>\$startdir/pkg/install/doinst.sh
- $(sed -n '/doinst()/,/^}$/p' $startdir/ZENBUILD)
- doinst
- EODOINST
- }
- EOPOSTINSTALL
- fi
- if [[ "$docs" ]]; then
- cat <<EOEXTRADOCS >> $startdir/build-$pkgname.sh
- copy_docs() {
- for stuff in \${docs[@]}; do
- if [ ! -d "\$startdir/pkg/usr/doc/\$pkgname-\$pkgver" ]; then
- mkdir -p \$startdir/pkg/usr/doc/\$pkgname-\$pkgver
- fi
- find \$startdir/src -type f -iname "\$stuff" -exec cp -R '{}' \$startdir/pkg/usr/doc/\$pkgname-\$pkgver \;
- done
- }
- EOEXTRADOCS
- fi
- if [[ "$extradepends" ]]; then
- unset FIRST
- for deps in ${extradepends[@]} ; do
- if [[ ! "$FIRST" ]]; then
- depstring=",${deps}"
- FIRST="1"
- continue
- fi
- depstring="${depstring},${deps}"
- done
- fi
- cat <<EODEPS1 >>$startdir/build-$pkgname.sh
- detect_dependencies() {
- echo "Detecting dependencies..."
- EODEPS1
- if [ -z "$NOREQUIREDBUILDER" ]; then
- if [ -z "$REQUIREDBUILDERFLATDEPS" ]; then
- echo ' depends=$(requiredbuilder -z $startdir/$package.tgz)' >> $startdir/build-$pkgname.sh
- else
- echo ' depends=$(requiredbuilder -r -z $startdir/$package.tgz)' >> $startdir/build-$pkgname.sh
- fi
- else
- echo ' depends=""' >> $startdir/build-$pkgname.sh
- fi
- if [[ "$lessdepends" ]]; then
- for deps in ${lessdepends[@]}; do
- cat <<EODEPS2 >>$startdir/build-$pkgname.sh
- depends="\$(echo \$depends | sed -e 's/\<${deps}\>//' -e 's/,,/,/')"
- EODEPS2
- done
- fi
- cat <<EODEPS3>>$startdir/build-$pkgname.sh
- depstring=\$depends$depstring
- unset FIRST
- for deps in \$(echo "\${depstring}" | sed 's/,/\n/g' | sort -u); do
- if [[ ! "\$FIRST" ]]; then
- finaldeps=\$deps,
- FIRST='1'
- continue
- fi
- finaldeps=\${finaldeps}\${deps},
- done
- echo "\$finaldeps" | sed -e 's/^,//' -e 's/,$//' > \$startdir/\$package.dep
- }
- EODEPS3
- cat <<EOVARIABLES >>$startdir/build-$pkgname.sh
- ####End Non Redundant Code############################
- #Variables
- startdir=\$(pwd)
- SRC=\$startdir/src
- PKG=\$startdir/pkg
- pkgname=$pkgname
- pkgver=$pkgver
- pkgrel=$pkgrel
- zenver=$zenver
- arch=$arch
- package=\$pkgname-\$pkgver-\$arch-\$zenver.\$pkgrel
- EOVARIABLES
- grep -e "^_[a-zA-Z]*=[a-zA-Z]*" $startdir/ZENBUILD >> $startdir/build-$pkgname.sh
- echo "source=(${source[@]})" >> $startdir/build-$pkgname.sh
- echo "docs=(${docs[@]})" >> $startdir/build-$pkgname.sh
- CFLAGS=${CFLAGS:-"-O2 -march=$arch -mtune=i686"}
- CXXFLAGS=${CFLAGS:-"-O2 -march=$arch -mtune=i686"}
- for FLAGS in CFLAGS CXXFLAGS; do
- echo "export $FLAGS=\"${!FLAGS}\"" >>$startdir/build-$pkgname.sh
- done
- cat <<"EOEXECUTION1" >> $startdir/build-$pkgname.sh
- #Execution
- check_for_root
- clean_old_builds
- prepare_directory
- EOEXECUTION1
- [ -z "$NOEXTRACT" ] && echo "extract_source" >>$startdir/build-$pkgname.sh
- cat <<"EOEXECUTION2">>$startdir/build-$pkgname.sh
- set_pre_permissions
- build
- if [ ! "$?" = "0" ]; then
- echo "build() failed."
- exit 2
- fi
- create_slackdesc
- EOEXECUTION2
- [[ "$dotnew" ]] && echo "setup_dotnew" >>$startdir/build-$pkgname.sh
- [[ "$(grep '^doinst\(\)' $startdir/ZENBUILD)" ]] && echo "setup_doinst" >>$startdir/build-$pkgname.sh
- [[ "$docs" ]] && echo "copy_docs" >>$startdir/build-$pkgname.sh
- cat <<"EOEXECUTION31" >> $startdir/build-$pkgname.sh
- check_for_menu_compliance
- EOEXECUTION31
- [ -z "$NOSTRIP" ] && echo "strip_binaries" >>$startdir/build-$pkgname.sh
- cat <<"EOEXECUTION32" >> $startdir/build-$pkgname.sh
- gzip_man_and_info_pages
- set_post_permissions
- copy_build_script
- create_package
- EOEXECUTION32
- [[ -z "$KEEPDEPFILE" ]] && echo "detect_dependencies" >> $startdir/build-$pkgname.sh
- cat <<"EOEXECUTION31" >> $startdir/build-$pkgname.sh
- echo "Package has been built."
- EOEXECUTION31
- if [ "$REMOVEDIRS" == "1" ]; then
- echo 'echo "Cleaning pkg and src directories"' >> $startdir/build-$pkgname.sh
- echo "clean_dirs" >> $startdir/build-$pkgname.sh
- fi
- chmod +x $startdir/build-$pkgname.sh
- echo "build-$pkgname.sh has been created"
- if [ "$EXECUTE" == "1" ]; then
- ./build-$pkgname.sh 2>&1 | tee build-$pkgname.log
- fi
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will not expire by default. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.