diff options
| author | rudson <rudson@04377dda-e619-0410-9926-eae83683ac58> | 2009-06-09 13:06:05 +0000 | 
|---|---|---|
| committer | rudson <rudson@04377dda-e619-0410-9926-eae83683ac58> | 2009-06-09 13:06:05 +0000 | 
| commit | 33da53d2d881d85cfdeb97910c16c71902749c58 (patch) | |
| tree | dab478124fefe5916bcedbefcd337c918c1c6252 /trunk/src | |
| parent | 8ef1779df7c60354a112729c072cb76e62a2232d (diff) | |
| download | simplepkg-33da53d2d881d85cfdeb97910c16c71902749c58.tar.gz simplepkg-33da53d2d881d85cfdeb97910c16c71902749c58.tar.bz2  | |
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@810 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'trunk/src')
| -rwxr-xr-x | trunk/src/lspkg | 15 | ||||
| -rw-r--r-- | trunk/src/mkpatch | 195 | ||||
| -rwxr-xr-x | trunk/src/mkpatch.new | 145 | ||||
| -rwxr-xr-x | trunk/src/mkpatch.old | 145 | 
4 files changed, 252 insertions, 248 deletions
diff --git a/trunk/src/lspkg b/trunk/src/lspkg index e35baea..c5e4ec8 100755 --- a/trunk/src/lspkg +++ b/trunk/src/lspkg @@ -36,11 +36,16 @@ function usage {      echo "  options are: -   -v, --view: view installed package contents -   -p, --print: print the contents of a package file -   -r, --remove: remove matching packages -   -s, --search: search a file under installed packages -   -d, --description: show matching packages' descriptions +   -v, --view <package_name> +            view installed package contents +   -p, --print <package_name> +            print the contents of a package file +   -r, --remove <package_name> +            remove matching packages +   -s, --search <file_name> +            search a file under installed packages +   -d, --description <package_name> +            show matching packages' descriptions  "  } diff --git a/trunk/src/mkpatch b/trunk/src/mkpatch index b800a04..bbf990b 100644 --- a/trunk/src/mkpatch +++ b/trunk/src/mkpatch @@ -1,6 +1,6 @@  #!/bin/bash  # -# MKPatch 2.0.0: Simple patch program to .mkbuild models +# mkpatch: Simple patch program to .mkbuild models  # feedback: rudsonaalves at yahoo.com.br | gpl  #  #  mkbuild is free software; you can redistribute it and/or modify it under the @@ -20,127 +20,126 @@  #   - #2 Source_File  #  # Version: -PROG_VERSION=2.0 +PROG_VERSION=1.1  BASENAME=`basename $0` -if [ "$1" = "--help" -o "$1" = "-h" ]; then -    echo "Use: $BASENAME <diff_file> <source_file>" -    exit $ERROR_HELP -fi +function get_line { -# check number of parameters -[ $# -ne 2 ] && exit 102 +    # get a line $1 from file $2 +    [ $# -ne 2 ] && exit $ERROR_PAR_NUMBER +    ! is_number $1 && exit $ERROR_NOT_NUMBER +    [ ! -e $2 ] && exit $ERROR_FILE_NOTFOUND -# check diff_file exit -[ ! -e $1 ] && exit 100 +    sed "$1 q;d" $2 +} -# check source_file exit -[ ! -e $2 ] && exit 100 +function get_diff_line { -# Change IFS to <ENTER> only -OLD_IFS=$IFS -IFS=' -' +    # get diff line e return: +    #  - Action in Diff_Action +    #  - Diff Line in Diff_Str_Line +    if [ $1 -gt $Diff_N_Lines ]; then +        Diff_Action=" " +        Diff_Str_Line="" +        return 0 +    fi +    Line=`get_line $1 $2` +    Diff_Action=`echo "$Line" | cut -c1` +    Diff_Str_Line=`echo "$Line" | cut -c2-` +} -# Read file patch -index=0 -while read line; do     -    Diff_lines[index]="`echo $line | cut -c2-`" -    Diff_action[index]="`echo $line | cut -c1`" -    let index++ -done < $1 -let Diff_n_lines=index-1 -#for index in `seq 1 $Diff_n_lines`; do -#    echo "Action:"${Diff_action[index]}"<  Line:"${Diff_lines[index]}"<" -#done +# ---------------------------------------------------------------- +# ------------------- mkpatch program ---------------------------- +# common.sh library start +COMMON_SH="/usr/libexec/simplepkg/common.sh" +if [ -f "$COMMON_SH" ]; then +  source $COMMON_SH +else +  echo "$BASENAME: file $COMMON_SH not found. Check your $BASENAME installation" +fi -# Read source file -index=0 -while read line; do -    Source_lines[index]="$line" -    let index++ -done < $2 -let Source_n_lines=index-1 +# Load error codes +error_codes +# ---------------- -#for index in `seq 1 $Source_n_lines`; do -#    echo "${Source_lines[index]}" -#done +if [ "$1" = "--help" -o "$1" = "-h" ]; then +    echo "Use: $BASENAME <diff_file> <source_file>" +    exit $ERROR_HELP +fi + +# Check input parameters +[ $# -ne 2 ] && exit $ERROR_PAR_NUMBER +[ ! -e $1 ] && exit $ERROR_FILE_NOTFOUND +[ ! -e $2 ] && exit $ERROR_FILE_NOTFOUND -IFS=$OLD_IFS +# Start variables +Diff_File=$1 +Source_File=$2 +Diff_N_Lines=`wc -l $1 | cut -f1 -d" "` +Source_N_Lines=`wc -l $2 | cut -f1 -d" "` -Source_index=0 -Diff_index=0 -Diff_pointer=0 -Status_diff=0 +# Start vars +Diff_Line=1 +Diff_Pointer=1 +Status_Diff=0 -Output="" -Output_index=0 +# Get frist Diff_File line +get_diff_line $Diff_Line $Diff_File || exit $? -#echo -e "\n\nStart Patch...\n\n" -#set -x -while [ $Source_index -le $Source_n_lines -a $Diff_index -le $Diff_n_lines ]; do +Source_Line=1 +# Get frist Source_File line +Source_Str_Line=`get_line $Source_Line $Source_File` || exit $? +while [ $Source_Line -le $Source_N_Lines ];  do      # make Actions -    #echo ">${Diff_action[Diff_index]}<" -    case "${Diff_action[Diff_index]}" in +    case $Diff_Action in          '-') -            if [ "${Source_lines[Source_index]}" == "${Diff_lines[Diff_index]}" ]; then -                Status_diff=1 -                let Diff_index++ +            if [ "$Source_Str_Line" = "$Diff_Str_Line" ]; then +                Status_Diff=1 +                let Diff_Line++              else -                Diff_index=$Diff_pointer -                Status_diff=0 -                Output[Output_index]="${Source_lines[Souce_index]}" -                let Output_index++ +                Diff_Line=$Diff_Pointer +                Status_Diff=0 +                echo "$Source_Str_Line"              fi -            let Source_index++ -            ;; +            get_diff_line $Diff_Line $Diff_File || exit $? +            let Source_Line++ +            Source_Str_Line=`get_line $Source_Line $Source_File` || exit $? +        ;;          '+') -            Output[Output_index]="${Diff_lines[Diff_index]}" -            let Diff_index++ -            let Output_index++ -            ;; +            echo "$Diff_Str_Line" +            let Diff_Line++ +            get_diff_line $Diff_Line $Diff_File || exit $? +        ;;          ' ') -            if [ "${Source_lines[Source_index]}" == "${Diff_lines[Diff_index]}" ]; then -                Status_diff=1 -                let Diff_index++ +            if [ "$Source_Str_Line" = "$Diff_Str_Line" ]; then +                Status_Diff=1 +                let Diff_Line++              else -                Status_diff=0 -                Diff_index=$Diff_pointer +                Status_Diff=0 +                Diff_Line=$Diff_Pointer              fi -            Output[Output_index]="${Source_lines[Source_index]}" -            let Output_index++ -            let Source_index++ -            ;; +            echo "$Source_Str_Line" +            get_diff_line $Diff_Line $Diff_File || exit $? +            let Source_Line++ +            Source_Str_Line=`get_line $Source_Line $Source_File` || exit $? +        ;;          '=') -            let Diff_index++ -            Status_diff=0 -            Diff_pointer=$Diff_index -            ;; -        '*') +            let Diff_Line++ +            Status_Diff=0 +            Diff_Pointer=$Diff_Line +            get_diff_line $Diff_Line $Diff_File || exit $? +        ;; +        *)              echo "Invalid diff action." -            exit 600 -            ;; +            exit $ERROR_MKPATCH +        ;;      esac -    #read ANS; clear -done -#set -x -if [ $Diff_index -gt $Diff_n_lines -a $Source_index -le $Source_n_lines ]; then -    for index in `seq $Source_index $Source_n_lines`; do -        Output[Output_index]="${Source_lines[index]}" -        let Output_index++ -    done -elif [ $Diff_index -le $Diff_n_lines ]; then -    # Make others addline "+" in the end file -    while [ "${Diff_Action[Diff_index]}" == "+" ]; do -        Output[Output_index]="${Diff_lines[Diff_index]}" -        let Diff_index++ -        let Output_index++ -    done -fi -#exit 1 -# Print Output file -for index in `seq 1 $Output_index`; do -    echo "${Output[$index-1]}"  done +# Make others addline "+" in the end file +while [ "$Diff_Action" = "+" -a $Diff_Line -le $Diff_N_Lines ]; do +    echo "$Diff_Str_Line" +    let Diff_Line++ +    get_diff_line $Diff_Line $Diff_File || exit $? +done diff --git a/trunk/src/mkpatch.new b/trunk/src/mkpatch.new new file mode 100755 index 0000000..cacab52 --- /dev/null +++ b/trunk/src/mkpatch.new @@ -0,0 +1,145 @@ +#!/bin/bash +# +# MKPatch 2.0.0: Simple patch program to .mkbuild models +# feedback: rudsonaalves at yahoo.com.br | gpl +# +#  mkbuild is free software; you can redistribute it and/or modify it under the +#  terms of the GNU General Public License as published by the Free Software +#  Foundation; either version 2 of the License, or any later version. +# +#  mkbuild is distributed in the hope that it will be useful, but WITHOUT ANY +#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details. +# +#  You should have received a copy of the GNU General Public License along with +#  this program; if not, write to the Free Software Foundation, Inc., 59 Temple +#  Place - Suite 330, Boston, MA 02111-1307, USA +# +# Input: +#   - $1 Diff_File +#   - #2 Source_File +# +# Version: +PROG_VERSION=2.0 +BASENAME=`basename $0` + +# Errors codes. From common.sh +ERROR_FILE_NOTFOUND=${ERROR_FILE_NOTFOUND:=100} +ERROR_PAR_NUMBER=${ERROR_PAR_NUMBER:=102} +ERROR_MKPATCH=${ERROR_MKPATCH:=600} + +# check input arguments +if [ "$1" = "--help" -o "$1" = "-h" ]; then +    echo "Use: $BASENAME <diff_file> <source_file>" +    exit $ERROR_HELP +fi + +# check number of parameters +[ $# -ne 2 ] && exit $ERROR_PAR_NUMBER + +# check diff_file exit +[ ! -e $1 ] && exit $ERROR_FILE_NOTFOUND + +# check source_file exit +[ ! -e $2 ] && exit $ERROR_FILE_NOTFOUND + +# Change IFS value to <ENTER> only +OLD_IFS=$IFS +IFS=' +' + +# Read vector from patch file +index=0 +while read line; do +    Diff_lines[index]="`echo $line | cut -c2-`" +    Diff_action[index]="`echo $line | cut -c1`" +    let index++ +done < $1 +let Diff_n_lines=index-1 + +# Read vector from source file +index=0 +while read line; do +    Source_lines[index]="$line" +    let index++ +done < $2 +let Source_n_lines=index-1 + +# Rescue IFS value +IFS=$OLD_IFS + +# Stating variables +Source_index=0 +Diff_index=0 +Diff_pointer=0 +Status_diff=0 + +# Output vector +Output="" +Output_index=0 + +# Apply patch +while [ $Source_index -le $Source_n_lines -a $Diff_index -le $Diff_n_lines ]; do +    # make Actions +    case "${Diff_action[Diff_index]}" in +        '-') +            if [ "${Source_lines[Source_index]}" == "${Diff_lines[Diff_index]}" ]; then +                Status_diff=1 +                let Diff_index++ +            else +                Diff_index=$Diff_pointer +                Status_diff=0 +                Output[Output_index]="${Source_lines[Souce_index]}" +                let Output_index++ +            fi +            let Source_index++ +            ;; +        '+') +            Output[Output_index]="${Diff_lines[Diff_index]}" +            let Diff_index++ +            let Output_index++ +            ;; +        ' ') +            if [ "${Source_lines[Source_index]}" == "${Diff_lines[Diff_index]}" ]; then +                Status_diff=1 +                let Diff_index++ +            else +                Status_diff=0 +                Diff_index=$Diff_pointer +            fi +            Output[Output_index]="${Source_lines[Source_index]}" +            let Output_index++ +            let Source_index++ +            ;; +        '=') +            let Diff_index++ +            Status_diff=0 +            Diff_pointer=$Diff_index +            ;; +        '*') +            echo "Invalid diff action." +            exit $ERROR_MKPATCH +            ;; +    esac +done + +# Check end of file mkSlackBuild +if [ $Diff_index -gt $Diff_n_lines -a $Source_index -le $Source_n_lines ]; then +    # write the rest of mkSlackBuild in Output vector +    for index in `seq $Source_index $Source_n_lines`; do +        Output[Output_index]="${Source_lines[index]}" +        let Output_index++ +    done +elif [ $Diff_index -le $Diff_n_lines ]; then +    # Write others addlines, "+", in Output vector +    while [ "${Diff_Action[Diff_index]}" == "+" ]; do +        Output[Output_index]="${Diff_lines[Diff_index]}" +        let Diff_index++ +        let Output_index++ +    done +fi + +# Print Output file +for index in `seq 1 $Output_index`; do +    echo "${Output[$index-1]}" +done diff --git a/trunk/src/mkpatch.old b/trunk/src/mkpatch.old deleted file mode 100755 index bbf990b..0000000 --- a/trunk/src/mkpatch.old +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/bash -# -# mkpatch: Simple patch program to .mkbuild models -# feedback: rudsonaalves at yahoo.com.br | gpl -# -#  mkbuild is free software; you can redistribute it and/or modify it under the -#  terms of the GNU General Public License as published by the Free Software -#  Foundation; either version 2 of the License, or any later version. -# -#  mkbuild is distributed in the hope that it will be useful, but WITHOUT ANY -#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details. -# -#  You should have received a copy of the GNU General Public License along with -#  this program; if not, write to the Free Software Foundation, Inc., 59 Temple -#  Place - Suite 330, Boston, MA 02111-1307, USA -# -# Input: -#   - $1 Diff_File -#   - #2 Source_File -# -# Version: -PROG_VERSION=1.1 -BASENAME=`basename $0` - -function get_line { - -    # get a line $1 from file $2 -    [ $# -ne 2 ] && exit $ERROR_PAR_NUMBER -    ! is_number $1 && exit $ERROR_NOT_NUMBER -    [ ! -e $2 ] && exit $ERROR_FILE_NOTFOUND - -    sed "$1 q;d" $2 -} - -function get_diff_line { - -    # get diff line e return: -    #  - Action in Diff_Action -    #  - Diff Line in Diff_Str_Line -    if [ $1 -gt $Diff_N_Lines ]; then -        Diff_Action=" " -        Diff_Str_Line="" -        return 0 -    fi -    Line=`get_line $1 $2` -    Diff_Action=`echo "$Line" | cut -c1` -    Diff_Str_Line=`echo "$Line" | cut -c2-` -} - - -# ---------------------------------------------------------------- -# ------------------- mkpatch program ---------------------------- -# common.sh library start -COMMON_SH="/usr/libexec/simplepkg/common.sh" -if [ -f "$COMMON_SH" ]; then -  source $COMMON_SH -else -  echo "$BASENAME: file $COMMON_SH not found. Check your $BASENAME installation" -fi - -# Load error codes -error_codes -# ---------------- - -if [ "$1" = "--help" -o "$1" = "-h" ]; then -    echo "Use: $BASENAME <diff_file> <source_file>" -    exit $ERROR_HELP -fi - -# Check input parameters -[ $# -ne 2 ] && exit $ERROR_PAR_NUMBER -[ ! -e $1 ] && exit $ERROR_FILE_NOTFOUND -[ ! -e $2 ] && exit $ERROR_FILE_NOTFOUND - -# Start variables -Diff_File=$1 -Source_File=$2 -Diff_N_Lines=`wc -l $1 | cut -f1 -d" "` -Source_N_Lines=`wc -l $2 | cut -f1 -d" "` - -# Start vars -Diff_Line=1 -Diff_Pointer=1 -Status_Diff=0 - -# Get frist Diff_File line -get_diff_line $Diff_Line $Diff_File || exit $? - -Source_Line=1 -# Get frist Source_File line -Source_Str_Line=`get_line $Source_Line $Source_File` || exit $? -while [ $Source_Line -le $Source_N_Lines ];  do -    # make Actions -    case $Diff_Action in -        '-') -            if [ "$Source_Str_Line" = "$Diff_Str_Line" ]; then -                Status_Diff=1 -                let Diff_Line++ -            else -                Diff_Line=$Diff_Pointer -                Status_Diff=0 -                echo "$Source_Str_Line" -            fi -            get_diff_line $Diff_Line $Diff_File || exit $? -            let Source_Line++ -            Source_Str_Line=`get_line $Source_Line $Source_File` || exit $? -        ;; -        '+') -            echo "$Diff_Str_Line" -            let Diff_Line++ -            get_diff_line $Diff_Line $Diff_File || exit $? -        ;; -        ' ') -            if [ "$Source_Str_Line" = "$Diff_Str_Line" ]; then -                Status_Diff=1 -                let Diff_Line++ -            else -                Status_Diff=0 -                Diff_Line=$Diff_Pointer -            fi -            echo "$Source_Str_Line" -            get_diff_line $Diff_Line $Diff_File || exit $? -            let Source_Line++ -            Source_Str_Line=`get_line $Source_Line $Source_File` || exit $? -        ;; -        '=') -            let Diff_Line++ -            Status_Diff=0 -            Diff_Pointer=$Diff_Line -            get_diff_line $Diff_Line $Diff_File || exit $? -        ;; -        *) -            echo "Invalid diff action." -            exit $ERROR_MKPATCH -        ;; -    esac -done - -# Make others addline "+" in the end file -while [ "$Diff_Action" = "+" -a $Diff_Line -le $Diff_N_Lines ]; do -    echo "$Diff_Str_Line" -    let Diff_Line++ -    get_diff_line $Diff_Line $Diff_File || exit $? -done  | 
