Hi all, 

I am trying to write a tool that based on user criteria will run a different script.
In the code below, If I select Use_Snapshot, I see the right interface but somehow galaxy tries to execute the #else part and look for “m” input parameter. The example I have seen in documentation is using the script with same name in both if and else and the number of input arguments is the same as well. Any suggestions/ideas why always #else part gets executed although right interface appears based on user selection. 

Thanks,
Saba

  <command>
    #if $source.source_select==“Use_Snapshot"
        cM-snapshot.sh $input $output
    #else
        cM.sh $m $b $ns $w $s $z $output
    #end if
</command>

<inputs>
 <conditional name="source">
    <param name="source_select" type="select" label="Specify the input">
        <option value="Use_Snapshot">Use Snapshot</option>
        <option value="Set_Values">Set Values</option>
    </param>
    <when value="Use_Snapshot">
     <param name="input" type="data" format="dbm" size="100" label="Input Snapshot"/>
      <sanitizer sanitize="False"/>
    </when>
    <when value="Set_Values">
      <param name="m"  label="Omega_m h^2"  type="float" value="0.1279" min="0.120" max="0.155"/>
      <param name="b"  label="Omega_b h^2"  type="float" value="0.0232" min="0.0215" max="0.0235"/>
      <param name="ns" label="n_s"          type="float" value="0.8629" min="0.85" max="1.05"/>
      <param name="w"  label="w"            type="float" value="-1.184" min="-1.30" max="-0.70"/>
      <param name="s"  label="sigma_8"      type="float" value="0.6159" min="0.61" max="0.9"/>
      <param name="z"  label="z"            type="float" value="1.0"    min="0.0" max="1.0"/>
      <sanitizer sanitize="False"/>
    </when>
 </conditional>
  </inputs>