summaryrefslogtreecommitdiff
path: root/scripts/tothreaded
Side-by-side diff
Diffstat (limited to 'scripts/tothreaded') (more/less context) (show whitespace changes)
-rwxr-xr-xscripts/tothreaded4
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/tothreaded b/scripts/tothreaded
index d9f8488..31ed31e 100755
--- a/scripts/tothreaded
+++ b/scripts/tothreaded
@@ -1,132 +1,136 @@
#!/bin/sh
# PURPOSE :
#
# this script converts a non-threaded control file to a threaded one
# by extending appropriate names with -mt as extension
#
# eg abc.control becoms abc-mt.control
#
#
# make sure that the depends expression has enough spaces
# expression can contian : , ( ) || &&
#
tokenize() {
sed "s/,/ & /g" | sed "s/)/ & /g" | sed "s/(/ & /g" | sed "s/|/ & /g" | sed "s/&/ & /g"
}
#
# function converts package name to threaded equivalend IF the
# package file HAS a threaded version
#
findthreadedequiv() {
local isin i
for i in $*
do
isin=`grep "^$i\$" "$ALLTHREADEDPKGSFILE"`
if [ -z "$isin" ]
then
# no threaded package
echo -n "$i "
else
# threaded package
echo -n "${isin}-mt "
fi
done
echo
}
#
# signature of binary files
# currently obsolete
#
# ISBINARY="*ELF*LSB*"
usage() {
echo "Usage : tothreaded <controlfile> <ALLPackages file>"
exit 2
}
. scripts/SpecialMTFiles
#
# get the name of the controlfile to check for threading
#
if [ -z "$1" ]
then
usage
fi
controlfile=$1
shift
case $controlfile in
*-mt.control)
#already threaded
echo $controlfile
exit 0;
;;
esac
#
# file containing list of all known threaded packages
#
if [ -z "$1" ]
then
usage
fi
ALLTHREADEDPKGSFILE=$1
shift
#
# strip out the name of the package
#
packagename=${controlfile##*/} # path
packagename=${packagename%.control} # extension
#
# generate new control file
#
newcontrolfile=${controlfile/\.control/-mt\.control}
#
# read all lines in original control file
#
while read line
do
case $line in
# convert some files to threaded equivalent
"Files:"*)
files=${line#Files:}
# thread-converted files
T_files=`ConvertSpecialFiles "$files"`
echo "Files: $T_files"
;;
"Package: "*)
T_package=`findthreadedequiv ${line#Package: }`
echo "Package: ${T_package}"
;;
"Depends: "*)
depends=`echo "${line#Depends: }" | tokenize`
T_depends=`findthreadedequiv ${depends}`
echo "Depends: $T_depends"
;;
"Provides: "*)
T_provides=`findthreadedequiv ${line#Provides: }`
echo "Provides: $T_provides"
;;
+ "Recommends: "*)
+ T_recommends=`findthreadedequiv ${line#Recommends: }`
+ echo "Recommends: $T_recommends"
+ ;;
"Conflicts: "*)
conflicts=`echo "${line#Conflicts: }" | tokenize`
T_conflicts=`findthreadedequiv ${conflicts}`
echo "Conflicts: $T_conflicts"
;;
*":"*)
echo "$line"
;;
*) # al other lines
echo " $line"
;;
esac
done < $controlfile > $newcontrolfile
echo $newcontrolfile