Skip to content

oxo-flow touch#

Mark workflow outputs as up-to-date without re-executing rules.


Usage#

oxo-flow touch [OPTIONS] <WORKFLOW> [OVERRIDES]...

Arguments#

Argument Description
<WORKFLOW> Path to the .oxoflow workflow file
[OVERRIDES]... Direct config overrides as trailing positionals — the forms KEY=VALUE and --KEY=VALUE work for any key; the bare space form --KEY VALUE is accepted only for keys declared with the declarative inline-table syntax (key = { default = … }) and is rejected as an unknown argument for plain key = "value" keys (touch's override gate sees only the declarative keys, so a space-form plain-key override is indistinguishable from a mistyped option). Needed when outputs or wildcard expansion branch on {config.*} (issue #432). Command flags must come before the overrides.

Options#

Option Short Description
--rule -r Specific rule(s) whose outputs to touch
--workdir <DIR> -d Working directory the outputs live in (default: the workflow file's directory)
--arg <KEY=VALUE> Config override (KEY=VALUE or --KEY VALUE); touch validates output paths against the overridden values — the same machinery as the [OVERRIDES]... positionals
--verbose -v Enable debug-level logging (global)
--quiet — Suppress informational output, including the version banner (global)
--no-color — Disable colored output, also respects the NO_COLOR environment variable (global)

Examples#

Touch all outputs#

oxo-flow touch pipeline.oxoflow

Touch outputs of a specific rule#

oxo-flow touch pipeline.oxoflow -r bwa_align

Touch outputs whose paths depend on config#

# Output pattern "{config.out_dir}/x.bam" — resolve against the override,
# exactly as `run` would with the same value
oxo-flow touch pipeline.oxoflow out_dir=results/cohort-A

Output#

oxo-flow v0.23.2 — Rust-native bioinformatics pipeline engine
  ✓ sample1.bam
  ✓ sample1.bam.bai
  ✓ sample2.bam
  ✓ sample2.bam.bai

Done: 4 file(s) touched, 0 wildcard pattern(s) skipped

Notes#

  • Updates the modification time of output files to the current time
  • If an output file does not exist, an empty file will be created
  • Useful for forcing the engine to skip rules when outputs were generated externally
  • Wildcard patterns are skipped as they cannot be touched without specific values
  • Config overrides reuse run's override machinery, so touch and run agree on what an override means and on the resolved output locations (issue #432)