annotate import_local_file.sh @ 1:6962544aa394

Uploaded
author david-hoover
date Tue, 28 Feb 2012 12:25:07 -0500
parents 544ad95f0e22
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
1 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
2 ### The shell script: import_local.sh
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
3 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
4 ### The script copies the source file (param 1)
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
5 ### to the destination file (param 2, which is galaxy's dataset_NNNNN.dat).
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
6 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
7 ### The extra code tries to make it as safe as possible, allowing imports only
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
8 ### from limited areas.
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
9 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
10 ### The script can be changed from copying to linking - would be even faster.
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
11 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
12 ### cpx is a C executable that copies a file from a source to a destination
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
13 ### only if the source file is readable by the user given in the third arg.
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
14 ### cpx must be setuid root, so be careful who has access to it! It can also
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
15 ### be allowed using sudo, if you know how to do it.
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
16 #!/bin/sh
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
17
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
18 INPUT="$1"
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
19 OUTPUT="$2"
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
20 EMAIL="$3"
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
21 USER=`echo $EMAIL | sed -e 's#@.*##'`
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
22
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
23 if [ -z "$OUTPUT" ]; then
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
24 echo "Usage: $0 [INPUT] [OUTPUT]" >&2
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
25 exit 1
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
26 fi
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
27
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
28 # Filter any unwanted directories
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
29
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
30 if [[ `echo $INPUT | grep -c ^/data/` -lt 1 ]] && [[ `echo $INPUT | grep -c ^/home/` -lt 1 ]] ; then
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
31 echo "Error: \"$INPUT\" is not allowed" >&2
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
32 exit 1
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
33 fi
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
34
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
35 # Do the deed
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
36 cpx $INPUT $OUTPUT "$USER"
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
37 if [ $? != 0 ]; then
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
38 echo "Error: $USER failed to copy \"$INPUT\"" >&2
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
39 exit 1
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
40 fi
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
41
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
42 echo "File \"$INPUT\" imported"
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
43
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
44 exit 0
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
45
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
46 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
47 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
48 ###
544ad95f0e22 Uploaded
david-hoover
parents:
diff changeset
49