/[PAMELA software]/yoda/install-sh
ViewVC logotype

Contents of /yoda/install-sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6.0 - (show annotations) (download)
Tue Feb 7 17:10:40 2006 UTC (18 years, 9 months ago) by kusanagi
Branch: MAIN
CVS Tags: YODA6_2/01, YODA6_2/00, YODA6_3/19, YODA6_3/18, YODA6_3/13, YODA6_3/12, YODA6_3/11, YODA6_3/10, YODA6_3/17, YODA6_3/16, YODA6_3/15, YODA6_3/14, YODA6_3/06, YODA6_1/00, YODA6_0/00, YODA6_3/04, YODA6_3/05, YODA6_3/20, YODA6_3/07, YODA6_3/00, YODA6_3/01, YODA6_3/02, YODA6_3/03, YODA6_3/08, YODA6_3/09, HEAD
Changes since 5.0: +0 -0 lines
Several new features in this revision:
a) all the packets are conform to the Mass Memory Format specifications (http://people.roma2.infn.it/~cpu/Mass_Memory_Format.html)
b) unpacking either using the old files structure OR the new one file unpacking.
c) parametrized root files compression factor
d) deleting of the following packet: TofTest, TrkTest, TrkEvent.
e) the Tracker routines now work without the use of temp files.

The point a) allow Yoda to unpack in the root file all the packets generated by the CPU. According to the MassMemoryFormat; that is three possible data are available:

1) almost explicit structure of the packet (like for Log, Tracker, Mcmd, etc....);
2) dummy data collection structure (InitHeader, InitTrailer, CalibHeader, CalibTrailer);
3) just the data of the packet (almost all Alarm and Init procedures). The class regarding this packets have only one parameters, a TArrayC class, which contain the data-block included in the packet (tat is the data below the packet Header).

The point b) has been implemented as a consequence of an agreement about a more compact structure of the unpacked data. Up to now the structure of each unpacked data consisted of a folder, named after the packet type, and three files: xxx.Header.root, xxx.NamePacket.root, xxx.Registry.root.
Starting from this release YODA, by default will unpack the data in a unique root file. The structure of this file will consist of:
- several TTree(s) named after the packet type;
- into each TTree are foreseen three TBranche(s):
    - 'Header'  (the old xxx.Header.root file)
    - 'NameOfThePacket' (the old xxx.Event.root file or the xxx.Event.DETECTOR.root)
    - 'Registry' (the old xxx.Registry.root file)

Anyway is still possible, but deprecated, to unpack using the old structure, passing to the "yoda" command the optional parameter "-multifile"

The point c) has been implemented because is well know that writing time in a TTree is as much fast as much lower is the compression factor for the root file; anyway for a PAMELA dat file, a compression equal to 0 will generate a root file which will be more than two times the original size. To modify the compression parameter just add the optional parameter "-c [0-9]" to the yoda command line.

