aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-02-06 20:45:56 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-02-06 20:45:56 +0000
commitcef023c1f08d06fa87ebdc8c0b156ddd8b5b9fc2 (patch)
treefdf342370e4b99531d14283ba7b10057c6759d68 /utils
parentce2e062fbc2846997237862add59763f2ad2be75 (diff)
downloadsimplepkg-cef023c1f08d06fa87ebdc8c0b156ddd8b5b9fc2.tar.gz
simplepkg-cef023c1f08d06fa87ebdc8c0b156ddd8b5b9fc2.tar.bz2
added mkslackbuild on utils/
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@155 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'utils')
-rwxr-xr-xutils/mkslackbuild600
1 files changed, 600 insertions, 0 deletions
diff --git a/utils/mkslackbuild b/utils/mkslackbuild
new file mode 100755
index 0000000..6a28520
--- /dev/null
+++ b/utils/mkslackbuild
@@ -0,0 +1,600 @@
+#!/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.0
+#
+#--------------------------------------------------------------------
+# Functions
+#--------------------------------------------------------------------
+# Show ./configure --help
+function config_help()
+{
+ dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --title " Check ./configure --help " --textbox $CONFIG_HELP 20 75
+}
+
+# Exit function
+function mk_exit()
+{
+ clean_all
+ exit $1
+}
+
+# Clear all temp files
+function clean_all()
+{
+ rm $AUX_TMP 2>/dev/null
+ rm $SLACKDESC_TMP 2>/dev/null
+ if [ ! -z $MK_PKGNAME ]; then
+ rm $BASEDIR/*_$MK_PKGNAME.mkbuild 2>/dev/null
+ [ -e /tmp/$MK_PKGNAME ] && rm -rf /tmp/$MK_PKGNAME
+ [ ! -z $CONFIG_HELP ] && rm $CONFIG_HELP 2>/dev/null
+ fi
+}
+
+# Print from file $2, the lines betwen <$1> and </$1> 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()
+{
+ dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \
+ --infobox "Uncompress source in /tmp/$MK_PKGNAME. Wait" 3 45
+ [ $? -ne 0 ] && mk_exit 0
+ 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/`"
+}
+
+# Download source
+function download_url()
+{
+ clear
+ wget --limit-rate=$MK_LIMITRATE $MK_URL -P $MK_SOURCEDIR/
+ if [ $? -ne 0 ]; then
+ echo "URL error"
+ return 0
+ fi
+ MK_SOURCE=$MK_SOURCEDIR/$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]" \
+ --title " Select source file name (use spaces to select): " --fselect "$MK_SOURCE" 10 70`
+ [ $? -ne 0 ] && mk_exit
+ 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]" --inputbox "Enter with complite URL from source:" 8 60 "$MK_URL"`
+ [ $? -ne 0 ] && mk_exit 0
+}
+
+# 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]" --inputbox "Enter with source file name:" 8 60 "$MK_SRCNAME"`
+ [ $? -ne 0 ] && mk_exit 0
+}
+
+# Edit MK_PKGNAME, MK_VERSION and MK_EXTENSION
+function edit_pkgname()
+{
+ # Remove nome, versão e extensão do nome da fonte
+ MK_PKGNAME=`echo $MK_SRCNAME | sed -r 's/(.*)-(.*)\.(.*\..*)$/\1/' | 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]" \
+ --form "Check information below:" 12 70 5 \
+ "Package name:" 1 1 "$MK_PKGNAME" 1 15 30 60 \
+ "Version:" 3 1 "$MK_VERSION" 3 15 30 100 \
+ "Extension:" 5 1 "$MK_EXTENSION" 5 15 30 8`
+ [ $? -ne 0 ] && mk_exit 0
+
+ MK_PKGNAME=`echo $ANS | awk '{print $1}'`
+ MK_VERSION=`echo $ANS | awk '{print $2}'`
+ MK_EXTENSION=`echo $ANS | awk '{print $3}'`
+}
+
+# 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 ANS="0"
+ while [ $ANS -ne 4 ]; do
+ ANS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \
+ --menu "Select one option" 0 0 0 \
+ 1 "View ./configure help" \
+ 2 "PREFIX=$MK_PREFIX" \
+ 3 "OPTIONS=$MK_OPTIONS" \
+ 4 "Continue"`
+ [ $? -ne 0 ] && mk_exit
+
+ case $ANS in
+ '1')
+ config_help
+ ;;
+ '2')
+ MK_PREFIX=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with prefix for install $MK_PKGNAME" 8 60 "$MK_PREFIX"`
+ ;;
+ '3')
+ MK_OPTIONS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with configure options for compile $MK_PKGNAME" 8 60 "$MK_OPTIONS"`
+ ;;
+ '4')
+ echo "Continue..."
+ ;;
+ *)
+ ANS=4
+ ;;
+ 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
+}
+
+# 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 | 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 \" --checklist \"Select documentation files below:\" 20 45 13 $DOCMENU"`
+ fi
+
+ MK_DOCFILES="$SELECTDOCS"
+}
+
+#--------------------------------------------------------------------
+# 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 "SOURCE NAME" "${MK_SRCNAME//.$MK_EXTENSION}"
+ change_strings "PROGRAM NAME" "$MK_PKGNAME"
+ change_strings "PACKAGE NAME" "$MK_PKGNAME"
+ change_strings "PROGRAM URL" "$MK_URL"
+ change_strings "AUTHOR" "$MK_AUTHOR"
+ change_strings "AUTHOR INITIALS" $MK_AUTHOR_INITIALS
+ change_strings "VERSION" $MK_VERSION
+ change_strings "SOURCE EXTENSION" $MK_EXTENSION
+ 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..." 5 30
+
+ rm $SLACKBUILD 2>/dev/null
+ 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
+}
+
+# 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_]\+>' | sed 's/<\(.*\)>.*$/\1/' )
+
+ let INDEX--
+ MAXSECTION=$INDEX
+}
+
+#--------------------------------------------------------------------
+# Main functions
+#--------------------------------------------------------------------
+# Create new Slackbuild
+function create_slackbuild()
+{
+ # Config package URL
+ edit_url
+
+ # Source Name
+ edit_source_name
+
+ # Package name, version and extension
+ edit_pkgname
+
+ # Get source file
+ dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \
+ --yesno " Download $MK_SRCNAME? " 5 50
+ if [ $? -eq 0 ]; then
+ download_url
+ else
+ select_source
+ fi
+
+ # Uncompress source
+ unpkg_source
+
+ # Configure compiler options if exist .configure
+ 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=$MK_SLACKBUILDDIR/$MK_PKGNAME.Slackbuild
+
+ mk_slackdesc > slackdesc_$MK_PKGNAME.mkbuild
+
+ # Edit builds sections
+ start_build
+
+ # Main-Menu
+ edit_menu
+}
+
+# Open mkslackbuild
+function open_mkslackbuild()
+{
+ MKFILE=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \
+ --title " Select source file name (use spaces to select): " \
+ --fselect "$BASEDIR/" 10 70`
+ [ $? -ne 0 ] && mk_exit 1
+
+ if [ -f $MKFILE ]; then
+ # Start defaults variables
+ source $MKFILE
+
+ # SlackBuild scrit name
+ SLACKBUILD=$MK_SLACKBUILDDIR/$MK_PKGNAME.Slackbuild
+
+ # Create files sections
+ make_file_sections $MKFILE
+
+ # Main-Menu
+ edit_menu
+ else
+ dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \
+ --msgbox "$MKFILE most be a file" 0 0
+ fi
+}
+
+# Save mkSlackbuild
+function save_mkslackbuild()
+{
+ dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "mkSlackBuild save..." 5 30
+
+ MKSLACKBUILD=$BASEDIR/$MK_PKGNAME.mkslackbuild
+
+ rm $MKSLACKBUILD 2>/dev/null
+ echo '#!/bin/bash' > $MKSLACKBUILD
+ echo -e "# mkSlackBuild version $MK_VERSION\n" >> $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_DOCFILES=\"$MK_DOCFILES\"" >> $MKSLACKBUILD
+ echo "MK_OPTIONS=\"$MK_OPTIONS\"" >> $MKSLACKBUILD
+ echo "MK_PREFIX=\"$MK_PREFIX\"" >> $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 "</${SECTION_NAME[i]}> ${SECTION_FLAG[i]}" >> $MKSLACKBUILD
+ echo "" >> $MKSLACKBUILD
+ done
+}
+
+# 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]\" --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
+}
+
+
+#
+#--------------------------------------------------------------------
+# Start Program
+#--------------------------------------------------------------------
+#
+set +x
+PROG_VERSION=0.9.0
+LANG=us
+BASEDIR=`pwd`
+AUX_TMP=`mktemp -p /tmp/ aux_tmp.XXXXXX`
+SLACKDESC_TMP=`mktemp -p /tmp/ slackdesc_tmp.XXXXXX`
+SLACKDESC_LEN=77
+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
+
+# 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="100k"
+MK_SOURCEDIR=\`pwd\`
+#MK_URL="ftp://localhost"
+#MK_SLACKBUILDDIR=/slackbuild-dir
+EOF
+)
+fi
+source ~/.mkslackbuild
+MK_SOURCEDIR=${MK_SOURCEDIR:=$BASEDIR}
+MK_SLACKBUILDDIR=${MK_SLACKBUILDDIR:=$BASEDIR}
+
+# Config Author
+if [ "$MK_AUTHOR" = "[[AUTHOR NAME]]" ]; then
+ edit_author
+fi
+
+ANS0=7
+while [ $ANS0 -ne 0 ]; do
+ if [ -z $MK_PKGNAME ]; then
+ ANS0=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \
+ --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]" \
+ --menu "Main Menu:" 0 0 0 \
+ "1" "Create New SlackBuild" \
+ "2" "Open MkSlackBuild" \
+ "3" "Save MkSlackBuild" \
+ "4" "Make Slackbuild" \
+ "5" "Edit setions menu" \
+ "0" "Exit"`
+ EXIT_STATUS=$?
+ fi
+
+ if [ $EXIT_STATUS -ne 0 ]; then
+ mk_exit $EXIT_STATUS
+ fi
+
+ case $ANS0 in
+ 1)
+ create_slackbuild
+ ;;
+ 2)
+ open_mkslackbuild
+ ;;
+ 3)
+ save_mkslackbuild
+ ;;
+ 4)
+ mount_slackbuild
+ ;;
+ 5)
+ edit_menu
+ ;;
+ *)
+ true
+ ;;
+ esac
+done
+
+if [ ! -z $MK_PKGNAME ]; then
+ MKSLACKBUILD=$BASEDIR/$MK_PKGNAME.mkslackbuild
+ if [ ! -e $MKSLACKBUILD ]; then
+ save_mkslackbuild
+ fi
+fi
+
+mk_exit 0
+# _________________________________END_______________________________