6.22  Unit: script-utils

This unit contains some utility procedures for Shell scripting and for some file operations.

This unit uses the extras and regex units.

6.22.1  Pathname operations

[procedure] (absolute-pathname? PATHNAME)
Returns #t if the string PATHNAME names an absolute pathname, and returns #f otherwise.

[procedure] (decompose-pathname PATHNAME)
Returns three values: the directory-, filename- and extension-components of the file named by the string PATHNAME. For any component that is not contained in PATHNAME, #f is returned.

[procedure] (make-pathname DIRECTORY FILENAME [EXTENSION
)]
[procedure] (make-absolute-pathname DIRECTORY FILENAME [EXTENSION
] Returns a string that names the file with the components DIRECTORY, FILENAME and (optionally) EXTENSION. DIRECTORY can be #f (meaning no directory component), a string or a list of strings. FILENAME and EXTENSION should be strings or #f. make-absolute-pathname returns always an absolute pathname.

[procedure] (pathname-directory PATHNAME)
[procedure] (pathname-file PATHNAME)
[procedure] (pathname-extension PATHNAME)
Accessors for the components of PATHNAME. If the pathname does not contain the accessed component, then #f is returned.

[procedure] (pathname-replace-directory PATHNAME DIRECTORY)
[procedure] (pathname-replace-file PATHNAME FILENAME)
[procedure] (pathname-replace-extension PATHNAME EXTENSION)
Return a new pathname with the specified component of PATHNAME replaced by a new value.

[procedure] (pathname-strip-directory PATHNAME)
[procedure] (pathname-strip-extension PATHNAME)
Return a new pathname with the specified component of PATHNAME stripped.

6.22.2  Miscellaneous utilities

[procedure] (create-temporary-file [EXTENSION])
Creates an empty temporary file and returns it's pathname. If EXTENSION is not given, then .tmp is used. If the environment variable TMPDIR, TEMP or TMP is set, then the pathname names a file in that directory.

[procedure] (delete-file* FILENAME)
If the file FILENAME exists, it is deleted and #t is returned. If the file does not exist, nothing happens and #f is returned.

[procedure] (system* FORMATSTRING ARGUMENT1 ...)
Similar to (system (sprintf FORMATSTRING ARGUMENT1 ...)), but signals an error if the invoked program should return a nonzero exit status.