Name | Modified | Size | Downloads / Week |
---|---|---|---|
shmake | 2014-03-15 | 3.3 kB | |
example.sh.shmake | 2013-06-10 | 1.1 kB | |
example.deplist.shmake | 2013-06-10 | 3.4 kB | |
README | 2013-06-10 | 5.8 kB | |
shmake.1 | 2013-06-10 | 5.1 kB | |
README.txt | 2016-04-08 | ||
Totals: 6 Items | 18.7 kB | 0 |
/usr/bin/groff /usr/bin/grotty SHMAKE(1) User Commands SHMAKE(1) NAME shmake - easily templates dependancy situations, runs commands accord- ingly SYNOPSIS shmake [options] File [label] DESCRIPTION Runs each left Command in File when all files on it's right are ready (touched). (see below on how commands run) This program provides any commands with a quick and simplest to use automatic dependancy resolver. It has a as few features deemed needed and is end-point alterable for spot needs / plain text. For ordering and pausing commands which beget dependant needs. For programs who's flow needs to be plain to see, easily modifiable, and automatically resolved. File File is simple lr format. See examples of the simple LR File below. -h --help -n show what commands would launch next but don't launch -q quiet -s stop if any dep is unmet -w seconds to wait between scans label show if label is ready. if it's an aside and is, launch it (for item readiness check or asides) Default is to scan File until goal completion (it pauses between scans). If there is no set goal it continually checks up on / runs commands if needs be. File is a 2 column list of steps toward a goal (see examples further below). left a command label which is invoked when right is met right a list dependent commands / labels to wait for goal if on left, right determines success and quit Detours. One of these 'fakes' can be pre-pended to any label: % inv, makes prepended item 'invisible' - false, always missing and never runs ^ nodate, no updating / ignore date @ aside, launches only as aside (left only, see below) # comment on rest of line MANUAL The LR list is read in order, launching each left who's right is ready. (rights are not launched) If there is no complete "goal" it scanning starts again from top. Commands / Left Labels. label.sh will be invoked as command and should create file name "label" if successful. If label.sh isn't found 'File.sh' is tried with parameter "label" (of 'shmake File'). Dependancies / Right Labels. After any 'label.sh' runs it (should) 'touch label' upon success. These label files are used to determine status of what is completed. Because Commands invokes "label.sh" instead of label, lefts can be rights of other lefts without any issues. shmake(1) prints progress while running that is verbosely self explani- tory. Goals. A left label "goal" is special. When it's conditions are met shmake quits with success. "goal" can appear multiple times and have differing depends. Auto Updating. If any dependant of a command is newer(1) than command command then command is invoked [to update]. This solves another dif- ficult dependancy problem of which needs / don't need reworking. Stopping. If scanning needs to stop touch(1) file "stop" and it will stop normally when the current label finishes. Ctrl-C if you must. Format. Any labels at the start of line are left and all labels until the next left are a right. Other possible 'detour' modifies do not really add convenience because they are better achieved with simpler L-R notation. If I missed some- thing make has this needs let me know ! Re-Scan. If File changed while shmake(1) is running shmake uses it. This is for allowing changes that shouldn't want quitting out. Just keep in mind if saving and editing while it's running please. The aside. seeing shdeps --help, 'shdeps file fun' will show if fun is is ready and quit. But if it's an aside, @fun, then shdeps first launches it (asides never launch otherwise). see example above. @ used on the right are ignored. make(1) uses first left as goal and can't change goals. EXAMPLES COMMANDS FILES / DEPENDENCIES spool pages.spurious chap spool summary.pg doit printready chap --------------------- fun1 collect_sounds fun2 collect_sights fun3 fun2 find_map fun4 fun3 fun1 request goal fun4 visited USES As a precaution and convenince for developing anything with steps that may change or be partially replaced. For preventing static dummy checks from creeping into worker steps (ruinous if design alters). For programs wishing to utilize dependency solving without need of redesigning it. shmake is useful when -o when there are many steps which may not be complete and redoing done steps is avoided (ex. printing chapters of a book with a distiller script) -o there is no order to commands except to work with current status FILES example.deplist.shmake example.sh.shmake BUGS please mail any bugs you find I'd like shmake to be simple for everyone LICENSE pre-release; not yet licensed VERSION Version 0.01 AUTHOR John D. Hendrickson, debguy@sourceforge.net SEE ALSO make(1) shmake 1.0 06 Jul 2011 SHMAKE(1)