From ae1ecd24619fda20217113b277f83822296a616d Mon Sep 17 00:00:00 2001 From: rudson Date: Sun, 18 Feb 2007 23:17:30 +0000 Subject: mkslackbuild: release 0.9.2 git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@189 04377dda-e619-0410-9926-eae83683ac58 --- trunk/utils/mkslackbuild | 163 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 138 insertions(+), 25 deletions(-) diff --git a/trunk/utils/mkslackbuild b/trunk/utils/mkslackbuild index daefef0..effe00e 100755 --- a/trunk/utils/mkslackbuild +++ b/trunk/utils/mkslackbuild @@ -9,7 +9,7 @@ # Slackbuilds são scripts utilizados no Slackware para gerar # pacotes tgz. # -# Version 0.9.1 +# Version 0.9.2 # #-------------------------------------------------------------------- # Functions @@ -17,7 +17,16 @@ # Show ./configure --help function config_help() { - dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --title " Check ./configure --help " --textbox $CONFIG_HELP 20 75 + 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 @@ -33,8 +42,11 @@ function mk_exit() # 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 $DEPENDENCY_LIST 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 @@ -118,6 +130,8 @@ function unpkg_source() 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/'` } # Download source @@ -213,31 +227,32 @@ function edit_configure() 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]" \ + local ANS1="7" + while [ $ANS1 -ne 0 ]; do + ANS1=`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"` + 2 "View documentations" \ + 3 "PREFIX=$MK_PREFIX" \ + 4 "OPTIONS=$MK_OPTIONS" \ + 0 "Continue"` [ $? -ne 0 ] && mk_exit - case $ANS in + case $ANS1 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"` + view_docs ;; '3') - MK_OPTIONS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with configure options for compile $MK_PKGNAME" 8 60 "$MK_OPTIONS"` + MK_PREFIX=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with prefix for install $MK_PKGNAME" 8 60 "$MK_PREFIX"` ;; '4') - echo "Continue..." + MK_OPTIONS=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --inputbox "Enter with configure options for compile $MK_PKGNAME" 8 60 "$MK_OPTIONS"` ;; *) - ANS=4 + ANS1=0 ;; esac done @@ -260,6 +275,24 @@ function edit_configure() done } +# Show Documentations files +function view_docs() +{ + local MENU="" + local SELECT="" + + for i in $DOC_FILES; do + MENU="$MENU \"$i\" \"\" " + done + + ANS2=0 + while [ $ANS2 -eq 0 ]; do + SELECT=`eval "dialog --stdout --backtitle \"mkSlackBuild $PROG_VERSION [$MK_PKGNAME]\" --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() { @@ -284,7 +317,7 @@ function edit_docfiles() # Edit compiler architecture function edit_arch() { - MK_ARCH=`dialog --stdout --backtitle "mkSlackBuild documentation files below:" --inputbox "Set an architecture to compiler:" $MK_ARCH` + MK_ARCH=`dialog --stdout --backtitle "mkSlackBuild documentation files below:" --inputbox "Set an architecture to compiler:" 8 45 $MK_ARCH` } #-------------------------------------------------------------------- @@ -362,6 +395,17 @@ function make_file_sections() MAXSECTION=$INDEX } +function get_source_dialog() +{ + dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ + --yesno " Download $MK_SRCNAME? " 5 50 + if [ $? -eq 0 ]; then + download_url + else + select_source + fi +} + #-------------------------------------------------------------------- # Main functions #-------------------------------------------------------------------- @@ -381,12 +425,25 @@ function create_slackbuild() edit_arch # Get source file - dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ - --yesno " Download $MK_SRCNAME? " 5 50 - if [ $? -eq 0 ]; then - download_url + if [ ! -e $MK_SOURCEDIR/$MK_SRCNAME ]; then + get_source_dialog else - select_source + MK_SOURCE=$MK_SOURCEDIR/$MK_SRCNAME + if [ "$MK_EXTENSION" = gz ]; then + if ( bzip2 -t $MK_SOURCE ); then + echo "Ok" + else + rm $MK_SOURCE + get_source_dialog + fi + elif [ "$MK_EXTENSION" = bz2 ]; then + if ( gzip -t $MK_SOURCE ); then + echo "Ok" + else + rm $MK_SOURCE + get_source_dialog + fi + fi fi # Uncompress source @@ -436,12 +493,38 @@ function open_mkslackbuild() # Create files sections make_file_sections $MKSLACKBUILD + [ -e $BASEDIR/slack-required ] && ( cp $BASEDIR/slack-required $DEPENDENCY_LIST ) + # Main-Menu - edit_menu + #edit_menu else dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ --msgbox "$MKSLACKBUILD most be a file" 0 0 fi + + # Get source file + if [ ! -e $MK_SOURCEDIR/$MK_SRCNAME ]; then + get_source_dialog + else + MK_SOURCE=$MK_SOURCEDIR/$MK_SRCNAME + if [ "$MK_EXTENSION" = gz ]; then + if ( bzip2 -t $MK_SOURCE ); then + echo "Ok" + else + rm $MK_SOURCE + get_source_dialog + fi + elif [ "$MK_EXTENSION" = bz2 ]; then + if ( gzip -t $MK_SOURCE ); then + echo "Ok" + else + rm $MK_SOURCE + get_source_dialog + fi + fi + fi + + unpkg_source } # Save mkSlackbuild @@ -449,8 +532,6 @@ function save_mkslackbuild() { dialog --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" --infobox "mkSlackBuild save in $MKSLACKBUILD" 5 30 -# MKSLACKBUILD=$BASEDIR/$MK_PKGNAME.mkslackbuild - rm $MKSLACKBUILD 2>/dev/null echo '#!/bin/bash' > $MKSLACKBUILD echo -e "# mkSlackBuild version $MK_VERSION\n" >> $MKSLACKBUILD @@ -472,6 +553,8 @@ function save_mkslackbuild() echo " ${SECTION_FLAG[i]}" >> $MKSLACKBUILD echo "" >> $MKSLACKBUILD done + + [ -s $DEPENDENCY_LIST ] && cp $DEPENDENCY_LIST $BASEDIR/slack-required } # Edit Menu @@ -508,19 +591,37 @@ function edit_menu() 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 +} + +# Test SlackBuild script +function exec_script() +{ + return 0 +} # #-------------------------------------------------------------------- # Start Program #-------------------------------------------------------------------- # -set +x # turn off debug -PROG_VERSION=0.9.1 +# turn off debug +##set +x +# Start variables +PROG_VERSION=0.9.2 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 @@ -560,7 +661,7 @@ if [ "$MK_AUTHOR" = "[[AUTHOR NAME]]" ]; then edit_author fi -ANS0=7 +ANS0=11 while [ $ANS0 -ne 0 ]; do if [ -z $MK_PKGNAME ]; then ANS0=`dialog --stdout --backtitle "mkSlackBuild $PROG_VERSION [$MK_PKGNAME]" \ @@ -577,6 +678,9 @@ while [ $ANS0 -ne 0 ]; do "3" "Save MkSlackBuild" \ "4" "Make Slackbuild" \ "5" "Edit setions menu" \ + "6" "Edit dependency list" \ + "7" "Test SlackBuild script" \ + "8" "View doc-files" \ "0" "Exit"` EXIT_STATUS=$? fi @@ -601,6 +705,15 @@ while [ $ANS0 -ne 0 ]; do 5) edit_menu ;; + 6) + edit_dependency + ;; + 7) + exec_script + ;; + 8) + view_docs + ;; *) true ;; -- cgit v1.2.3