summaryrefslogtreecommitdiff
path: root/scripts/tothreaded
Unidiff
Diffstat (limited to 'scripts/tothreaded') (more/less context) (ignore 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 @@
1#!/bin/sh 1#!/bin/sh
2 2
3# PURPOSE : 3# PURPOSE :
4# 4#
5# this script converts a non-threaded control file to a threaded one 5# this script converts a non-threaded control file to a threaded one
6# by extending appropriate names with -mt as extension 6# by extending appropriate names with -mt as extension
7# 7#
8# eg abc.control becoms abc-mt.control 8# eg abc.control becoms abc-mt.control
9# 9#
10 10
11# 11#
12# make sure that the depends expression has enough spaces 12# make sure that the depends expression has enough spaces
13# expression can contian : , ( ) || && 13# expression can contian : , ( ) || &&
14# 14#
15tokenize() { 15tokenize() {
16 sed "s/,/ & /g" | sed "s/)/ & /g" | sed "s/(/ & /g" | sed "s/|/ & /g" | sed "s/&/ & /g" 16 sed "s/,/ & /g" | sed "s/)/ & /g" | sed "s/(/ & /g" | sed "s/|/ & /g" | sed "s/&/ & /g"
17} 17}
18 18
19# 19#
20# function converts package name to threaded equivalend IF the 20# function converts package name to threaded equivalend IF the
21# package file HAS a threaded version 21# package file HAS a threaded version
22# 22#
23findthreadedequiv() { 23findthreadedequiv() {
24 local isin i 24 local isin i
25 for i in $* 25 for i in $*
26 do 26 do
27 isin=`grep "^$i\$" "$ALLTHREADEDPKGSFILE"` 27 isin=`grep "^$i\$" "$ALLTHREADEDPKGSFILE"`
28 if [ -z "$isin" ] 28 if [ -z "$isin" ]
29 then 29 then
30 # no threaded package 30 # no threaded package
31 echo -n "$i " 31 echo -n "$i "
32 else 32 else
33 # threaded package 33 # threaded package
34 echo -n "${isin}-mt " 34 echo -n "${isin}-mt "
35 fi 35 fi
36 done 36 done
37 echo 37 echo
38} 38}
39 39
40# 40#
41# signature of binary files 41# signature of binary files
42# currently obsolete 42# currently obsolete
43# 43#
44# ISBINARY="*ELF*LSB*" 44# ISBINARY="*ELF*LSB*"
45 45
46usage() { 46usage() {
47 echo "Usage : tothreaded <controlfile> <ALLPackages file>" 47 echo "Usage : tothreaded <controlfile> <ALLPackages file>"
48 exit 2 48 exit 2
49} 49}
50 50
51. scripts/SpecialMTFiles 51. scripts/SpecialMTFiles
52 52
53# 53#
54# get the name of the controlfile to check for threading 54# get the name of the controlfile to check for threading
55# 55#
56if [ -z "$1" ] 56if [ -z "$1" ]
57then 57then
58 usage 58 usage
59fi 59fi
60controlfile=$1 60controlfile=$1
61shift 61shift
62 62
63case $controlfile in 63case $controlfile in
64 *-mt.control) 64 *-mt.control)
65 #already threaded 65 #already threaded
66 echo $controlfile 66 echo $controlfile
67 exit 0; 67 exit 0;
68 ;; 68 ;;
69esac 69esac
70 70
71# 71#
72# file containing list of all known threaded packages 72# file containing list of all known threaded packages
73# 73#
74if [ -z "$1" ] 74if [ -z "$1" ]
75then 75then
76 usage 76 usage
77fi 77fi
78ALLTHREADEDPKGSFILE=$1 78ALLTHREADEDPKGSFILE=$1
79shift 79shift
80 80
81# 81#
82# strip out the name of the package 82# strip out the name of the package
83# 83#
84packagename=${controlfile##*/} # path 84packagename=${controlfile##*/} # path
85packagename=${packagename%.control} # extension 85packagename=${packagename%.control} # extension
86 86
87# 87#
88# generate new control file 88# generate new control file
89# 89#
90newcontrolfile=${controlfile/\.control/-mt\.control} 90newcontrolfile=${controlfile/\.control/-mt\.control}
91 91
92# 92#
93# read all lines in original control file 93# read all lines in original control file
94# 94#
95while read line 95while read line
96do 96do
97 case $line in 97 case $line in
98 # convert some files to threaded equivalent 98 # convert some files to threaded equivalent
99 "Files:"*) 99 "Files:"*)
100 files=${line#Files:} 100 files=${line#Files:}
101 # thread-converted files 101 # thread-converted files
102 T_files=`ConvertSpecialFiles "$files"` 102 T_files=`ConvertSpecialFiles "$files"`
103 echo "Files: $T_files" 103 echo "Files: $T_files"
104 ;; 104 ;;
105 "Package: "*) 105 "Package: "*)
106 T_package=`findthreadedequiv ${line#Package: }` 106 T_package=`findthreadedequiv ${line#Package: }`
107 echo "Package: ${T_package}" 107 echo "Package: ${T_package}"
108 ;; 108 ;;
109 "Depends: "*) 109 "Depends: "*)
110 depends=`echo "${line#Depends: }" | tokenize` 110 depends=`echo "${line#Depends: }" | tokenize`
111 T_depends=`findthreadedequiv ${depends}` 111 T_depends=`findthreadedequiv ${depends}`
112 echo "Depends: $T_depends" 112 echo "Depends: $T_depends"
113 ;; 113 ;;
114 "Provides: "*) 114 "Provides: "*)
115 T_provides=`findthreadedequiv ${line#Provides: }` 115 T_provides=`findthreadedequiv ${line#Provides: }`
116 echo "Provides: $T_provides" 116 echo "Provides: $T_provides"
117 ;; 117 ;;
118 "Recommends: "*)
119 T_recommends=`findthreadedequiv ${line#Recommends: }`
120 echo "Recommends: $T_recommends"
121 ;;
118 "Conflicts: "*) 122 "Conflicts: "*)
119 conflicts=`echo "${line#Conflicts: }" | tokenize` 123 conflicts=`echo "${line#Conflicts: }" | tokenize`
120 T_conflicts=`findthreadedequiv ${conflicts}` 124 T_conflicts=`findthreadedequiv ${conflicts}`
121 echo "Conflicts: $T_conflicts" 125 echo "Conflicts: $T_conflicts"
122 ;; 126 ;;
123 *":"*) 127 *":"*)
124 echo "$line" 128 echo "$line"
125 ;; 129 ;;
126 *) # al other lines 130 *) # al other lines
127 echo " $line" 131 echo " $line"
128 ;; 132 ;;
129 esac 133 esac
130done < $controlfile > $newcontrolfile 134done < $controlfile > $newcontrolfile
131 135
132echo $newcontrolfile 136echo $newcontrolfile