1 #!/bin/sh
2 #
3 # install - install a program, script, or datafile
4 #
5 # This originates from X11R5 (mit/util/scripts/install.sh), which was
6 # later released in X11R6 (xc/config/util/install.sh) with the
7 # following copyright and license.
8 #
9 # Copyright (C) 1994 X Consortium
10 #
11 # Permission is hereby granted, free of charge, to any person obtaining a copy
12 # of this software and associated documentation files (the "Software"), to
13 # deal in the Software without restriction, including without limitation the
14 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
15 # sell copies of the Software, and to permit persons to whom the Software is
16 # furnished to do so, subject to the following conditions:
17 #
18 # The above copyright notice and this permission notice shall be included in
19 # all copies or substantial portions of the Software.
20 #
21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
25 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
26 # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 #
28 # Except as contained in this notice, the name of the X Consortium shall not
29 # be used in advertising or otherwise to promote the sale, use or other deal-
30 # ings in this Software without prior written authorization from the X Consor-
31 # tium.
32 #
33 #
34 # FSF changes to this file are in the public domain.
35 #
36 # Calling this script install-sh is preferred over install.sh, to prevent
37 # `make' implicit rules from creating a file called install from it
38 # when there is no Makefile.
39 #
40 # This script is compatible with the BSD install script, but was written
41 # from scratch. It can only install one file at a time, a restriction
42 # shared with many OS's install programs.
43
44
45 # set DOITPROG to echo to test this script
46
47 # Don't use :- since 4.3BSD and earlier shells don't like it.
48 doit="${DOITPROG-}"
49
50
51 # put in absolute paths if you don't have them in your path; or use env. vars.
52
53 mvprog="${MVPROG-mv}"
54 cpprog="${CPPROG-cp}"
55 chmodprog="${CHMODPROG-chmod}"
56 chownprog="${CHOWNPROG-chown}"
57 chgrpprog="${CHGRPPROG-chgrp}"
58 stripprog="${STRIPPROG-strip}"
59 rmprog="${RMPROG-rm}"
60 mkdirprog="${MKDIRPROG-mkdir}"
61
62 transformbasename=""
63 transform_arg=""
64 instcmd="$mvprog"
65 chmodcmd="$chmodprog 0755"
66 chowncmd=""
67 chgrpcmd=""
68 stripcmd=""
69 rmcmd="$rmprog -f"
70 mvcmd="$mvprog"
71 src=""
72 dst=""
73 dir_arg=""
74
75 while [ x"$1" != x ]; do
76 case $1 in
77 -c) instcmd=$cpprog
78 shift
79 continue;;
80
81 -d) dir_arg=true
82 shift
83 continue;;
84
85 -m) chmodcmd="$chmodprog $2"
86 shift
87 shift
88 continue;;
89
90 -o) chowncmd="$chownprog $2"
91 shift
92 shift
93 continue;;
94
95 -g) chgrpcmd="$chgrpprog $2"
96 shift
97 shift
98 continue;;
99
100 -s) stripcmd=$stripprog
101 shift
102 continue;;
103
104 -t=*) transformarg=`echo $1 | sed 's/-t=//'`
105 shift
106 continue;;
107
108 -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
109 shift
110 continue;;
111
112 *) if [ x"$src" = x ]
113 then
114 src=$1
115 else
116 # this colon is to work around a 386BSD /bin/sh bug
117 :
118 dst=$1
119 fi
120 shift
121 continue;;
122 esac
123 done
124
125 if [ x"$src" = x ]
126 then
127 echo "$0: no input file specified" >&2
128 exit 1
129 else
130 :
131 fi
132
133 if [ x"$dir_arg" != x ]; then
134 dst=$src
135 src=""
136
137 if [ -d "$dst" ]; then
138 instcmd=:
139 chmodcmd=""
140 else
141 instcmd=$mkdirprog
142 fi
143 else
144
145 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
146 # might cause directories to be created, which would be especially bad
147 # if $src (and thus $dsttmp) contains '*'.
148
149 if [ -f "$src" ] || [ -d "$src" ]
150 then
151 :
152 else
153 echo "$0: $src does not exist" >&2
154 exit 1
155 fi
156
157 if [ x"$dst" = x ]
158 then
159 echo "$0: no destination specified" >&2
160 exit 1
161 else
162 :
163 fi
164
165 # If destination is a directory, append the input filename; if your system
166 # does not like double slashes in filenames, you may need to add some logic
167
168 if [ -d "$dst" ]
169 then
170 dst=$dst/`basename "$src"`
171 else
172 :
173 fi
174 fi
175
176 ## this sed command emulates the dirname command
177 dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
178
179 # Make sure that the destination directory exists.
180 # this part is taken from Noah Friedman's mkinstalldirs script
181
182 # Skip lots of stat calls in the usual case.
183 if [ ! -d "$dstdir" ]; then
184 defaultIFS='
185 '
186 IFS="${IFS-$defaultIFS}"
187
188 oIFS=$IFS
189 # Some sh's can't handle IFS=/ for some reason.
190 IFS='%'
191 set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
192 IFS=$oIFS
193
194 pathcomp=''
195
196 while [ $# -ne 0 ] ; do
197 pathcomp=$pathcomp$1
198 shift
199
200 if [ ! -d "$pathcomp" ] ;
201 then
202 $mkdirprog "$pathcomp"
203 else
204 :
205 fi
206
207 pathcomp=$pathcomp/
208 done
209 fi
210
211 if [ x"$dir_arg" != x ]
212 then
213 $doit $instcmd "$dst" &&
214
215 if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
216 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
217 if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
218 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
219 else
220
221 # If we're going to rename the final executable, determine the name now.
222
223 if [ x"$transformarg" = x ]
224 then
225 dstfile=`basename "$dst"`
226 else
227 dstfile=`basename "$dst" $transformbasename |
228 sed $transformarg`$transformbasename
229 fi
230
231 # don't allow the sed command to completely eliminate the filename
232
233 if [ x"$dstfile" = x ]
234 then
235 dstfile=`basename "$dst"`
236 else
237 :
238 fi
239
240 # Make a couple of temp file names in the proper directory.
241
242 dsttmp=$dstdir/_inst.$$_
243 rmtmp=$dstdir/_rm.$$_
244
245 # Trap to clean up temp files at exit.
246
247 trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
248 trap '(exit $?); exit' 1 2 13 15
249
250 # Move or copy the file name to the temp name
251
252 $doit $instcmd "$src" "$dsttmp" &&
253
254 # and set any options; do chmod last to preserve setuid bits
255
256 # If any of these fail, we abort the whole thing. If we want to
257 # ignore errors from any of these, just make sure not to ignore
258 # errors from the above "$doit $instcmd $src $dsttmp" command.
259
260 if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
261 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
262 if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
263 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
264
265 # Now remove or move aside any old file at destination location. We try this
266 # two ways since rm can't unlink itself on some systems and the destination
267 # file might be busy for other reasons. In this case, the final cleanup
268 # might fail but the new file should still install successfully.
269
270 {
271 if [ -f "$dstdir/$dstfile" ]
272 then
273 $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
274 $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
275 {
276 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
277 (exit 1); exit
278 }
279 else
280 :
281 fi
282 } &&
283
284 # Now rename the file to the real destination.
285
286 $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
287
288 fi &&
289
290 # The final little trick to "correctly" pass the exit status to the exit trap.
291
292 {
293 (exit 0); exit
294 }

  ViewVC Help
Powered by ViewVC 1.1.23