Ugarit (by alaric)
The core of Ugarit is ready. Now I just need to wrap some UI around it...
However, the code I have will now archive and restore directory trees!
Take a look. Here's the input:
-bash-3.2$ ls -l test-data
total 4
prw-r--r-- 1 alaric users 0 Jan 15 20:52 FIFO
lrwxr-xr-x 1 alaric users 18 Jan 15 03:02 LICENCE.txt -> subdir/LICENCE.txt
-rw-r--r-- 1 alaric users 0 Jan 15 02:44 README.txt
brw-r--r-- 1 alaric users 0, 0 Jan 15 20:52 blockdev
crw-r--r-- 1 alaric users 0, 0 Jan 15 20:53 chardev
drwxr-xr-x 3 alaric users 512 Jan 15 10:01 subdir
-bash-3.2$ ls -l test-data/subdir/
total 4
-rw-r--r-- 1 alaric users 1527 Jan 15 02:44 LICENCE.txt
...and here's the output. Note the file modification times are preserved, the FIFO and the device special files and the symlink and the zero-length file and the subdirectory make it, too. The modtime of the symlink isn't preserved, but that's because there doesn't seem to be a POSIX function to do it - I use utime
to set the times, although NetBSD seems to have a utimes
/lutimes
pair that can do symlinks properly, I don't know how widespread it is.
It does the mode, uid and gid, too; note that the files come out owned as alaric, even though I ran the extract as root.
-bash-3.2$ ls -l tmp3
total 4
prw-r--r-- 1 alaric users 0 Jan 15 20:52 FIFO
lrwxr-xr-x 1 alaric users 18 Jan 17 01:03 LICENCE.txt -> subdir/LICENCE.txt
-rw-r--r-- 1 alaric users 0 Jan 15 02:44 README.txt
brw-r--r-- 1 alaric users 0, 0 Jan 15 20:52 blockdev
crw-r--r-- 1 alaric users 0, 0 Jan 15 20:53 chardev
drwxr-xr-x 3 alaric users 512 Jan 15 10:01 subdir
-bash-3.2$ ls -l tmp3/subdir/
total 4
-rw-r--r-- 1 alaric users 1527 Jan 15 02:44 LICENCE.txt
Now, give me a moment while I wrap a command-line shell around it and some higher-level management stuff, then run a more serious test, and it'll be ready for initial release...
By Faré, Sat 17th Jan 2009 @ 11:09 pm
Congrats! Tell us more...