Added alifs wrapper for CASTOR and alirun modified accordingly.
[u/mrichter/AliRoot.git] / share / alifs
CommitLineData
124fe280 1#!/bin/sh
2#############################################################################
3# alifs - a front-end shell for CASTOR and SHIFT
4#############################################################################
5#
6# modification history
7# $Log$
8#
9# SYNOPSIS
10# alifs <command>
11#
12# DESCRIPTION
13# 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:
14#
15# o) list directory
16# alifs ls [-cdilRTu] [--class] [--comment] path
17#
18# o) move (rename) file or directory
19# alifs mv oldname newname...
20#
21# o) remove file or directory
22# alifs rm [-f] [-i] [-r] dirname...
23#
24# o) create directory
25# alifs mkdir [-m absolute_mode] [-p] dirname...
26#
27# 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).
28#For more info on CASTOR commands, see related man pages (nsls, nsrename, nsrm, nsmkdir).
29#
30#
31# AUTHOR:
32# Predrag Buncic, e-mail: Predrag.Buncic@cern.ch
33#
34# CREATION DATE:
35# 15-Feb-2001
36#C<
37###########################################################################
38Configure()
39{
40 if [ "$CASTOR_USER_POOL" = "" ]
41 then
42 CASTOR_USER_POOL=$STAGE_POOL
43 fi
44
45 if [ "$CASTOR_BIN" = "" ]
46 then
47 case `uname` in
48 Linux)
49 CASTOR_BIN=/afs/cern.ch/asis/packages/CASTOR/castor-1.3.1.1/i386_redhat61/usr.local/bin
50 EXEC_SHELL=/bin/sh
51 ;;
52 *)
53 ;;
54 esac
55 fi
56
57 if [ ! -d $CASTOR_BIN ]
58 then
59 printf "CASTOR is not supported on this platform.\n"
60 exit 255
61 fi
62
63 if [ "$EXEC_SHELL" = "" ]
64 then
65 EXEC_SHELL=bin/sh
66 for shell in bash zsh ksh
67 do
68 for dir in /bin /usr/bin /usr/local/bin
69 do
70 if [ -x $dir/$shell ]
71 then
72 EXEC_SHELL=$dir/$shell
73 break 2
74 fi
75 done
76 done
77 export EXEC_SHELL
78 exec $EXEC_SHELL -norc -noprofile $0 $*
79 fi
80}
81###########################################################################
82ALIFS::Usage()
83{
84 printf "Usage: alifs <command [options]>\n"
85 exit
86}
87###########################################################################
88ALIFS::Makeman()
89###########################################################################
90{
91 mandir=../man/man4
92 ./mangen -n tool $0
93 if [ $? -eq 0 ]
94 then
95 [ ! -d $mandir ] && mkdir -p $mandir
96 mv `basename $0`.? $mandir
97 exit
98 fi
99}
100###########################################################################
101ALIFS::ls()
102{
103 $CASTOR_BIN/nsls $*
104}
105###########################################################################
106ALIFS::mkdir()
107{
108 $CASTOR_BIN/nsmkdir $*
109}
110###########################################################################
111ALIFS::mv()
112{
113 $CASTOR_BIN/nsrename $*
114}
115###########################################################################
116ALIFS::rm()
117{
118 $CASTOR_BIN/nsrm $*
119}
120###########################################################################
121Configure $*
122###########################################################################
123ALIFS()
124{
125 cmd=$1; shift 1
126
127 case `type -t ALIFS::$cmd` in
128 function)
129 ALIFS::$cmd $*
130 ;;
131 *)
132 ALIFS::Usage;
133 ;;
134 esac
135
136 exit
137}
138###########################################################################
139###########################################################################
140
141for param in $*
142do
143 case $param in
144 -trace)
145 shift 1
146 set -vx
147 ;;
148 -echo)
149 shift 1
150 ECHO="echo "
151 ;;
152 -makeman)
153 shift 1
154 ALIFS::Makeman
155 ;;
156 -p)
157 shift 1
158 POOL=$1; shift 1
159 ;;
160 *)
161 ALIFS $*
162 ;;
163 esac
164done
165
166