#!/bin/sh #--- Help function ------------- printhelp() { echo " " echo " pq2-put" echo " " echo " Purpose: register one or more datasets" echo " " echo " Syntax:" echo " pq2-put [-h|--help] [-v] [-k] [-o options] [(-d|--dataset=)] datasetfile" echo " [--overwrite] [--update] [--trust]" echo " [--tree=deftree] [--staged]" echo " [-t tmpdir|--tmp=tmpdir] [-u serviceurl|--url=serviceurl]" echo " " echo " -h | --help Print this help" echo " -v Verbose mode" echo " -k Keep temporary files" echo " datasetfile: Path to the file with the list of files in the dataset or" echo " directory with the files containing the file lists of the" echo " datasets to be registered; in the first case wildcards '*'" echo " can be specified in the file name, i.e. \"/fil*\" is ok" echo " but \"/*/file\" is not. In all cases the name of the" echo " dataset is the name of the file finally used" echo " options Options for registering datasets; a combination of:" echo " O overwrite existing dataset" echo " U add information to existing dataset, if any or create a new one" echo " T Trust the information already present in the dataset" echo " V verify information in the dataset (can be very slow)" echo " --overwrite Equivalent to '-o O'" echo " --update Equivalent to '-o U'" echo " --trust Equivalent to '-o T'" echo " deftree Set the default tree name to 'deftree' (option 'T' or --trust only)" echo " --staged Assume all files online or staged (option 'T' or --trust only)" echo " serviceurl: URL of the PROOF master or data server providing the information;" echo " for data servers, it must include the directory." echo " Can be specified via the envs PQ2PROOFURL or PQ2DSSRVURL." echo " tmpdir Directory for temporary files [/tmp/]." echo " " } PQ2=`which pq2 2> /dev/null` if test "x$PQ2" = "x" ; then echo "Unknown command 'pq2'" exit 1 fi DBGOPT="" KEEPOPT="" SRVURL="" DSNAME="" OPTS="" TDIR=$TMPDIR # # Parse long options first other_args= short_opts= for i in $@ ; do opt="" case $i in --*) opt=`echo "$i" | sed 's/--//'` ;; -*) short_opts="$short_opts $i" ;; *) other_args="$other_args $i"; short_opts="$short_opts $i" ;; esac if test ! "x$opt" = "x" ; then case "$opt" in *=*) oarg=`echo "$opt" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) oarg= ;; esac ; case $opt in dataset=*) DSNAME="-d $oarg" ;; help) printhelp ; exit ;; keep) KEEPOPT="-k" ;; overwrite=*) OPTS="O$OPTS" ;; staged) OPTS="staged|$OPTS" ;; tmp=*) TDIR="$oarg" ;; tree=*) OPTS="tree:$oarg|$OPTS" ;; trust=*) OPTS="T$OPTS" ;; update=*) OPTS="U$OPTS" ;; url=*) SRVURL="-u $oarg" ;; esac fi done if test ! "x$short_opts" = "x" ; then while getopts d:o:t:u:hkv i $short_opts ; do case $i in d) DSNAME="-d $OPTARG" ;; h) printhelp ; exit ;; k) KEEPOPT="-k" ;; o) OPTS="$OPTS$OPTARG" ;; t) TDIR="$OPTARG" ;; u) SRVURL="-u $OPTARG" ;; v) DBGOPT="-v" ;; \?) printhelp; exit 1 ;; esac if test ! "x$OPTARG" = "x" ; then noa= for a in $other_args ; do if test ! "x$OPTARG" = "x$a" ; then noa="$noa $a" fi done other_args=$noa fi done # Fill empty fields with any non-prefixed argument if test ! "x$other_args" = "x" && test "x$DSNAME" = "x" ; then DSNAME="-d $other_args" fi fi if test "x$DSNAME" = "x"; then echo "Some arguments are missing (d:$DSNAME)!" printhelp exit fi # Check the options if test ! "x$OPTS" = "x" ; then OPTS="-o $OPTS" fi # Run export TMPDIR="$TDIR"; $PQ2 put $DBGOPT $KEEPOPT $DSNAME $OPTS $SRVURL