Mercurial > repos > kellrott > synapse_interface
comparison synapse_create.xml @ 0:83173eca36b7
Uploaded
| author | kellrott |
|---|---|
| date | Tue, 24 Jul 2012 17:33:11 -0400 |
| parents | |
| children | 93c4d2fad9af |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:83173eca36b7 |
|---|---|
| 1 <tool id="synapse_create" name="Synapse Create" version="1.0"> | |
| 2 <description>Create Synapse</description> | |
| 3 <command interpreter="python">$script_file</command> | |
| 4 <inputs> | |
| 5 <param name="user" type="text" size="90" label="Username"/> | |
| 6 <param name="pass" type="text" size="90" label="Password"/> | |
| 7 <param name="name" type="text" size="90" label="Name"/> | |
| 8 <param name="attachment" type="data" optional="true" label="Attachment"/> | |
| 9 <param name="attachment_name" type="text" size="90" optional="true" label="Attachment Name"/> | |
| 10 <param name="etype" type="select" label="Entity Type"> | |
| 11 <option value="Project">Project</option> | |
| 12 <option value="Study">Study</option> | |
| 13 <option value="Data">Data</option> | |
| 14 </param> | |
| 15 <repeat name="properties" title="Properties"> | |
| 16 <param name="name" type="text" size="90" label="Name"/> | |
| 17 <param name="value" type="text" size="90" label="Value"> | |
| 18 <sanitizer> | |
| 19 <valid initial="string.printable"> | |
| 20 <remove value="""/> | |
| 21 </valid> | |
| 22 <mapping initial="none"> | |
| 23 <add source=""" target="\""/> | |
| 24 </mapping> | |
| 25 </sanitizer> | |
| 26 </param> | |
| 27 </repeat> | |
| 28 | |
| 29 <repeat name="annotations" title="Annotations"> | |
| 30 <param name="name" type="text" size="90" label="Name"/> | |
| 31 <param name="value" type="text" size="90" label="Value"/> | |
| 32 </repeat> | |
| 33 | |
| 34 </inputs> | |
| 35 <outputs> | |
| 36 <data format="txt" name="outfile" /> | |
| 37 </outputs> | |
| 38 <configfiles> | |
| 39 <configfile name="script_file"><![CDATA[#!/usr/bin/env python | |
| 40 rcode=""" | |
| 41 require(synapseClient) | |
| 42 | |
| 43 if (nchar("$user") > 0 && nchar("$pass") > 0) { | |
| 44 synapseLogin(username="$user", password="$pass") | |
| 45 } | |
| 46 | |
| 47 ent <- ${etype}( list(name="${name}") ) | |
| 48 | |
| 49 #for $a in $annotations: | |
| 50 annotValue(ent, "${a.name}") <- "${a.value}" | |
| 51 #end for | |
| 52 | |
| 53 #for a in $properties: | |
| 54 propertyValue(ent, "${a.name}") <- "${a.value}" | |
| 55 #end for | |
| 56 | |
| 57 ent <- createEntity(ent) | |
| 58 | |
| 59 #if $attachment != 'None' | |
| 60 #if $attachment_name == '': | |
| 61 ent <- addFile(ent, "${attachment}") | |
| 62 #else | |
| 63 ent <- addFile(ent, "${attachment}", "${attachment_name}") | |
| 64 #end if | |
| 65 #end if | |
| 66 | |
| 67 ent <- storeEntity(ent) | |
| 68 | |
| 69 write(properties(ent)\$id, file="${outfile}"); | |
| 70 | |
| 71 """ | |
| 72 | |
| 73 | |
| 74 import tempfile | |
| 75 import os | |
| 76 import sys | |
| 77 import subprocess | |
| 78 | |
| 79 h, path = tempfile.mkstemp() | |
| 80 os.write(h,rcode) | |
| 81 os.close(h) | |
| 82 | |
| 83 proc = subprocess.Popen( ["Rscript", path] + sys.argv[1:], stderr=subprocess.PIPE, stdout=subprocess.PIPE ) | |
| 84 (stdoutdata, stderrdata) = proc.communicate() | |
| 85 if proc.returncode: | |
| 86 sys.stderr.write(stderrdata) | |
| 87 sys.stdout.write(stdoutdata) | |
| 88 os.unlink(path) | |
| 89 | |
| 90 ]]></configfile> | |
| 91 </configfiles> | |
| 92 </tool> |
