]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | ############################################################################# | |
3 | # alifs - a front-end shell for CASTOR and SHIFT | |
4 | ############################################################################# | |
5 | # | |
6 | # modification history | |
7 | # $Log$ | |
8 | # Revision 1.1 2001/02/23 17:33:40 buncic | |
9 | # Added alifs wrapper for CASTOR and alirun modified accordingly. | |
10 | # | |
11 | # | |
12 | # SYNOPSIS | |
13 | # alifs [flags] <command [options]> | |
14 | # | |
15 | # File System implementation: | |
16 | # ls [-cdilRu] path | |
17 | # mv oldname newname... | |
18 | # rm [-f] [-i] [-r] dirname... | |
19 | # mkdir [-m absolute_mode] [-p] dirname... | |
20 | # cp f1 f2 | |
21 | # cp f1 <dir2> | |
22 | # | |
23 | # CASTOR implementation: | |
24 | # ls [-cdilRTu] [--class] [--comment] path | |
25 | # mv oldname newname... | |
26 | # rm [-f] [-i] [-r] dirname... | |
27 | # mkdir [-m absolute_mode] [-p] dirname... | |
28 | # cp [-s maxsize] f1 f2 | |
29 | # cp f1 <dir2> | |
30 | # | |
31 | # DESCRIPTION | |
32 | # This is an interface script to underlying mass storage manager. At present it supports CASTOR on RH6.1 and offers some basic Unix like commands: | |
33 | # | |
34 | # o) list directory | |
35 | # alifs ls [-cdilRTu] [--class] [--comment] path | |
36 | # | |
37 | # o) move (rename) file or directory | |
38 | # alifs mv oldname newname... | |
39 | # | |
40 | # o) remove file or directory | |
41 | # alifs rm [-f] [-i] [-r] dirname... | |
42 | # | |
43 | # o) create directory | |
44 | # alifs mkdir [-m absolute_mode] [-p] dirname... | |
45 | ||
46 | # o) copy files | |
47 | # alifs cp [-s maxsize] f1 f2 | |
48 | # alifs cp f1 <dir2> | |
49 | # | |
50 | # CASTOR file system is accessible via RFIO (root must be configured configured with --enable-rfio switch and linked with appropriate libshift.a library). It provides experiment topl level directory (/castor/cern.ch/alice) and user directories following the AFS naming scheeme (like /castor/cern.ch/user/b/buncic). | |
51 | #For more info on CASTOR commands, see related man pages (nsls, nsrename, nsrm, nsmkdir,rfcp,rfstat). | |
52 | # | |
53 | # | |
54 | # AUTHOR: | |
55 | # Predrag Buncic, e-mail: Predrag.Buncic@cern.ch | |
56 | # | |
57 | # CREATION DATE: | |
58 | # 15-Feb-2001 | |
59 | #C< | |
60 | ########################################################################### | |
61 | ALIFSDIR=`dirname $0`; export ALIFSDIR | |
62 | ########################################################################### | |
63 | Configure() | |
64 | { | |
65 | case "$ALICE_MSS" in | |
66 | CASTOR) | |
67 | if [ -f $ALIFSDIR/castor.sh ] | |
68 | then | |
69 | . $ALIFSDIR/castor.sh | |
70 | else | |
71 | printf "Cannot find %s file. Terminating..." $ALIFSDIR/castor.sh | |
72 | exit 1 | |
73 | fi | |
74 | ;; | |
75 | HPSS|RFIO) | |
76 | if [ -f $ALIFSDIR/rfio.sh ] | |
77 | then | |
78 | . $ALIFSDIR/rfio.sh | |
79 | else | |
80 | printf "Cannot find %s file. Terminating...\n" $ALIFSDIR/rfio.sh | |
81 | exit 1 | |
82 | fi | |
83 | ;; | |
84 | *) | |
85 | ;; | |
86 | esac | |
87 | ||
88 | if [ "$EXEC_SHELL" = "" ] | |
89 | then | |
90 | EXEC_SHELL=bin/sh | |
91 | for shell in bash zsh ksh | |
92 | do | |
93 | for dir in /bin /usr/bin /usr/local/bin | |
94 | do | |
95 | if [ -x $dir/$shell ] | |
96 | then | |
97 | EXEC_SHELL=$dir/$shell | |
98 | break 2 | |
99 | fi | |
100 | done | |
101 | done | |
102 | export EXEC_SHELL | |
103 | exec $EXEC_SHELL -norc -noprofile $0 $* | |
104 | fi | |
105 | } | |
106 | ########################################################################### | |
107 | ALIFS_Usage() | |
108 | { | |
109 | printf "\nFile System Implementation:\n\n" | |
110 | printf "Usage: alifs [-help][-p <pool>] <command [options]> \n" | |
111 | printf " [-cdilRu] path \n" | |
112 | printf " mv oldname newname... \n" | |
113 | printf " rm [-f] [-i] [-r] dirname... \n" | |
114 | printf " mkdir [-m absolute_mode] [-p] dirname...\n" | |
115 | printf " cp f1 f2 \n" | |
116 | printf " cp f1 <dir2> \n" | |
117 | exit | |
118 | } | |
119 | ########################################################################### | |
120 | ALIFS_Makeman() | |
121 | ########################################################################### | |
122 | { | |
123 | mandir=../man/man4 | |
124 | ./mangen -n tool $0 | |
125 | if [ $? -eq 0 ] | |
126 | then | |
127 | [ ! -d $mandir ] && mkdir -p $mandir | |
128 | mv `basename $0`.? $mandir | |
129 | exit | |
130 | fi | |
131 | } | |
132 | ########################################################################### | |
133 | ALIFS_ls() | |
134 | { | |
135 | ls $* | |
136 | } | |
137 | ########################################################################### | |
138 | ALIFS_mkdir() | |
139 | { | |
140 | mkdir $* | |
141 | } | |
142 | ########################################################################### | |
143 | ALIFS_mv() | |
144 | { | |
145 | mv $* | |
146 | } | |
147 | ########################################################################### | |
148 | ALIFS_rm() | |
149 | { | |
150 | rm $* | |
151 | } | |
152 | ########################################################################### | |
153 | ALIFS_cp() | |
154 | { | |
155 | cp $* | |
156 | } | |
157 | ########################################################################### | |
158 | Configure $* | |
159 | ########################################################################### | |
160 | ALIFS() | |
161 | { | |
162 | cmd=$1; shift 1 | |
163 | ||
164 | case `type -t ALIFS_$cmd` in | |
165 | function) | |
166 | ALIFS_$cmd $* | |
167 | ;; | |
168 | *) | |
169 | ALIFS_Usage; | |
170 | ;; | |
171 | esac | |
172 | ||
173 | exit | |
174 | } | |
175 | ########################################################################### | |
176 | ||
177 | ########################################################################### | |
178 | ||
179 | for param in $* | |
180 | do | |
181 | case $param in | |
182 | -trace) | |
183 | shift 1 | |
184 | set -vx | |
185 | ;; | |
186 | -echo) | |
187 | shift 1 | |
188 | ECHO="echo " | |
189 | ;; | |
190 | -makeman) | |
191 | shift 1 | |
192 | ALIFS_Makeman | |
193 | ;; | |
194 | -help) | |
195 | ALIFS_Usage | |
196 | ;; | |
197 | -p) | |
198 | shift 1 | |
199 | POOL=$1; shift 1 | |
200 | ;; | |
201 | *) | |
202 | ALIFS $* | |
203 | ;; | |
204 | esac | |
205 | done | |
206 | ||
207 | ########################################################################### | |
208 | ALIFS_Usage | |
209 | ########################################################################### | |
210 | ||
211 | ||
212 |