aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtrunk/src/lspkg15
-rw-r--r--trunk/src/mkpatch195
-rwxr-xr-xtrunk/src/mkpatch.new145
-rwxr-xr-xtrunk/src/mkpatch.old145
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