Usage

How can I use it?  (Novice Users' section)

If you are new to both UNIX and SystemWorks, and if you are enough deliberate, you had better to check `Novice user mode' in Preference panel. It will disable some menu items, to avoid bothering you on obscure features.

Obtain scripts from somewhere; e.g. friendly gurus, FTP sites...
If you are new to UNIX at all, you must ask friendly UNIX users for assistance. Tell him what you want to do, and ask him whether it's possible to do the job with this software.

Select `Script', then `Open'. Choose the script file in Open Panel.
Once you've got preprogrammed scripts, all you need to do is to open the script. It can be performed in standard manner. Double click in the Workspace Manager also work as it should. Keeping a miniaturized browser for the script directory might be a good idea.

Drag the file you want to process, into the newly created window.
The title of each script window will tell you what the script does. If you want to perform certain task on certain file, bring up the script window (double-click when miniaturized, select `Activate` menu when hidden under other windows), then drag the Icon into that window.

For further information...
Some scripts are included in official distribution of this software. Detailed document is also included in the distribution package. Ask your system administrator if you can't find it yourself.

How can I program it? (UNIX Users' section)

In this section, I documented differences with conventional UNIX shell. For further details on each menu/panel/window, consult the document "SystemWorks.wn", which should be enclosed in the distribution package.

Basically, sequential execution and piped execution are identical.
Every UNIX command takes some sort of data as input; output goes to somewhere visible. In that sense, piped commands and sequential commands are identical. Therefore, in SystemWorks, no distinction is made between these two, to simplify the visual representation and to encapsulate details of UNIX.
SystemWorks automatically controls the sequence of execution; namely, if two processes are connected via pipes, they will be executed concurrently. If two processes are connected via intermediate files, they will be executed consecutively.

You don't have to care about temporary files and redirections.
If said filter takes input from a file, and if its previous filter writes output to standard output, automatic redirection takes place; i.e. output of the previous filter goes to temporary file, then the temporary file will be fed to the filter.
This feature improves modularity of each filter. Such modularity enables you to perform complex tasks just by putting elemental functions each other.
However, misuse of such automaticity will lead to unwanted result. Careless scripts may fill /tmp filesystem with full of junks. If you told that "cat -" would read input from file, it will block immediately.

Variables are similar to that of shell script.
Currently, the following shell variables are available:
	$s		Source directory; where incoming file resides.
	$i		Input file; basename of input file.
	$r		Root name; name of input file, with last extention stripped.
	$m		Selected menu item in its PopUp List.
However, you can't define your own. This restriction is necessary to maintain modularity on each filter, because the ability to define your own shell variable in each filter implies ability to maintain context over filters. What if some novice users incorporated your context-sensitive filter into other scripts?

Designing scripts...
There are some points to care, when you design your own version of script.
	Output Icon should represent output file / device.
	Don't expect versatile function from PopUp List.