sjef
sjef

The sjef program is a command-line interface to the sjef library, allowing the manipulation of project bundles. A bundle is a directory that represents one instance of running the target program, and contains all input and output files, plus a registry of properties. The general syntax is

sjef [flags] operation [flags] project additional...

Generally applicable flags include

  • -s | --suffix suffix Specify the filename extension (without the leading .) of the project. This forces sjef to work only with projects of type suffix.
  • -v | --verbose Increase verbosity. Can be specified more than once to increase the amount of information shown.
  • --suffix-inp suffix Specify the suffix that denotes an input file. Default inp.
  • --suffix-out suffix Specify the suffix that denotes an output file. Default out.
  • --suffix-xml suffix Specify the suffix that denotes a marked-up output file. Default xml.

project is the file name of the bundle, and can be specified as an absolute or relative path. If it has no extension and the -s flag has not been used, the extension .sjef is appended. If -s has been used, and the extension is absent or different to that specified, the -s extension is appended.

operation is one of

new: Make a completely new project bundle. Any additional arguments are interpreted as files to be imported into the project.

edit: Edit the input file, whose name is the project base name with extension from the --suffix-inp flag, using ${VISUAL} (default ${EDITOR}, default vi).

browse: Browse the output file, whose name is the project base name with extension from the --suffix-out flag, using ${PAGER} (default less).

run: Launch a job either on the local machine or on a preconfigured backend. Valid flags that can then be specified are

  • -b | --backend backend: specify the name of the backend to be used (default is last used, or local)
  • -p | --parameter key=*value*: specify a parameter value for substitution in the template for run_command defined in the backend
  • -w | --wait
  • -f | --force

status: Report the status of the job launched by run

kill: Kill the job launched by run

erase: Erase the project

copy: Make a copy of the project bundle. The additional argument gives the destination, which, if already existing, will not be overwritten unless the -f flag is given.

move: Move the project bundle. The additional argument gives the destination, which, if already existing, will not be overwritten unless the -f flag is given.

import: Copy files into the project bundle. For each additional argument, the file specified is copied into the project.

export: Copy files out of the project bundle. For each additional argument, its base name specifies which file in the project, and full name gives the destination to be copied to.

Backends are defined in per-user and per-system configuration files; see further details.

sjef can be localised onto a single software package using the options described above with the help of a shell alias, for example

alias cmolpro='sjef -s molpro'