Outdated egg!
This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.
If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.
install
Description
A Scheme implementation of the Unix utility install.
Documentation
[procedure] (install-file FILES TARGET #!key OWNER GROUP (MODE 755) PRESERVE-TIME)File(s) are copied to the target file or directory. If the destination is a directory, then the file is copied into the directory with its original filename. If the target file already exists, it is overwritten if permissions allow. install-file attempts to prevent installing a file onto itself. Installing /dev/null (nul on Windows) creates an empty file. mode must be expressed in octal notation; mode, owner and group are ignored on Windows. The return value is unspecified.
[procedure] (install-dir DIRECTORIES #!key OWNER GROUP (MODE 755))Create all components of the given directory(ies). mode must be expressed in octal notation; mode, owner and group are ignored on Windows. The return value is unspecified.
[syntax] (install [-p] [-g GROUP] [-m MODE] [-o OWNER] SRC DST)[syntax] (install [-p] [-g GROUP] [-m MODE] [-o OWNER] SRC ... DIR)
[syntax] (install [-g GROUP] [-m MODE] [-o OWNER] -d DIR ...)
Handy command-line-like syntax around install-file and install-directory.
[procedure] (file=? FILE1 FILE2)Determine whether two paths represents the same file.
Examples
(use install) (install -?) (install -d "/tmp/tests") (install -d "C:\\tmp\\tests") (install -d "C:/tmp/tests") (install -d "/tmp/tests/a" "/tmp/tests/b") (install -d -m 644 "/tmp/tests") (install -m 644 "file1" "/tmp/tests") (install -m 644 "file1" "file2") (install -m 644 "file1" "file2" "/tmp/tests") (install -o "mikele" -m 644 "file1" "/tmp/tests") (install -m 644 -p "file1" "/tmp/tests") (install "/dev/null" "/usr/bin/empty") (install "nul" "C:/bin/empty") (install-file "file1" "/tmp/tests") (install-file '("file1") "/tmp/tests") (install-file '("file1" "file2") "/tmp/tests") (install-file (glob "file*") "/tmp/tests") (install-file "file1" "/tmp/tests" mode: 644) (install-directory "/tmp/tests") (install-directory '("/tmp/tests")) (install-directory '("/tmp/tests/a" "/tmp/tests/b")) (install-directory "/tmp/tests" group: 0 owner: "mikele") (begin (create-symbolic-link "vi" "emacs") (file=? "emacs" "vi")) ;; #t (begin (change-directory "C:\\Windows") (file=? "C:\\Windows\\notepad.exe" "notepad.exe")) ;; #t
Requirements
None. Windows (mingw32) users need to build CHICKEN from git (or a stability version > 4.9.0.1).
Installation
$ chicken-install install
Optionally a command-line utility (instll) is also available.
$ chicken-install install -D install-cmd
$ instll Usage: instll [-p] [-g GROUP] [-m MODE] [-o OWNER] SRC DST instll [-p] [-g GROUP] [-m MODE] [-o OWNER] SRC ... DIR instll [-g GROUP] [-m MODE] [-o OWNER] -d DIR ... -g Set group ownership, instead of process' current group. -m Set permission mode instead of rwxr-xr-x (755). The mode must be expressed in octal notation. -o Set ownership (super-user only). -p Preserve timestamps. Apply modification time of SRC files to corresponding destination files.
About this egg
The source code is hosted at Bitbucket. Feel free to send pull requests or open an issue there. Alternatively, send an e-mail to the chicken-users mailing list for information or requests.
Version History
- 1.0.1
- Initial release
Author
Michele La Monaca