annotate mtbls-dwnld @ 1:1fd8547867be draft default tip

"planemo upload commit 76293bd47447c171c939b4f3c194fd0cfbd7f69c-dirty"
author prog
date Thu, 04 Mar 2021 11:21:03 +0000
parents 8dab200e02cb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
1 #!/bin/bash
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
2 # vi: fdm=marker
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
3
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
4 # Constants {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
5 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
6
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
7 PROG_NAME=$(basename $0)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
8 PROG_PATH=$(dirname $0)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
9 ISASLICER="$PROG_PATH/isaslicer.py"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
10 YES=yes
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
11 NO=no
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
12 ASPERA_PUBLIC_TOKEN=Xz68YfDe
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
13 ASCP=ascp
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
14 WGET=wget
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
15 PLATFORM=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
16 DISTRIBUTION=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
17 [[ -z $(which uname) ]] || PLATFORM=$(uname)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
18 [[ $PLATFORM == Linux && -e /proc/version ]] && DISTRIBUTION=$(sed 's/^.*(\([^ ]*\).*$/\1/' /proc/version)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
19 [[ $DISTRIBUTION == Alpine ]] || WGET_FLAGS="--progress=dot"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
20
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
21 # Global variables {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
22 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
23
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
24 ASPERA=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
25 COMPRESSED=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
26 DEBUG=0
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
27 FACTOR_VALUE=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
28 HTML=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
29 METADATA_ONLY=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
30 OUTPUT=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
31 PRIVATE=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
32 QUIET=0
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
33 TMP_IN_OUTPUT=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
34 TOKEN=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
35
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
36 # Print help {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
37 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
38
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
39 function print_help {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
40 echo "Usage: $PROG_NAME [options] study"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
41 echo
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
42 echo "Retrieves a study from Metabolights database."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
43 echo "By default it uses the ftp server, but with -a option you can ask for using aspera server (you will need the aspera client ascp to be installed)."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
44 echo
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
45 echo "Options:"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
46 echo " -a, --aspera Use aspera server for downloading. You need the ascp client to be installed, it is freely available for linux 64. See http://downloads.asperasoft.com."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
47 echo " -c, --compressed Output in compressed format. If unset, the output will be a directory."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
48 echo " -f, --factor-value Filter study on a factor value. Example: \"-f myfactor=myvalue\". Only available with wget downloader."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
49 echo " -g, --debug Debug mode."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
50 echo " -h, --help Print this help message."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
51 echo " -H, --html FILE Write HTML file that list files contained in output directory. Not compatible with compressed output."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
52 echo " -M, --metadata-only Download only the metadata (ISA-Tab files i_*, m_*, s_* and a_*) files. This option has no effet if aspera is selected (option -a)."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
53 echo " -o, --output NAME Set the name of the output (both for directory output or compressed file output). By default the name of the output is determined by the download tool."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
54 echo " -p, --private Indicate the study to download is not public. This is meant for aspera download, since the URL will be different for a public or a private study."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
55 echo " -q, --quiet Does not print any output. Can be specified twice in order to be real quiet."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
56 echo " -t, --token TOKEN Set the token or password to use. For aspera public download, if you don't specify a token, the default token '$ASPERA_PUBLIC_TOKEN' will be used."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
57 echo " -T, --tmp-in-output If an output is specified and it is a directory (-c option must not be set), then use it for writing intermediate files."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
58 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
59
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
60 # Error {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
61 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
62
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
63 function error {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
64
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
65 local msg=$1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
66
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
67 echo "ERROR: $msg" >&2
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
68
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
69 exit 1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
70 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
71
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
72 # Debug {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
73 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
74
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
75 function debug {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
76
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
77 local dbgmsg="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
78
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
79 [[ $DEBUG -ge 1 ]] && echo "[DEBUG] $dbgmsg" >&2
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
80 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
81
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
82
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
83 # Read args {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
84 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
85
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
86 function read_args {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
87
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
88 local args="$*" # save arguments for debugging purpose
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
89
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
90 # Read options
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
91 while true ; do
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
92 shift_count=1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
93 case $1 in
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
94 -a|--aspera) ASPERA=$YES ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
95 -c|--compressed) COMPRESSED=$YES ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
96 -f|--factor-value) FACTOR_VALUE="$2" ; shift_count=2 ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
97 -g|--debug) DEBUG=$((DEBUG + 1)) ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
98 -h|--help) print_help ; exit 0 ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
99 -M|--metadata-only) METADATA_ONLY=$YES ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
100 -H|--html) HTML="$2" ; shift_count=2 ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
101 -o|--output) OUTPUT="$2" ; shift_count=2 ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
102 -p|--private) PRIVATE=$YES ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
103 -q|--quiet) QUIET=$((QUIET + 1)) ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
104 -t|--token) TOKEN="$2" ; shift_count=2 ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
105 -T|--tmp-in-output) TMP_IN_OUTPUT=$YES ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
106 -) error "Illegal option $1." ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
107 --) error "Illegal option $1." ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
108 --*) error "Illegal option $1." ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
109 -?) error "Unknown option $1." ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
110 -[^-]*) split_opt=$(echo $1 | sed 's/^-//' | sed 's/\([a-zA-Z]\)/ -\1/g') ; set -- $1$split_opt "${@:2}" ;;
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
111 *) break
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
112 esac
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
113 shift $shift_count
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
114 done
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
115 shift $((OPTIND - 1))
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
116
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
117 # Read remaining arguments
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
118 [ $# -eq 1 ] || error "You must specify one, and only one, study to retrieve."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
119 STUDY="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
120
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
121 # Check token
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
122 if [[ -n $ASPERA && -z $TOKEN ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
123 if [[ -z $PRIVATE ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
124 TOKEN=$ASPERA_PUBLIC_TOKEN
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
125 else
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
126 error "You need to specify a token for retrieving private studies with aspera."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
127 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
128 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
129 [[ -z $PRIVATE || -n $TOKEN ]] || error "You need to set a token for retrieving private studies."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
130
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
131 # Turn off --tmp-to-output if --compressed is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
132 [[ $TMP_IN_OUTPUT == $YES && ( $COMPRESSED == $YES || -z $OUTPUT ) ]] && TMP_IN_OUTPUT=$NO
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
133
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
134 # Debug
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
135 debug "Arguments are : $args"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
136 debug "Study to retrieve is : $STUDY"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
137 debug "ASPERA=$ASPERA"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
138 debug "COMPRESSED=$COMPRESSED"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
139 debug "DEBUG=$DEBUG"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
140 debug "FACTOR_VALUE=$FACTOR_VALUE"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
141 debug "HTML=$HTML"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
142 debug "METADATA_ONLY=$METADATA_ONLY"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
143 debug "OUTPUT=$OUTPUT"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
144 debug "PRIVATE=$PRIVATE"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
145 debug "QUIET=$QUIET"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
146 debug "TMP_IN_OUTPUT=$TMP_IN_OUTPUT"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
147 debug "TOKEN=$TOKEN"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
148 [[ -n $ASPERA ]] && debug "Aspera will be used."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
149 [[ -n $TOKEN ]] && debug "Token/Password is \"$TOKEN\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
150 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
151
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
152 # Get download output path {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
153 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
154
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
155 get_download_output_path() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
156
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
157 local downloader="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
158 local study_name="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
159 local output_dir="$3"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
160 local output_path="$study_name"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
161
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
162 [[ -z $output_dir ]] || output_path="$output_dir/$output_path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
163 [[ $downloader == $WGET ]] && output_path+=".zip"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
164
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
165 echo "$output_path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
166 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
167
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
168 # Download with ascp {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
169 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
170
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
171 download_with_ascp() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
172
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
173 local study_name="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
174 local metadata_only="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
175 local output_dir="$3"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
176 local dwnld_flags=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
177 local dwnld_link=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
178
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
179 # Check ascp
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
180 [ -n "$(which ascp)" ] || error "ascp command not found. Please install Aspera client, version 3.7.4 or greater. See http://downloads.asperasoft.com/en/downloads/62."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
181 debug "$ASCP: $(which $ASCP)"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
182 debug "QUIET: $QUIET"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
183
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
184 # Silence downloader output
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
185 [[ $QUIET -eq 0 ]] || dwnld_flags=-q
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
186
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
187 # Set download flags
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
188 [[ -z $dwnld_flags ]] || dwnld_flags+=" "
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
189 dwnld_flags+="--policy=fair -T -l 1g"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
190
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
191 dwnld_flags+=" -P33001"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
192
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
193 # Set download link
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
194 if [[ -z $PRIVATE ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
195
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
196 # Make full path for public study
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
197 study_path=$STUDY
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
198 if [[ -z ${study_path##MTBLS*} ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
199 study_path="/studies/public/$study_path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
200 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
201 dwnld_link="fasp-ml@fasp.ebi.ac.uk:$study_path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
202
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
203 # Private study
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
204 else
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
205 dwnld_link="mtblight@hx-fasp-1.ebi.ac.uk:$STUDY"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
206 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
207
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
208 # Export token
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
209 debug "export ASPERA_SCP_PASS=\"$TOKEN\""
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
210 export ASPERA_SCP_PASS="$TOKEN"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
211
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
212 # Run download command
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
213 if [[ -n $output_dir ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
214 mkdir -p "$output_dir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
215 curdir=$(pwd)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
216 cd "$output_dir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
217 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
218 if [[ $metadata_only == $YES ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
219 debug "Download command: $ASCP $dwnld_flags -N '?_*.t*' -E '*.*' -E 'p*' $dwnld_link ."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
220 $ASCP $dwnld_flags -N '?_*.t*' -E '*.*' -E 'p*' $dwnld_link .
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
221 [[ $? == 0 ]] || error "Downloading of study $STUDY has failed. Error code returned is $?."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
222 else
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
223 debug "Download command: $ASCP $dwnld_flags $dwnld_link ."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
224 $ASCP $dwnld_flags $dwnld_link .
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
225 [[ $? == 0 ]] || error "Downloading of study $STUDY has failed. Error code returned is $?."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
226 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
227 [[ -z $output_dir ]] || cd "$curdir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
228 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
229
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
230 # Download with wget {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
231 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
232
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
233 download_with_wget() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
234
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
235 local study_name="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
236 local metadata_only="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
237 local output_dir="$3"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
238 local dwnld_flags=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
239
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
240 # Check wget
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
241 [ -n "$(which wget)" ] || error "wget command not found."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
242 debug "$WGET: $(which $WGET)"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
243
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
244 # Set download link
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
245 file="$study_name"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
246 [[ $metadata_only == $YES ]] && file=metadata
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
247 dwnld_link="https://www.ebi.ac.uk/metabolights/$study_name/files/$file"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
248 [[ -n $TOKEN ]] && dwnld_link+="?token=$TOKEN"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
249
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
250 # Set download output
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
251 output_path="$study_name.zip"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
252 if [[ -n $output_dir ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
253 mkdir -p "$output_dir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
254 output_path="$output_dir/$output_path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
255 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
256 dwnld_flags="-O $output_path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
257
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
258 # Silence downloader output
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
259 wget_log_file=$(mktemp -t $PROG_NAME.XXXXXX)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
260 [[ $QUIET -eq 0 ]] || dwnld_flags+=" -q -o $wget_log_file"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
261
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
262 # Run download command
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
263 debug "Download command: $WGET $WGET_FLAGS $dwnld_flags $dwnld_link"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
264 $WGET $WGET_FLAGS $dwnld_flags $dwnld_link
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
265 [[ $? == 0 ]] || error "Downloading of study $STUDY has failed. wget log file: $(cat $wget_log_file)"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
266 rm -f $wget_log_file
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
267 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
268
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
269 # Download {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
270 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
271
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
272 download() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
273
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
274 local downloader="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
275 local study_name="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
276 local metadata_only="$3"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
277 local output_dir="$4"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
278
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
279 if [[ $downloader == $WGET ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
280 download_with_wget "$2" "$3" "$output_dir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
281 else
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
282 download_with_ascp "$2" "$3" "$output_dir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
283 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
284 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
285
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
286 # Check download {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
287 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
288
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
289 check_download() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
290
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
291 local download_path="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
292
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
293 [[ -d $download_path || -f $download_path ]] || error "The downloading of $tmp_output failed. The output file doesn't exist."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
294 [[ ! -f $download_path || -s $download_path ]] || error "The downloading of $tmp_output failed. The output file is empty."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
295 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
296
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
297 # Unzip study {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
298 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
299
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
300 unzip_study() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
301
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
302 local tmp_output="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
303 local output="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
304 local unzip_flags=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
305
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
306 # Silence unzip program
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
307 [[ $QUIET -eq 0 ]] || unzip_flags=-qq
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
308
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
309 debug "Unzipping file \"$tmp_output\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
310 [[ -z $output ]] || debug "Unzipping into \"$output\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
311
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
312 [[ -n $(which unzip) ]] || error "unzip command not found. Please install zip package."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
313
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
314 zip=$tmp_output
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
315 debug "Zipped file is \"$zip\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
316 if [[ -z $output ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
317 output=${zip%.*}
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
318 [[ -d "$output" ]] && rm -r "$output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
319 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
320 debug "Output directory will be \"$output\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
321 zip_abs_path=$(realpath "$zip")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
322 curdir=$(pwd)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
323 debug "Current directory is \"$curdir\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
324 mkdir -p "$output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
325 cd "$output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
326 unzip $unzip_flags "$zip_abs_path" >&2 || error "Unable to unzip archive $zip_abs_path."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
327 cd "$curdir"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
328
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
329 echo "$output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
330 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
331
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
332 # As zip {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
333 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
334
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
335 as_zip() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
336
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
337 local path="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
338
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
339 if [[ -d $path ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
340
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
341 zip_file="$path.zip"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
342 zip "$zip_file" $path/*
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
343 rm -r "$path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
344 path="$zip_file"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
345 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
346
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
347 echo "$path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
348 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
349
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
350 # As folder {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
351 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
352
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
353 as_folder() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
354
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
355 local path="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
356 local output="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
357
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
358 debug "as_folder($path, $output)"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
359 if [[ -f $path && ${path##*.} == 'zip' ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
360 folder=$(unzip_study "$path" "$output")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
361 rm "$path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
362 path="$folder"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
363 elif [[ -d $path && -n $output && $path != $output ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
364 mkdir -p "$output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
365 mv "$path"/* "$output"/.
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
366 rm -r "$path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
367 path="$output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
368 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
369
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
370 echo "$path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
371 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
372
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
373 # Make folder or zip {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
374 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
375
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
376 make_folder_or_zip() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
377
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
378 local path="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
379 local compressed="$2"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
380 local output="$3"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
381
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
382 debug "make_folder_or_zip($path, $compressed, $output)"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
383 [[ -e $path ]] || error "No file or folder at path \"$path\"."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
384
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
385 # Compress folder
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
386 if [[ $compressed == $YES ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
387 path=$(as_zip "$path")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
388 else
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
389 path=$(as_folder "$path" "$output")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
390 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
391
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
392 echo "$path"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
393 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
394
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
395 # Write HTML file {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
396 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
397
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
398 function write_html_file {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
399
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
400 local HTML=$1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
401 local tmp_output=$2
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
402
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
403 cat >$HTML <<EOF
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
404 <html>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
405 <header>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
406 <title>Metabolights study</title>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
407 </header>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
408 <body>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
409 <a href="i_Investigation.txt">Investigation file</a><br/>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
410 EOF
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
411
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
412 echo "<br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
413 echo " Study files:<br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
414 for f in $tmp_output/s_* ; do
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
415 filename=$(basename "$f")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
416 echo " <a href=\"$filename\">$filename</a><br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
417 done
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
418
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
419 echo "<br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
420 echo " Assay files:<br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
421 for f in $tmp_output/a_* ; do
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
422 filename=$(basename "$f")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
423 echo " <a href=\"$filename\">$filename</a><br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
424 done
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
425
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
426 echo "<br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
427 echo " Data files:<br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
428 for f in $tmp_output/m_* ; do
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
429 filename=$(basename "$f")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
430 echo " <a href=\"$filename\">$filename</a><br/>" >>$HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
431 done
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
432
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
433 cat >>$HTML <<EOF
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
434 </body>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
435 </html>
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
436 EOF
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
437 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
438
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
439 # Get data files {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
440 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
441
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
442 get_data_files() {
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
443
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
444 local json_file="$1"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
445
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
446 python3 <<EOF
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
447 # @@@BEGIN_PYTHON@@@
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
448 import json
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
449 import sys
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
450 with open('$json_file') as f:
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
451 data_list = json.load(f)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
452 for elem in data_list:
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
453 print("\n".join(elem['data_files']))
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
454 # @@@END_PYTHON@@@
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
455 EOF
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
456 }
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
457
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
458 # MAIN {{{1
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
459 ################################################################
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
460
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
461 read_args "$@"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
462
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
463 study_name=$(basename $STUDY)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
464 downloader=$WGET
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
465 output_dir=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
466 [[ $ASPERA == $YES ]] && downloader=$ASCP
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
467 [[ $TMP_IN_OUTPUT != $YES ]] || output_dir="$OUTPUT"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
468
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
469 # Download only part of the study using factor value
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
470 if [[ -n $FACTOR_VALUE ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
471
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
472 # Get factor name and value
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
473 factor_name=${FACTOR_VALUE%%=*}
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
474 factor_value=${FACTOR_VALUE#*=}
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
475
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
476 # Download only metadata
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
477 download "$downloader" "$study_name" "$YES" # XXX Download output must be written into $OUTPUT if TMP_IN_OUTPUT is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
478 dwnld_output=$(get_download_output_path "$downloader" "$study_name")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
479 dwnld_output=$(as_folder "$dwnld_output")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
480
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
481 # Get data files to download
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
482 data_files=$(mktemp -t $PROG_NAME.XXXXXX) # XXX must be created into $OUTPUT if TMP_IN_OUTPUT is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
483 [[ -x "$ISASLICER" ]] || error "Cannot find or run isaslicer.py script."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
484 debug "Run ISA slicer: \"$ISASLICER\" 'isa-tab-get-data-list' \"$abs_dwnld_output\" \"$data_files\" --json-query \"{ \\\"$factor_name\\\": \\\"$factor_value\\\" }\""
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
485 abs_dwnld_output=$(realpath "$dwnld_output")
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
486 "$ISASLICER" --log-level DEBUG 'isa-tab-get-data-list' "$abs_dwnld_output" "$data_files" --json-query "{ \"$factor_name\": \"$factor_value\" }" 2>&1 || error "Call to isaslicer failed."
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
487
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
488 # Download data files
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
489 wget_log_file=$(mktemp -t $PROG_NAME.XXXXXX)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
490 get_data_files "$data_files" | sort | uniq | while read file ; do
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
491 if [[ -n $file ]] ; then
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
492 dwnld_flags=
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
493 [[ $QUIET -eq 0 ]] || dwnld_flags+=" -q -o $wget_log_file"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
494 dwnld_link="https://www.ebi.ac.uk/metabolights/$study_name/files/$file"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
495 debug "Download command: $WGET $WGET_FLAGS $dwnld_flags $dwnld_link"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
496 $WGET $WGET_FLAGS $dwnld_flags -O "$dwnld_output/$file" "$dwnld_link" # XXX Download output must be written into $OUTPUT if TMP_IN_OUTPUT is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
497 [[ $? == 0 ]] || error "Downlad of study file \"$file\" has failed. wget log file: $(cat $wget_log_file)"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
498 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
499 done
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
500 rm -f $wget_log_file
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
501
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
502 # Remove data files list
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
503 rm "$data_files"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
504
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
505 # Download whole study
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
506 else
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
507
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
508 # Download whole study
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
509 download "$downloader" "$study_name" "$METADATA_ONLY" "$output_dir" # XXX Download output must be written into $OUTPUT if TMP_IN_OUTPUT is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
510
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
511 # Get output path
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
512 dwnld_output=$(get_download_output_path "$downloader" "$study_name" "$output_dir") # XXX Correct output path when TMP_IN_OUTPUT is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
513 fi
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
514
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
515 # Check output
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
516 check_download "$dwnld_output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
517
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
518 # Output in right format (zipped or folder)
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
519 dwnld_output=$(make_folder_or_zip "$dwnld_output" "$COMPRESSED" "$output_dir") # XXX zip must be written into $OUTPUT and unzipped into $OUTPUT if TMP_IN_OUTPUT is set
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
520
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
521 # Output HTML
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
522 [[ -z $HTML || ! -d $dwnld_output ]] || write_html_file "$HTML" "$dwnld_output"
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
523
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
524 # Rename output
8dab200e02cb "planemo upload commit 239561a6401593c5f87df40ac971a9aa393c4663-dirty"
prog
parents:
diff changeset
525 [[ -z $OUTPUT || $TMP_IN_OUTPUT == $YES ]] || mv "$dwnld_output" "$OUTPUT"