#!/bin/sh #--- Help function ------------- printhelp() { echo " " echo " pq2-ls-files-server" echo " " echo " Purpose: list the file content of a dataset on a given server or list of servers" echo " " echo " Syntax:" echo " pq2-ls-files-server [-h|--help] [-v] [-k] [(-d|--dataset=)] datasetname" echo " (-s servers|--server=servers)" 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 " datasetname: Name of the dataset to be processed " echo " servers: Comma-separated list of servers for which the information is wanted" 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 # Parse options DBGOPT="" KEEPOPT="" SRVURL="" DSNAME="" SERVER="" 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=*) DSNARG="-d $oarg" ;; help) printhelp ; exit ;; keep) KEEPOPT="-k" ;; server=*) SERVER="-s $oarg" ;; tmp=*) TDIR="$oarg" ;; url=*) SRVURL="-u $oarg" ;; esac fi done if test ! "x$short_opts" = "x" ; then while getopts d:s:t:u:hkv i $short_opts ; do case $i in d) DSNAME="-d $OPTARG" ;; h) printhelp ; exit ;; k) KEEPOPT="-k" ;; s) SERVER="-s $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" || test "x$SERVER" = "x"; then echo "Some arguments are missing (d:$DSNAME,s:$SERVER)!" printhelp exit fi # Run export TMPDIR="$TDIR"; $PQ2 ls-files-server $DBGOPT $KEEPOPT $DSNAME $SERVER $SRVURL