Revised draft of SRFI 103, 104
David Van Horn
(11 Dec 2009 16:03 UTC)
|
A utility for renaming old-style file names Derick Eddington (12 Dec 2009 06:27 UTC)
|
Re: A utility for renaming old-style file names
Göran Weinholt
(25 Dec 2009 19:37 UTC)
|
Re: A utility for renaming old-style file names
Derick Eddington
(26 Dec 2009 23:24 UTC)
|
The new revision of SRFI 103 changes the file name extension for R6RS library files from .sls and .IMPL.sls to .r6rs-lib and .IMPL-r6rs-lib. I've made a program to assist with renaming files, and it is available as the rename-old-style.r6rs-prog file in the tar-ball at: http://srfi.schemers.org/srfi-104/library-files-utilities.tar.gz . I've successfully used it to rename the files of my collections of R6RS libraries, and have tested it with Ikarus and PLT. It's an R6RS program and it requires the library (srfi :104 library-files-utilities), available in the same tar-ball, and a number of libraries from my Xitomatl collection [1] (revision at least 194 is required (and that revision has old-style file names)). What follows are instructions for using it and an example. Its help print-out is: Usage: rename-old-style directory rename-command delete-command Rename old-style .sls and .IMPL.sls to .r6rs-lib and .IMPL-r6rs-lib, also normalizing %-encoding of characters. Ask to remove PLT-style versions. Ask to rename to implicit file names. Ask to rename directories which may need normalizing. Ask to delete or rename symbolic links. Examples: rename-old-style a-collection mv rm rename-old-style a-collection "bzr mv" "bzr rm" rename-old-style a-collection "echo rename" "echo delete" Arguments: directory: A directory containing library file names to process. It may be renamed itself, its contents may be renamed, and it is recursively descended to maybe rename in its sub-directories. rename-command: A shell command prefix which renames files. It must take two arguments: the old file name and the new file name. delete-command: A shell command prefix which deletes files. It must take one argument: the file name to delete. The below instructions are for running it on an R6RS system which does not support SRFI 103 and uses .sls and .IMPL.sls files and does not support implicit file names. (It can also be run on a system which does support SRFI 103, such as my modified Ikarus [2], if new-style library files exist for the required libraries.) Step 0: install pre-requisites $ cd /path/to/search-path $ bzr checkout --lightweight lp:~derick-eddington/scheme-libraries/xitomatl $ bzr checkout --lightweight lp:~scheme-libraries-team/scheme-libraries/srfi $ mkdir srfi/%3a104 # might need to be different, depending on system $ cd srfi/%3a104 $ wget http://srfi.schemers.org/srfi-104/library-files-utilities.tar.gz $ tar -x -z -f library-files-utilities.tar.gz Step 1: setup (srfi :104 library-files-utilities) for use with .sls system $ cd /path/to/srfi/%3a104 $ ln -s library-files-utilities/main.r6rs-lib library-files-utilities.sls $ cd library-files-utilities $ ln -s per-OS.r6rs-lib per-OS.sls $ ln -s initialize.SYSTEM-r6rs-lib initialize.SYSTEM.sls # replace SYSTEM Step 2: rename a collection of library files $ cd /path/to/search-path $ ls -l -R %E2%99%A5%CE%BB # only for example purposes %E2%99%A5%CE%BB: -rw-r--r-- %3a*poiuy.%ce%bb.sls lrwxrwxrwx alias.ajax.sls -> qwerty-3-4.sls drwxr-xr-x foo%3abar*zab%58blah -rw-r--r-- foo%3abar*zab%58blah.acme.sls -rw-r--r-- foo%3abar*zab%58blah.sls drwxr-xr-x hoho -rw-r--r-- hoho.sls -rw-r--r-- qwerty-3-4.sls %E2%99%A5%CE%BB/foo%3abar*zab%58blah: -rw-r--r-- asdf.sls %E2%99%A5%CE%BB/hoho: -rw-r--r-- hjkl-1-2.sls -rw-r--r-- hjkl-1-2.super.sls lrwxrwxrwx hjkl.sls -> hjkl-1-2.sls lrwxrwxrwx hjkl.super.sls -> hjkl-1-2.super.sls $ scheme-script /path/to/rename-old-style.r6rs-prog %E2%99%A5%CE%BB mv rm Rename directory %E2%99%A5%CE%BB ? [yes/no] yes Delete symlink â¥Î»/alias.ajax.sls ? [yes/no] no Rename symlink â¥Î»/alias.ajax.sls ? [yes/no] yes Rename â¥Î»/hoho.sls to implicit file name? [yes/no] no Remove version of â¥Î»/qwerty-3-4.sls ? [yes/no] no Rename â¥Î»/foo%3abar*zab%58blah.acme.sls to implicit file name? [yes/no] yes Rename â¥Î»/foo%3abar*zab%58blah.sls to implicit file name? [yes/no] yes Rename directory â¥Î»/foo%3abar*zab%58blah ? [yes/no] yes Delete symlink â¥Î»/hoho/hjkl.super.sls ? [yes/no] yes Delete symlink â¥Î»/hoho/hjkl.sls ? [yes/no] yes Remove version of â¥Î»/hoho/hjkl-1-2.super.sls ? [yes/no] yes Remove version of â¥Î»/hoho/hjkl-1-2.sls ? [yes/no] yes $ ls -l -R â¥Î» # only for example purposes â¥Î»: -rw-r--r-- %3A%2Apoiuy.%ce%bb-r6rs-lib # system name unchanged lrwxrwxrwx alias.ajax-r6rs-lib -> qwerty-3-4.sls # now it's a broken symlink drwxr-xr-x foo%3Abar%2AzabXblah drwxr-xr-x hoho -rw-r--r-- hoho.r6rs-lib -rw-r--r-- qwerty-3-4.r6rs-lib â¥Î»/foo%3Abar%2AzabXblah: -rw-r--r-- asdf.r6rs-lib -rw-r--r-- main.acme-r6rs-lib -rw-r--r-- main.r6rs-lib â¥Î»/hoho: -rw-r--r-- hjkl.r6rs-lib -rw-r--r-- hjkl.super-r6rs-lib Note that rename-old-style.r6rs-prog can easily be modified to rename other extensions such as .sps to .r6rs-prog. [1] https://code.launchpad.net/~derick-eddington/scheme-libraries/xitomatl [2] https://code.launchpad.net/~derick-eddington/ikarus/ikarus.dev--SRFI-104 -- : Derick ----------------------------------------------------------------