Making symlinks in "command" section of tool XML
Dear Developers I'm currently looking at develop a tool for a local pipeline, and want to make symlinks as part of the script in the "command" section of the tool XML - something like e.g. <command interpreter="bash"><![CDATA[ ## Create links to input FASTQs and Final_names.txt file #for $fq_pair in $fastq_pairs ln -s "${fq_pair.fastq_r1}" && ... #end for ... But when I try running the tool I get a failure with the message: Fatal error: Exit code 127 () bash: /PATH/TO/TOOL/DIR/ln: No such file or directory (NB I've snipped out the real path above, but essentially it's the directory where the tool XML is installed.) I know that it's permissible to use 'cp' and 'mv' in this context, so is 'ln' treated differently? Is there an alternative way to make symlinks in the command? Thanks for your help! Best wishes Peter -- Peter Briggs peter.briggs@manchester.ac.uk Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482
At first glace I think the problem is that when you use the ``interpreter`` tag Galaxy has really broken logic for modifying the command line to use that. ln works just like cp and mv. Those too would be broken for this tool because of the interpreter attribute I think. For this reason ``interpreter`` has been deprecated (https://docs.galaxyproject.org/en/latest/dev/schema.html#id3) and should not be used. I would drop the interpreter="bash" stuff and just where ever your script (lets say script_name.bash) appears in the command replace the reference to script_name.bash with: bash $__tool_directory__/script_name.bash I think this will work a lot better for you. Let me know if it does not. -John On Thu, Jan 19, 2017 at 10:05 AM, Peter Briggs <peter.briggs@manchester.ac.uk> wrote:
Dear Developers
I'm currently looking at develop a tool for a local pipeline, and want to make symlinks as part of the script in the "command" section of the tool XML - something like e.g.
<command interpreter="bash"><![CDATA[ ## Create links to input FASTQs and Final_names.txt file #for $fq_pair in $fastq_pairs ln -s "${fq_pair.fastq_r1}" && ... #end for ...
But when I try running the tool I get a failure with the message:
Fatal error: Exit code 127 () bash: /PATH/TO/TOOL/DIR/ln: No such file or directory
(NB I've snipped out the real path above, but essentially it's the directory where the tool XML is installed.)
I know that it's permissible to use 'cp' and 'mv' in this context, so is 'ln' treated differently? Is there an alternative way to make symlinks in the command?
Thanks for your help!
Best wishes
Peter
-- Peter Briggs peter.briggs@manchester.ac.uk Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482 ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at: https://lists.galaxyproject.org/
To search Galaxy mailing lists use the unified search at: http://galaxyproject.org/search/mailinglists/
Hello John Thanks for the prompt reply, and the heads-up re the deprecation of the "interpreter" attribute. It looks removing this attribute from the "command" tag fixes the linking problem, as you say. I'll try the new idiom referencing $__tool_directory__ and let you know if I have any issues. Thanks for your help! Best wishes Peter On 19/01/17 15:38, John Chilton wrote:
At first glace I think the problem is that when you use the ``interpreter`` tag Galaxy has really broken logic for modifying the command line to use that. ln works just like cp and mv. Those too would be broken for this tool because of the interpreter attribute I think. For this reason ``interpreter`` has been deprecated (https://docs.galaxyproject.org/en/latest/dev/schema.html#id3) and should not be used.
I would drop the interpreter="bash" stuff and just where ever your script (lets say script_name.bash) appears in the command replace the reference to script_name.bash with:
bash $__tool_directory__/script_name.bash
I think this will work a lot better for you. Let me know if it does not.
-John
On Thu, Jan 19, 2017 at 10:05 AM, Peter Briggs <peter.briggs@manchester.ac.uk> wrote:
Dear Developers
I'm currently looking at develop a tool for a local pipeline, and want to make symlinks as part of the script in the "command" section of the tool XML - something like e.g.
<command interpreter="bash"><![CDATA[ ## Create links to input FASTQs and Final_names.txt file #for $fq_pair in $fastq_pairs ln -s "${fq_pair.fastq_r1}" && ... #end for ...
But when I try running the tool I get a failure with the message:
Fatal error: Exit code 127 () bash: /PATH/TO/TOOL/DIR/ln: No such file or directory
(NB I've snipped out the real path above, but essentially it's the directory where the tool XML is installed.)
I know that it's permissible to use 'cp' and 'mv' in this context, so is 'ln' treated differently? Is there an alternative way to make symlinks in the command?
Thanks for your help!
Best wishes
Peter
-- Peter Briggs peter.briggs@manchester.ac.uk Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482 ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at: https://lists.galaxyproject.org/
To search Galaxy mailing lists use the unified search at: http://galaxyproject.org/search/mailinglists/
-- Peter Briggs peter.briggs@manchester.ac.uk Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482
participants (2)
-
John Chilton
-
Peter Briggs