From a8a452e2c1cb19c0e05d8dfe810596477d4bc7b0 Mon Sep 17 00:00:00 2001 From: rudson Date: Sat, 3 Mar 2007 15:17:33 +0000 Subject: lspkg e mkbuild: alteração do nome do mkbuild e mudanças do lspkg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@200 04377dda-e619-0410-9926-eae83683ac58 --- trunk/utils/mkslackbuild | 962 ----------------------------------------------- 1 file changed, 962 deletions(-) delete mode 100755 trunk/utils/mkslackbuild (limited to 'trunk/utils/mkslackbuild') diff --git a/trunk/utils/mkslackbuild b/trunk/utils/mkslackbuild deleted file mode 100755 index b9cda66..0000000 --- a/trunk/utils/mkslackbuild +++ /dev/null @@ -1,962 +0,0 @@ -#!/bin/bash -x -# -# Script para gerar Slackbuild -# Por Rudson R. Alves -# -# Este script auxilia a criação de SlackBuilds, com o modelo -# do Luiz do Sarava Linux -# -# Slackbuilds são scripts utilizados no Slackware para gerar -# pacotes tgz. -# -# Version 0.9.10 -# -#-------------------------------------------------------------------- -# Functions -#-------------------------------------------------------------------- -# Show ./configure --help -function config_help() -{ - view_file "Check ./configure --help" $CONFIG_HELP -} - -# Show file -# INPUT: $1 string textbox -# $2 file -function view_file() -{ - [ $# -ne 2 ] && return 1 - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --title " $1 " --textbox $2 20 75 -} - -# Exit function -function mk_exit() -{ - #[ ! -z $SLACKBUILD ] && [ -e $SLACKBUILD ] && echo "SlackBuild save in $SLACKBUILD" - #[ ! -z $MKSLACKBUILD ] && [ -e $MKSLACKBUILD ] && echo "mkSlackBuild save in $SLACKBUILD" - - clean_all - exit $1 -} - -# Clear all temp files -function clean_all() -{ - [ -s $DEPENDENCY_LIST ] && cp $DEPENDENCY_LIST $BASEDIR/slack-required - - rm $AUX_TMP 2>/dev/null - rm $SLACKDESC_TMP 2>/dev/null - rm $SLACKBUILD.test 2>/dev/null - rm $DEPENDENCY_LIST 2>/dev/null - if [ ! -z $MK_PKGNAME ]; then - rm $BASEDIR/*_$MK_PKGNAME.mkbuild 2>/dev/null - rm -rf /tmp/$MK_PKGNAME 2>/dev/null - rm $CONFIG_HELP 2>/dev/null - fi -} - -# Print from file $2, the lines betwen <$1> and lines -function print_lines() -{ - [ $# -ne 2 ] && mk_exit 1 - eval "sed -n '/<$1>/,/<\/$1>/ { /<$1>/ b; /<\/$1>/ b; p; }' $2" -} - -# Print from file $2, the lines betwen <$1> and $2 lines -function print_lines_to() -{ - [ $# -ne 3 ] && mk_exit 1 - eval "sed -n '/<$1>/,/$2/ { /<$1>/ b; /$2/ b; p; }' $3" -} - -# Make slack-desc file -function mk_slackdesc() -{ - print_lines_to "slackdesc" "|-----" $SB_MODEL - echo -n $MK_PKGNAME | tr [a-z\-] " " - echo -n "|-----handy-ruler" - let N=18+${#MK_PKGNAME} - for i in `seq $N $SLACKDESC_LEN`; do - echo -n "-" - done - echo -en "|\n" - - for i in `seq 1 11`; do - echo -en "$MK_PKGNAME: \n" - done - print_lines "slackdesc" $SB_MODEL | sed '1,/\]\]/ d' -} - -# Get label status from Slackbuild model -function get_status() -{ - [ $# -ne 2 ] && mk_exit 1 - eval "sed -n '/<$1>/ p' $2 | sed 's/.*> \([a-z]\+\)/\1/'" -} - -# Get status from edited SlackBuild -# input: $1 -> section name -# output: section status and section number -function mk_status() -{ - for i in `seq 0 $MAXSECTION`;do - if [ "${SECTION_NAME[i]}" = "$1" ]; then - echo "${SECTION_FLAG[i]} $i" - return 0 - fi - done - return 1 -} - -# Edit file $3, by change string [[$1]] to $2 -function edit_file() -{ - local STR_OLD - local STR_NEW - - [ $# -ne 3 ] && mk_exit 1 - STR_OLD=$( echo $1 | sed 's/\//\\\//g' ) - STR_NEW=$( echo $2 | sed 's/\//\\\//g' ) - eval "sed 's/\[\[$STR_OLD\]\]/$STR_NEW/' $3 > $AUX_TMP" - mv $AUX_TMP $3 -} - -# Unpackage source -function unpkg_source() -{ - # FIXME: if MK_DECOMPRESSOR -ne bunzip2 or gunzip... - if [ $MK_DECOMPRESSOR = "bunzip2" -o $MK_DECOMPRESSOR = "gunzip" ]; then - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Main Menu" --infobox "Uncompress source in /tmp/$MK_PKGNAME. Wait" 3 45 - [ $? -ne 0 ] && return 100 - mkdir /tmp/$MK_PKGNAME/ 2>/dev/null - tar xvf $MK_SOURCE -C /tmp/$MK_PKGNAME/ 1>/dev/null - [ $? -ne 0 ] && mk_exit 1 - MK_TMPSRC="/tmp/$MK_PKGNAME/`ls /tmp/$MK_PKGNAME/`" - - DOC_FILES=`find $MK_TMPSRC -type f -maxdepth 1 -name "[A-Z]*" | sed 's/.*\/\(.*\)$/\1/'` - else - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --msgbox "$MK_DECOMPRESSOR not configurated..." 5 45 - fi -} - -# Download source -function download_url() -{ - clear - mkdir -p $MK_SOURCEDIR/$MK_PKGNAME 2>/dev/null - wget --limit-rate=$MK_LIMITRATE $MK_URL -P $MK_SOURCEDIR/$MK_PKGNAME/ - if [ $? -ne 0 ]; then - echo "URL error" - return 0 - fi - MK_SOURCE=$MK_SOURCEDIR/$MK_PKGNAME/$MK_SRCNAME -} - -# Select source file -function select_source() -{ - MK_SOURCE=$BASEDIR - while [ ! -f $MK_SOURCE ]; do - MK_SOURCE=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Main Menu" --title " Select source file name (use spaces to select): " --fselect "$MK_SOURCE" 10 70` - [ $? -ne 0 ] && return 100 - if [ ! -f $MK_SOURCE ]; then - MK_SOURCE="$MK_SOURCE/" - fi - done - - MK_SRCNAME=`basename $MK_SOURCE` - MK_SOURCEDIR=`dirname $MK_SOURCE` -} - -#-------------------------------------------------------------------- -# Edit functions -#-------------------------------------------------------------------- -# Edit authot, Initials and editor -function edit_author() -{ - MK_AUTHOR=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with author complite name:" 8 60 "$MK_AUTHOR"` - edit_file "AUTHOR NAME" "$MK_AUTHOR" ~/.mkslackbuild - MK_AUTHOR_INITIALS=`echo $MK_AUTHOR | sed 's/ /\n/g' | sed 's/^\([A-Z]\).*/\1/' | sed ':i; $!N; s/\n//; ti' | tr [A-Z] [a-z]` - MK_AUTHOR_INITIALS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with author assignature:" 8 60 "$MK_AUTHOR_INITIALS"` - edit_file "AUTHOR INITIALS" "$MK_AUTHOR_INITIALS" ~/.mkslackbuild - MK_EDITOR=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with editor command:" 8 60 "pico"` - edit_file "EDITOR" "$MK_EDITOR" ~/.mkslackbuild -} - -# Edit source URL -function edit_url() -{ - MK_URL=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --cancel-label "Main Menu" --inputbox "Enter with complite URL from source:" 8 60 "$MK_URL"` - [ $? -ne 0 ] && return 100 -} - -# Edit source name -function edit_source_name() -{ - # Carrega nome do arquivo - MK_SRCNAME=`basename $MK_URL` - MK_SRCNAME=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --cancel-label "Main Menu" --inputbox "Enter with complite source file name:" 8 60 "$MK_SRCNAME"` - [ $? -ne 0 ] && return 100 -} - -# Edit MK_PKGNAME, MK_VERSION and MK_EXTENSION -function edit_pkgname() -{ - # Remove nome, versão e extensão do nome da fonte - MK_SRC_NAME=`echo $MK_SRCNAME | sed -r 's/(.*)-(.*)\.(.*\..*)$/\1/'` - MK_PKGNAME=`echo $MK_SRC_NAME | tr [A-Z] [a-z]` - MK_VERSION=`echo $MK_SRCNAME | sed -r 's/(.*)-(.*)\.(.*\..*)$/\2/'` - MK_EXTENSION=`echo $MK_SRCNAME | sed -r 's/(.*)-(.*)\.(.*\..*)$/\3/'` - - # Configura nome, versão e extensão do pacote - ANS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Main Menu" --form "Check information below:" 14 52 7 \ - "Source name:" 1 1 "$MK_SRC_NAME" 1 15 30 60 \ - "Package name:" 3 1 "$MK_PKGNAME" 3 15 30 60 \ - "Version:" 5 1 "$MK_VERSION" 5 15 30 60 \ - "Extension:" 7 1 "$MK_EXTENSION" 7 15 30 60` - [ $? -ne 0 ] && return 100 - - MK_SRC_NAME=`echo $ANS | awk '{print $1}'` - MK_PKGNAME=`echo $ANS | awk '{print $2}'` - MK_VERSION=`echo $ANS | awk '{print $3}'` - MK_EXTENSION=`echo $ANS | awk '{print $4}'` -} - -# Edit MK_DECOMPRESSOR and MK_DECOMPRESSOR_TEST_FLAG -function edit_decompress_arg() -{ - # Remove nome, versão e extensão do nome da fonte - MK_DECOMPRESSOR="" - MK_DECOMPRESSOR_TEST_FLAG="" - - # Configura nome, versão e extensão do pacote - ANS3=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Main Menu" --form "Check information below:" 10 55 3 \ - "Uncompress program:" 1 1 "$MK_DECOMPRESSOR" 1 23 25 60 \ - "Uncompress test flag:" 3 1 "$MK_DECOMPRESSOR_TEST_FLAG" 3 23 25 100` - [ $? -ne 0 ] && return 100 - - MK_DECOMPRESSOR=`echo $ANS3 | awk '{print $1}'` - MK_DECOMPRESSOR_TEST_FLAG=`echo $ANS3 | awk '{print $2}'` -} - -# Edit configure options -function edit_configure() -{ - CONFIG_HELP=`mktemp -p /tmp/ config_$MK_PKGNAME.XXXXXX` - - $MK_TMPSRC/configure --help > $CONFIG_HELP - config_help - [ "$( cat $CONFIG_HELP | egrep '/usr/local')" != "" ] && MK_PREFIX=/usr || MK_PREFIX=/opt/kde - MK_OPTIONS="" - local ANS0=1 - - while [ $ANS0 -eq 1 ]; do - local ANS1="7" - while [ $ANS1 -ne 0 ]; do - ANS1=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Continue" --menu "Select one option" 0 0 0 \ - 1 "View ./configure help" \ - 2 "View documentations" \ - 3 "PREFIX=$MK_PREFIX" \ - 4 "OPTIONS=$MK_OPTIONS" \ - 0 "Continue"` - - case $ANS1 in - '1') - config_help - ;; - '2') - view_docs - ;; - '3') - MK_PREFIX=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with prefix for install $MK_PKGNAME" 8 60 "$MK_PREFIX"` - ;; - '4') - MK_OPTIONS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with configure options for compile $MK_PKGNAME" 8 60 "$MK_OPTIONS"` - ;; - *) - ANS1=0 - ;; - esac - done - - # Configure - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --title " Execute ./configure below? " --yesno "./configure --prefix=$MK_PREFIX $MK_OPTIONS" 6 70 - if [ $? -eq 0 ]; then - ( - cd $MK_TMPSRC - ./configure --prefix=$MK_PREFIX $MK_OPTIONS - ) - - echo -en "\nPress ENTER to continue" - read ANS0 - fi - - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --title " Configure line is ok? " --yesno "./configure --prefix=$MK_PREFIX $MK_OPTIONS" 6 70 - - ANS0=$? - done -} - -# Show Documentations files -function view_docs() -{ - local MENU="" - local SELECT="" - local ANS2=0 - - for i in $DOC_FILES; do - MENU="$MENU \"$i\" \"\" " - done - - while [ $ANS2 -eq 0 ]; do - SELECT=`eval "dialog --stdout --backtitle \"mkSlackBuild $PROG_VERSION [$MK_PKGNAME]\" --cancel-label \"Continue\" --title \" Documentations files \" --menu \"Select doc-file below:\" 20 45 13 $MENU"` - ANS2=$? - [ $ANS2 -eq 0 ] && view_file "File: $SELECT" $MK_TMPSRC/$SELECT - done -} - -# Edit documentations files -function edit_docfiles() -{ - [ -z $MK_TMPSRC ] && return 0 - - if [ -e $MK_TMPSRC ]; then - LIST=`( cd $MK_TMPSRC; find . -type f -maxdepth 1 | cut -c3- )` - DOCMENU="" - for i in $LIST; do - if [ "`echo NEWS TODO README AUTHORS INSTALL ChangeLog MAINTAINERS COPYING | grep $i`" != "" ]; then - DOCMENU="$DOCMENU $i \"\" on" - else - DOCMENU="$DOCMENU $i \"\" off" - fi - done - SELECTDOCS=`eval "dialog --stdout --separate-output --backtitle \"mkSlackBuild $PROG_VERSION [$MK_PKGNAME]\" --title \" Documentations files \" --cancel-label \"Continue\" --checklist \"Select documentation files below:\" 20 45 13 $DOCMENU"` - fi - - MK_DOCFILES="`echo $SELECTDOCS | sed ':i; N; s/\n/ /; bi'`" -} - -# Edit compiler architecture -function edit_arch() -{ - MK_ARCH=`dialog --stdout --backtitle "mkSlackBuild documentation files below:" --cancel-label "Main Menu" --inputbox "Set an architecture to compiler:" 8 45 $MK_ARCH` - [ $? -ne 0 ] && return 100 -} - -#-------------------------------------------------------------------- -# Mount files -#-------------------------------------------------------------------- -# Change string $1 to $2 in all files in the current directory -function change_strings() -{ - # echo "$1 -> $2" - [ $# -ne 2 ] && mk_exit 1 - eval "grep -l \"\[\[$1\]\]\" *" | while read FILE; do - edit_file "$1" "$2" $FILE - done -} - -# Build initial sections -function start_build() -{ - change_strings "SLACKBUILD AUTHOR" "$MK_AUTHOR" - change_strings "SLACKBUILD AUTHOR INITIALS" $MK_AUTHOR_INITIALS - change_strings "SOURCE NAME" "$MK_SRC_NAME" - change_strings "PROGRAM NAME" "$MK_PKGNAME" - change_strings "PACKAGE NAME" "$MK_PKGNAME" - change_strings "DECOMPRESSOR" "$MK_DECOMPRESSOR" - change_strings "DECOMPRESSOR TEST FLAG" "$MK_DECOMPRESSOR_TEST_FLAG" - change_strings "PROGRAM URL" "${MK_URL//$MK_SRCNAME}" - change_strings "ARCH" "$MK_ARCH" - change_strings "VERSION" $MK_VERSION - change_strings "SOURCE EXTENSION" ${MK_EXTENSION#tar.} - change_strings "DOWNLOAD FOLDER URL" "`dirname $MK_URL`" - change_strings "OTHER CONFIGURE ARGS" "$MK_OPTIONS" - change_strings "DOCUMENTATION FILES" "$MK_DOCFILES" - change_strings "PREFIX" "$MK_PREFIX" -} - -# Mount final SlackBuild -function mount_slackbuild() -{ - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "SlackBuild save in $SLACKBUILD" 5 30 - - rm $SLACKBUILD 2>/dev/null -# [ ! -e `dirname $SLACKBUILD` ] && mkdir `dirname $SLACKBUILD` - for i in `seq 0 $MAXSECTION`; do - if [ "${SECTION_FLAG[i]}" = "all" -o "${SECTION_FLAG[i]}" = "on" ]; then - cat ${SECTION_NAME[i]}_$MK_PKGNAME.mkbuild >> $SLACKBUILD - echo "" >> $SLACKBUILD - fi - done -} - -# Mount SlackBuild to section $1 -function mount_slackbuild_to() -{ - if [ $# -eq 1 ]; then - END_SECTION=$1 - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "SlackBuild save in $SLACKBUILD.test" 5 30 - - rm $SLACKBUILD.test 2>/dev/null -# [ ! -e `dirname $SLACKBUILD` ] && mkdir `dirname $SLACKBUILD` - let i=0 - while [ $i -le $END_SECTION ]; do - if [ "${SECTION_FLAG[i]}" = "all" -o "${SECTION_FLAG[i]}" = "on" ]; then - cat ${SECTION_NAME[i]}_$MK_PKGNAME.mkbuild >> $SLACKBUILD.test - echo "" >> $SLACKBUILD - fi - let i++ - done - echo "" >> $SLACKBUILD - fi -} - -# Make files section -function make_file_sections() -{ - THIS_MODEL=$1 - - # Create SlackBuilds-sections files - rm *_$MK_PKGNAME.mkbuild 2>/dev/null - - # Make files section - INDEX=0 - while read ITEM; do - SECTION_NAME[INDEX]="$ITEM" - - AUX=${SB_SECTION[$INDEX,0]}_${MK_PKGNAME} - SECTION_FILE=${SECTION_NAME[INDEX]}_${MK_PKGNAME}.mkbuild - rm $SECTION_FILE 2>/dev/null - - STRING=$ITEM - # Save section status flag - SECTION_FLAG[INDEX]=`get_status "$STRING" $THIS_MODEL` - - # Create sections files - print_lines "$STRING" $THIS_MODEL > $SECTION_FILE - let INDEX++ - done < <( cat $THIS_MODEL | grep '^<[a-z_0-9]\+>' | sed 's/<\(.*\)>.*$/\1/' ) - - let INDEX-- - MAXSECTION=$INDEX -} - -function get_source_dialog() -{ - if [ ! -e $MK_SOURCE ]; then - dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --yesno " Download $MK_SRCNAME? " 5 50 - if [ $? -eq 0 ]; then - download_url - else - select_source - [ $? -eq 100 ] && return 100 - fi - fi -} - - -function test_source() -{ - local TEST=1 - local ANS=0 - - while [ $TEST -ne 0 ]; do - $MK_DECOMPRESSOR $MK_DECOMPRESSOR_TEST_FLAG $MK_SOURCE - TEST=$? - if [ $TEST -ne 0 ]; then - dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --yesno "Source uncompress error. Download source again?" 6 50 - if [ $? -eq 0 ]; then - rm $MK_SOURCE - get_source_dialog - [ $? -eq 100 ] return 100 - else - TEST=0 - fi - fi - done -} - -function set_source_test() -{ - MK_SOURCE=$MK_SOURCEDIR/$MK_PKGNAME/$MK_SRCNAME - if [ "$MK_EXTENSION" = "tar.gz" -o "$MK_EXTENSION" = "gz" -o "$MK_EXTENSION" = "tgz" ]; then - MK_DECOMPRESSOR=gunzip - MK_DECOMPRESSOR_TEST_FLAG="-t" - elif [ "$MK_EXTENSION" = "tar.bz2" -o "$MK_EXTENSION" = "bz2" ]; then - MK_DECOMPRESSOR=bunzip2 - MK_DECOMPRESSOR_TEST_FLAG="-t" - else - edit_decompress_arg - [ $? -eq 100 ] && return 100 - fi -} - -# Enable MD5 or GPG signature check -function edit_signature() -{ - # GPG and MD5 test - local ANS=0 - - ANS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --menu "Select code validate type:" 0 0 0 \ - "1" "gpg signature" \ - "2" "md5sum" \ - "0" "none"` - - case $ANS in - 1) - edit_gpg - ;; - 2) - edit_md5sum - ;; - esac -} - -# Enable GPG signature check -function edit_gpg() -{ - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --msgbox "Enter with gpg minimized signing key." 5 50 - $EDITOR $MK_GPGFILEKEY -} - -# Enable MD5SUM signature check -function edit_md5sum() -{ - echo "none" -} - -#-------------------------------------------------------------------- -# Main functions -#-------------------------------------------------------------------- -# Create new Slackbuild -function create_slackbuild() -{ - # Config package URL - edit_url - [ $? -eq 100 ] && return 100 - - # Source Name - edit_source_name - [ $? -eq 100 ] && return 100 - - # Package name, version and extension - edit_pkgname - [ $? -eq 100 ] && return 100 - - # Compile arch - edit_arch - [ $? -eq 100 ] && return 100 - - # Set source test vadiables - set_source_test - [ $? -eq 100 ] && return 100 - - # Get source file - get_source_dialog - [ $? -eq 100 ] && return 100 - - # Test source - test_source - [ $? -eq 100 ] && return 100 - - # Uncompress source - unpkg_source - [ $? -eq 100 ] && return 100 - - # GPG and MD5 test -# edit_signature - - # Configure compiler options if exist - if [ -e $MK_TMPSRC/configure ]; then - edit_configure - fi - - # Edit documentation list - edit_docfiles - - # Create files sections - make_file_sections $SB_MODEL - - # Slackbuild script name - SLACKBUILD=$BASEDIR/$MK_PKGNAME.Slackbuild - - # mkSlackBuild script name - # FIXME: make an MODELDIR??? - MKSLACKBUILD=$BASEDIR/$MK_PKGNAME.mkslackbuild - - mk_slackdesc > slackdesc_$MK_PKGNAME.mkbuild - - # Edit builds sections - start_build - - # Main-Menu - edit_menu -} - -# Open mkslackbuild dialog input -function open_mkslackbuild_dialog() -{ - MKSLACKBUILD=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --title " Select source file name (use spaces to select): " \ - --fselect "$BASEDIR/" 10 70` - [ $? -ne 0 ] && return 100 - - open_mkslackbuild - [ $? -eq 100 ] || return 100 -} - -# Open mkslackbuild -function open_mkslackbuild() -{ - if [ -f $MKSLACKBUILD ]; then - # Start defaults variables - source $MKSLACKBUILD - - # SlackBuild scrit name - SLACKBUILD=$BASEDIR/$MK_PKGNAME.Slackbuild - - # Create files sections - make_file_sections $MKSLACKBUILD - - [ -e $BASEDIR/slack-required ] && ( cp $BASEDIR/slack-required $DEPENDENCY_LIST ) - - else - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --msgbox "$MKSLACKBUILD most be a mkslackbuild file" 6 45 - return 100 - fi - - # CHECK: - # Set source test vadiables - set_source_test - [ $? -eq 100 ] && return 100 - - # Get source file - get_source_dialog - [ $? -eq 100 ] && return 100 - - # Test source - test_source - - # Uncompress source - unpkg_source -} - -# Save mkSlackbuild -function save_mkslackbuild() -{ - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "mkSlackBuild save in $MKSLACKBUILD" 5 30 - - rm $MKSLACKBUILD 2>/dev/null - echo '#!/bin/bash' > $MKSLACKBUILD - echo -e "# mkSlackBuild version $MK_VERSION\n" >> $MKSLACKBUILD - echo "MK_SRC_NAME=\"$MK_SRC_NAME\"" >> $MKSLACKBUILD - echo "MK_SRCNAME=\"$MK_SRCNAME\"" >> $MKSLACKBUILD - echo "MK_PKGNAME=\"$MK_PKGNAME\"" >> $MKSLACKBUILD - echo "MK_URL=\"$MK_URL\"" >> $MKSLACKBUILD - echo "MK_AUTHOR=\"$MK_AUTHOR\"" >> $MKSLACKBUILD - echo "MK_AUTHOR_INITIALS=\"$MK_AUTHOR_INITIALS\"" >> $MKSLACKBUILD - echo "MK_VERSION=\"$MK_VERSION\"" >> $MKSLACKBUILD - echo "MK_EXTENSION=\"$MK_EXTENSION\"" >> $MKSLACKBUILD - echo "MK_DECOMPRESSOR=\"$MK_DECOMPRESSOR\"" >> $MKSLACKBUILD - echo "MK_DECOMPRESSOR_TEST_FLAG=\"$MK_DECOMPRESSOR_TEST_FLAG\"" >> $MKSLACKBUILD - echo "MK_DOCFILES=\"$MK_DOCFILES\"" >> $MKSLACKBUILD - echo "MK_OPTIONS=\"$MK_OPTIONS\"" >> $MKSLACKBUILD - echo "MK_PREFIX=\"$MK_PREFIX\"" >> $MKSLACKBUILD - #echo "MK_MD5SUM_EXT=\"$MK_MD5SUM_EXT\"" >> $MKSLACKBUILD - echo -e "return 0\n\n" >> $MKSLACKBUILD - - for i in `seq 0 $MAXSECTION`; do - echo "<${SECTION_NAME[i]}> ${SECTION_FLAG[i]}" >> $MKSLACKBUILD - cat ${SECTION_NAME[i]}_$MK_PKGNAME.mkbuild >> $MKSLACKBUILD - echo "" >> $MKSLACKBUILD - echo "" >> $MKSLACKBUILD - done - - [ -s $DEPENDENCY_LIST ] && cp $DEPENDENCY_LIST $BASEDIR/slack-required -} - -# Edit Menu -function edit_menu() -{ - ANSE=0 - while [ $ANSE -ne 1 ]; do - # Create main-menu string - EDITMENU="" - for i in `seq 0 $MAXSECTION`; do - #echo "${SECTION_NAME[i]} ${SECTION_FLAG[i]} ${SECTION_FILE[i]}" - EDITMENU="$EDITMENU ${SECTION_NAME[i]} ${SECTION_FLAG[i]}" - done - - SELECT=`eval "dialog --stdout --backtitle \"mkSlackBuild $PROG_VERSION [$MK_PKGNAME]\" --ok-label \"Edit\" --cancel-label \"Main Menu\" --menu \"Select one section to edit\" 20 40 13 $EDITMENU"` - ANSE=$? - if [ $ANSE -ne 1 ]; then - STATUS=`mk_status $SELECT` - if [ $? -ne 0 ]; then - echo "Section name error..." - mk_exit 1 - fi - FLAG=`echo $STATUS | awk '{print $1}'` - INDEX=`echo $STATUS | awk '{print $2}'` - if [ "$FLAG" = "on" ]; then - SECTION_FLAG[$INDEX]=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --radiolist "Change status from $SELECT" 0 0 0 "on" "enable section" "on" "off" "desable section" "off"` - elif [ "$FLAG" = "off" ]; then - SECTION_FLAG[$INDEX]=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --radiolist "Change status from $SELECT" 0 0 0 "on" "enable section" "off" "off" "desable section" "on"` - fi - if [ "${SECTION_FLAG[$INDEX]}" = "on" -o "${SECTION_FLAG[$INDEX]}" = "all" ]; then - $MK_EDITOR ${SELECT}_${MK_PKGNAME}.mkbuild - fi - fi - done -} - -# Test Menu -function test_menu() -{ - local ANST=0 - local SECTION=0 - local EDITMENU="" - - # Create main-menu string - for i in `seq 0 $MAXSECTION`; do - if [ "${SECTION_FLAG[i]}" = "all" -o "${SECTION_FLAG[i]}" = "on" ]; then - EDITMENU="$EDITMENU $i ${SECTION_NAME[i]}" - fi - done - - EDITMENU="all \"SlackBuild\" $EDITMENU" - - while [ "$ANST" != "1" ]; do - SECTION=`eval "dialog --stdout --backtitle \"mkSlackBuild $PROG_VERSION [$MK_PKGNAME]\" --cancel-label \"Exit\" --menu \"Select section to test end\" 20 40 13 $EDITMENU"` - ANST=$? - - if [ $ANST -ne 1 ]; then - [ "$SECTION" = "all" ] && SECTION=$MAXSECTION - mount_slackbuild_to $SECTION - - # FIXME: -> sintaxe check - clear - echo "---------------------------------------------------------" - echo " --= SINTAX CHECK =--" - sh -n $SLACKBUILD.test - if [ $? -eq 0 ]; then - echo " --= 0K =--" - DEBUG=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "no debug" --menu "Select debug level" 10 35 3 \ - "-x" "Simple debug" \ - "-xv" "More information" \ - "none" "No debug"` - - [ $? -ne 0 -o "$DEBUG" = "none" ] && DEBUG="" - - clear - echo "---------------------------------------------------------" - echo " --= START BUILDING =--" - if [ "$USER" != "root" ]; then - su -c "( sh $DEBUG $SLACKBUILD.test )" - else - ( sh $DEBUG $SLACKBUILD.test ) - fi - echo "---------------------------------------------------------" - echo " --= END =--" - - echo -n "Enter 1 to end test: " - read ANST - else - echo "Script error..." - read ANST - fi - fi - done -} - -# Dependency Menu -function menu_dependency() -{ - local ANSD=11 - while [ $ANSD -ne 0 ]; do - ANSD=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Main Menu" --menu "Main Menu:" 0 0 0 \ - "1" "Edit Dependency List" \ - "2" "Test Dependency List" \ - "0" "Main Menu"` - - [ $? -ne 0 ] && ANSD=0 - - case $ANSD in - 1) - edit_dependency - ;; - 2) - test_dependency - ;; - esac - - done -} - -# Dependency list edit -function edit_dependency() -{ - if [ ! -s $DEPENDENCY_LIST ]; then - echo -e "# Dependency list to $MK_PKGNAME\n# \n# dependency [condition] [version]]\n" > $DEPENDENCY_LIST - fi - - $MK_EDITOR $DEPENDENCY_LIST -} - -# Check dependency and comment not found dependencies -function test_dependency() -{ - local DEP_LIST="" - - if [ -s $DEPENDENCY_LIST ]; then - for i in `grep '^[^#]' $DEPENDENCY_LIST | sort | uniq`; do - if [ `ls /var/log/packages/$i-[0-9]* 2>/dev/null` ]; then - DEP_LIST="$DEP_LIST $i \"intalled\" off" - else - DEP_LIST="$DEP_LIST $i \"unintalled\" on" - fi - done - - DEP_SELECT=`eval "dialog --stdout --separate-output --backtitle \"mkSlackBuild $PROG_VERSION [$MK_PKGNAME]\" --title \" Dependency install check \" --cancel-label \"Continue\" --checklist \"Select packages to remove from dependency list:\" 20 45 13 $DEP_LIST"` - - for i in $DEP_SELECT; do - eval "sed 's/$i$/#$i/' $DEPENDENCY_LIST > $AUX_TMP " - eval "sed 's/$i /#$i /' $AUX_TMP > $DEPENDENCY_LIST" - eval "sed 's/$i\t/#$i\t/' $DEPENDENCY_LIST > $AUX_TMP" - cp $AUX_TMP $DEPENDENCY_LIST - done - fi -} - -# -#-------------------------------------------------------------------- -# Start Program -#-------------------------------------------------------------------- -# -# Turn off debug -set +x -# Start variables -PROG_VERSION=0.9.10 -LANG=us -BASEDIR=`pwd` -AUX_TMP=`mktemp -p /tmp/ aux_tmp.XXXXXX` -SLACKDESC_TMP=`mktemp -p /tmp/ slackdesc_tmp.XXXXXX` -SLACKDESC_LEN=77 -DEPENDENCY_LIST=`mktemp -p /tmp/ slack-required.XXXXXX` -if [ -e ~/.generic.mkSlackBuild ]; then - SB_MODEL=~/.generic.mkSlackBuild -elif [ -e /etc/simplepkg/generic.mkSlackBuild ]; then - SB_MODEL=/etc/simplepkg/generic.mkSlackBuild -else - echo "SlackBuild model (generic.mkSlackBuild) not found" - mk_exit 0 -fi - -[ $# -ne 0 ] && MKSLACKBUILD=$1 - -# Clear dialog -dialog --clear - -# Load/create personal definitions -if [ ! -e ~/.mkslackbuild ]; then - ( cat << EOF > ~/.mkslackbuild -#!/bin/bash -# mkslackbuild definitions -# -MK_AUTHOR="[[AUTHOR NAME]]" -MK_AUTHOR_INITIALS="[[AUTHOR INITIALS]]" -MK_EDITOR=[[EDITOR]] -MK_LIMITRATE="120k" -MK_SOURCEDIR=\`pwd\` -MK_ARCH="i468" -#MK_URL="ftp://localhost" -EOF -) -fi -source ~/.mkslackbuild -MK_SOURCEDIR=${MK_SOURCEDIR:=$BASEDIR} -MK_ARCH=${MK_ARCH:="i486"} -#MK_MD5SUM_EXT="md5sum" - -# Config Author -if [ "$MK_AUTHOR" = "[[AUTHOR NAME]]" ]; then - edit_author -fi - -if [ ! -z $MKSLACKBUILD ]; then - open_mkslackbuild -fi - -ANS0=11 -while [ $ANS0 -ne 0 ]; do - if [ -z $MK_PKGNAME ]; then - ANS0=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Exit" --menu "Main Menu:" 0 0 0 \ - "1" "Create New SlackBuild" \ - "2" "Open edited SlackBuild" \ - "0" "Exit"` - EXIT_STATUS=$? - else - ANS0=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --cancel-label "Exit" --menu "Main Menu:" 0 0 0 \ - "1" "Create New SlackBuild" \ - "2" "Open MkSlackBuild" \ - "3" "Edit Sections" \ - "4" "Dependency Menu" \ - "5" "Test Script" \ - "6" "View Doc-Files" \ - "0" "Exit and Save..."` - EXIT_STATUS=$? - fi - - if [ $EXIT_STATUS -ne 0 ]; then - ANS0=0 - fi - - case $ANS0 in - 1) - create_slackbuild - [ $? -eq 100 ] && MK_PKGNAME="" - ;; - 2) - open_mkslackbuild_dialog - [ $? -eq 100 ] && MK_PKGNAME="" - ;; - 3) - edit_menu - ;; - 4) - menu_dependency - ;; - 5) - test_menu - ;; - 6) - view_docs - ;; - *) - echo "Exit..." - ;; - esac -done - -if [ ! -z $MK_PKGNAME ]; then - MKSLACKBUILD=$BASEDIR/$MK_PKGNAME.mkslackbuild - save_mkslackbuild - mount_slackbuild -fi - -mk_exit 0 -# _________________________________END_______________________________ -- cgit v1.2.3