aboutsummaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)Author
2024-03-22ccwl: Implement js-expression.Arun Isaac
js-expression corresponds to ExpressionTool in the CWL specification. * ccwl/ccwl.scm (<js-expression>): New type. (js-expression): New macro. (function-inputs, function-outputs, function-object): Support <js-expression> objects. (function-input-keys): Mention <js-expression> objects in docstring. * ccwl/cwl.scm (function->cwl, workflow->cwl-scm): Support <js-expression> objects. (command->cwl-scm): Move staging requirements handling to ... (staging-requirements): ... this new function. (js-expression->cwl, js-expression->cwl-scm): New functions. * ccwl/graphviz.scm (function->dot): Support <js-expression> objects. (command->graph): Abstract to ... (single-node-workflow->graph): ... this new function. (js-expression->dot, js-expression->graph): New functions. * scripts/ccwl (main): Support <js-expression> objects. * doc/ccwl.skb (Cookbook){Javascript expressions via ExpressionTool}: New section. * doc/js-expression-iota.scm: New file.
2024-03-22scripts: Use unified function terminology.Arun Isaac
Call workflows and commands by our unified notion of "function". This makes it more succinct when adding more kinds of functions. * ccwl/cwl.scm (workflow-or-command->cwl): Rename to function->cwl. * ccwl/graphviz.scm (workflow-or-command->dot): Rename to function->dot. * scripts/ccwl (main): Use function->cwl and function->dot.
2023-11-18scripts: When ccwl crashes, say so explicitly.Arun Isaac
* scripts/ccwl (main): When ccwl crashes, say so explicitly.
2023-09-28scripts: Raise exception when file does not return supported object.Arun Isaac
* scripts/ccwl (main): Raise exception when file returns neither workflow nor command.
2023-09-28scripts: Support returning command objects from ccwl files.Arun Isaac
* scripts/ccwl (main): Replace workflow->cwl and workflow->dot with workflow-or-command->cwl and workflow-or-command->dot.
2023-09-28scripts: Catch and report &formatted-message conditions.Arun Isaac
* scripts/ccwl (main): Catch and report &formatted-message conditions.
2023-09-20scripts: Ignore quit exceptions when requesting the user report bugs.Arun Isaac
* scripts/ccwl: Import (ice-9 exceptions). (main): Do not print backtrace or request the user to report a bug for quit exceptions.
2023-09-20scripts: Set scheme mode in Emacs.Arun Isaac
* scripts/ccwl: Set scheme mode in Emacs.
2023-09-20scripts: Catch uncaught exceptions and request the user report them.Arun Isaac
* scripts/ccwl (main): Catch uncaught exceptions and request the user report them to the issue tracker.
2023-09-20scripts: Allow script to be loaded without executing main.Arun Isaac
Call main from the shebang command instead of calling it directly. This allows us to run "guile -l scripts/ccwl" without actually running main. This seems to be important for Emacs Geiser as it freezes up without this fix. * scripts/ccwl: Call main from shebang. Do not call main directly. (main): Accept args as regular argument instead of as a rest argument.
2022-04-09scripts: Do not pass multiple arguments to env.Arun Isaac
* scripts/ccwl: Do not pass multiple arguments to env. Pass them through sh.
2022-04-09scripts: Do not auto-compile the ccwl script.Arun Isaac
* scripts/ccwl: Add --no-auto-compile to shebang.
2022-01-16scripts: Decide to not compile files ever.Arun Isaac
* scripts/ccwl (main): Remove FIXME note about compiling ccwl files.
2022-01-16scripts: Report ccwl syntax violations.Arun Isaac
* ccwl/ui.scm: New file. * scripts/ccwl: Import (rnrs exceptions), (srfi srfi-28), (ccwl conditions) and (ccwl ui). (main): Handle ccwl syntax violations by reporting them and exiting.
2022-01-16scripts: Read using read-syntax.Arun Isaac
read-syntax gives us get better source properties. * scripts/ccwl (main): Read using read-syntax.
2022-01-10Migrate to hand-written Makefiles.Arun Isaac
The autotools are really overkill for a simple Guile project like ccwl. * .gitignore: Delete autotool generated files. Add Makefile.include. * Makefile.am, Makefile, build-aux/distcheck.scm, configure, configure.ac, configure.scm: New files. * NEWS: Rename to NEWS.org. Remove Emacs file-local variable to use org mode. * bootstrap.sh: Delete file. * build-aux/generate-cwl-output.sh.in: Rename to ... * build-aux/generate-cwl-output.sh: ... this. Replace autoconf variables for cwltool and sed. * build-aux/test-driver.scm.in: Rename to ... * build-aux/test-driver.scm: ... this. Do not import (ice-9 getopt-long). (%options): Delete variable. (my-gnu-runner): Do not write to log or trs ports. Accept test files as command-line arguments. Update invocation of my-gnu-runner. Print summary of results. * guix.scm (ccwl)[native-inputs]: Remove autoconf and automake. * pre-inst-env.in: Rename to ... * pre-inst-env: ... this. Replace autoconf variables for guile, abs_top_builddir and abs_top_srcdir. * scripts/ccwl.in: Rename to ... * scripts/ccwl: ... this. Replace autoconf variable for guile.
2021-11-02ccwl: Rename graphviz to dot.Arun Isaac
What we call "graphviz syntax" is actually the "graphviz dot language". Rename accordingly. * ccwl/graphviz.scm (workflow->graphviz): Rename to workflow->dot. Call graph->dot instead of graph->graphviz. (escape-id): Update docstring to mention dot. (graph->graphviz): Rename to graph->dot. Update docstring to mention dot. * scripts/ccwl.in (main): Accept --to=dot instead of --to=graphviz. Update --help usage information. * Makefile.am (%.dot): Pass --to=dot instead of --to=graphviz.
2021-10-12scripts: Allow compiling to graphviz.Arun Isaac
* scripts/ccwl.in: Import (ccwl graphviz). (main): Implement the --to option.
2021-10-12scripts: Print usage information on --help and incorrect usage.Arun Isaac
* scripts/ccwl.in: Import (srfi srfi-28). (invalid-operand): New function. (%help-option): New variable. (main): Print usage information on --help and incorrect usage.
2021-10-12scripts: Use args-fold.Arun Isaac
* scripts/ccwl.in: Import (srfi srfi-37). (invalid-option): New function. (main): Use args-fold to extract source filename.
2021-10-12scripts: Wrap main body in function.Arun Isaac
This makes it easier to record changes in the changelog of commit messages. * scripts/ccwl.in: Invoke main. (main): New function.
2021-10-11ccwl: Factorize out CWL generation code to separate file.Arun Isaac
This factorization is required to support other compilation targets such as graphviz, bash, scheme, etc. * ccwl/cwl.scm: New file. * Makefile.am (SOURCES): Register it. * ccwl/ccwl.scm (ccwl): Export command?, command-inputs, command-outputs, command-args, command-stdin, command-other, workflow?, workflow-steps, workflow-inputs, workflow-outputs, workflow-other, input?, input-id, input-type, input-label, input-default, input-position, input-prefix, input-other, output?, output-id, output-type, output-binding, output-source, output-other, step?, step-id, step-run, step-in, step-out, unspecified-default?. (<workflow>): New type. (filter-alist): Move to cwl.scm. (make-workflow): Refactor into workflow->cwl-scm in cwl.scm. (output->cwl): Move to cwl.scm as output->cwl-scm. (command->cwl): Move to cwl.scm as command->cwl-scm. (workflow-steps): Rename to collect-steps. Clarify docstring. (workflow): Use collect-steps instead of workflow-steps. Explicitly pass empty list as other argument of make-workflow. Add TODO note to implement it properly. * scripts/ccwl.in: Import (ccwl cwl) instead of (ccwl yaml). Use workflow->cwl instead of scm->yaml. * tests/ccwl.scm ("stdin input should not have inputBinding"): Use command->cwl-scm from (ccwl cwl) instead of command->cwl from (ccwl ccwl).
2021-07-04scripts: Do not compile ccwl files.Arun Isaac
* scripts/ccwl.in: Do not compile ccwl files.
2021-05-24Remove unnecessary -s flag from shebang.Arun Isaac
* pre-inst-env.in, scripts/ccwl.in: Remove unnecessary -s flag from shebang.
2021-04-26Set path to guile in shebang from configure.Arun Isaac
* configure.ac: Generate scripts/ccwl. * scripts/ccwl: Rename to ... * scripts/ccwl.in: ... this. Set path to guile in shebang as an autoconf substitution.
2021-04-26Add ccwl script.Arun Isaac
* scripts/ccwl: New file.