changeset 4:10ef1bf99074 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/diff commit 1a6c4a793ef68a43de93316523c1cd9196d80b73
author bgruening
date Mon, 09 Dec 2024 14:36:40 +0000
parents 156d0908e232
children
files diff.xml test-data/file 3.txt test-data/file3.txt test-data/output_test4.txt
diffstat 4 files changed, 60 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/diff.xml	Fri Mar 12 16:22:44 2021 +0000
+++ b/diff.xml	Mon Dec 09 14:36:40 2024 +0000
@@ -1,7 +1,7 @@
-<tool id="diff" name="diff" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@">
+<tool id="diff" name="diff" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@" profile="23.0">
     <description>analyzes two files and generates an unidiff text file with information about the differences and an optional Html report</description>
     <macros>
-        <token name="@TOOL_VERSION@">3.7</token>
+        <token name="@TOOL_VERSION@">3.10</token>
         <token name="@GALAXY_VERSION@">0</token>
     </macros>
     <requirements>
@@ -13,10 +13,18 @@
         <regex match="diff: memory exhausted" source="stdout" level="fatal_oom" description="Out of memory error occurred"/>
     </stdio>
     <command><![CDATA[
-        diff -u '$input1' '$input2' > '$diff_file';
-        #if $generate_report:
+        diff
+        #if $report_format.report_format_select == 'txt_lines' or $report_format.report_format_select == 'html'
+            ## the -u option is needed to convert the output later to HTML
+            --unified=$report_format.unified
+        #else if $report_format.report_format_select == 'txt_columns'
+            -y
+        #end if
+        ## If the compared input files differ the diff command returns exit-code 1
+        '$input1' '$input2' > '$diff_file' || [ \$? -eq 1 ];
+        #if $report_format.report_format_select == 'html'
             sed -e 's/@@title@@/Diff report for "$input1.element_identifier" and "$input2.element_identifier"/g'
-                -e 's/@@outputformat@@/'$output_format'/g'
+                -e 's/@@outputformat@@/'$report_format.output_format'/g'
                 -e '/@@diffoutput@@/{r'$diff_file'' -e ';d}'
                 '$__tool_directory__/template.html' > '$html_file'
         #end if
@@ -25,33 +33,50 @@
     <inputs>
         <param name="input1" type="data" format="txt" label="First input file"/>
         <param name="input2" type="data" format="txt" label="Second input file"/>
-        <param name="generate_report" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Generate HTML report" help="Generates an HTML report to visualize the differences"/>
-        <param name="output_format" type="select" label="Choose report output format" help="Displays the differences in the report using the selected format. Either line by line or side by side.">
-            <option value="side-by-side">Side by side</option>
-            <option value="line-by-line">Line by line</option>
-        </param>
+        <conditional name="report_format">
+            <param name="report_format_select" type="select" label="Choose a report format">
+                <option value="txt_lines">Text file, line-by-line (-u)</option>
+                <option value="txt_columns">Text file, side-by-side (-y)</option>
+                <option value="html">Generates an HTML report to visualize the differences</option>
+            </param>
+            <when value="txt_lines">
+                <param argument="--unified" type="integer" min="0" value="3" label="Output this amount of lines of unified context"/>
+            </when>
+            <when value="txt_columns"/>
+            <when value="html">
+                <param argument="--unified" type="integer" min="0" value="3" label="Output this amount of lines of unified context"/>
+                <param name="output_format" type="select" label="Choose report output format" help="Displays the differences in the report using the selected format. Either line by line or side by side.">
+                    <option value="side-by-side">Side by side</option>
+                    <option value="line-by-line">Line by line</option>
+                </param>
+            </when>
+        </conditional>
     </inputs>
     <outputs>
         <data format="txt" name="diff_file" from_work_dir="output.txt" label="${tool.name} on ${on_string}: Raw Output"/>
         <data format="html" name="html_file" from_work_dir="output.html" label="${tool.name} on ${on_string}: Html Report">
-            <filter>generate_report is True</filter>
+            <filter>report_format['report_format_select'] == 'html'</filter>
         </data>
     </outputs>
     <tests>
         <test expect_exit_code="0" expect_failure="false" expect_num_outputs="1">
             <param name="input1" value="file1.txt"/>
             <param name="input2" value="file1.txt"/>
-            <param name="generate_report" value="false"/>
+            <conditional name="report_format">
+                <param name="report_format_select" value="txt_lines"/>
+            </conditional>
             <output name="diff_file">
                 <assert_contents>
                     <has_n_lines n="0"/>
                 </assert_contents>
             </output>
         </test>
-        <test expect_exit_code="1" expect_failure="false" expect_num_outputs="1">
+        <test expect_exit_code="0" expect_failure="false" expect_num_outputs="1">
             <param name="input1" value="file1.txt"/>
             <param name="input2" value="file2.txt"/>
-            <param name="generate_report" value="false"/>
+            <conditional name="report_format">
+                <param name="report_format_select" value="txt_lines"/>
+            </conditional>
             <output name="diff_file">
                 <assert_contents>
                     <has_n_lines n="5"/>
@@ -63,7 +88,9 @@
         <test expect_exit_code="0" expect_failure="false" expect_num_outputs="2">
             <param name="input1" value="file1.txt"/>
             <param name="input2" value="file2.txt"/>
-            <param name="generate_report" value="true"/>
+            <conditional name="report_format">
+                <param name="report_format_select" value="html"/>
+            </conditional>
             <output name="html_file">
                 <assert_contents>
                     <has_text text="!DOCTYPE html"/>
@@ -73,8 +100,10 @@
         <test expect_exit_code="0" expect_failure="false" expect_num_outputs="2">
             <param name="input1" value="file1.txt"/>
             <param name="input2" value="file2.txt"/>
-            <param name="generate_report" value="true"/>
-            <param name="output_format" value="side-by-side"/>
+            <conditional name="report_format">
+                <param name="report_format_select" value="html"/>
+                <param name="output_format" value="side-by-side"/>
+            </conditional>
             <output name="html_file">
                 <assert_contents>
                     <has_text text="!DOCTYPE html"/>
@@ -85,8 +114,10 @@
         <test expect_exit_code="0" expect_failure="false" expect_num_outputs="2">
             <param name="input1" value="file1.txt"/>
             <param name="input2" value="file2.txt"/>
-            <param name="generate_report" value="true"/>
-            <param name="output_format" value="line-by-line"/>
+            <conditional name="report_format">
+                <param name="report_format_select" value="html"/>
+                <param name="output_format" value="line-by-line"/>
+            </conditional>
             <output name="html_file">
                 <assert_contents>
                     <has_text text="!DOCTYPE html"/>
@@ -95,9 +126,12 @@
             </output>
         </test>
         <test expect_exit_code="0" expect_failure="false" expect_num_outputs="2">
-            <param name="input1" value="file 3.txt"/>
-            <param name="input2" value="file 3.txt"/>
-            <param name="generate_report" value="true"/>
+            <param name="input1" value="file3.txt"/>
+            <param name="input2" value="file3.txt"/>
+            <conditional name="report_format">
+                <param name="report_format_select" value="html"/>
+                <param name="output_format" value="side-by-side"/>
+            </conditional>
             <output name="diff_file">
                 <assert_contents>
                     <has_n_lines n="0"/>
@@ -169,4 +203,4 @@
             }
         </citation>
     </citations>
-</tool>
+</tool>
\ No newline at end of file
--- a/test-data/file 3.txt	Fri Mar 12 16:22:44 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/file3.txt	Mon Dec 09 14:36:40 2024 +0000
@@ -0,0 +1,1 @@
+c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/output_test4.txt	Mon Dec 09 14:36:40 2024 +0000
@@ -0,0 +1,2 @@
+a								a
+							      >	b