| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.2.4 Tar
- bigloo procedure: tar-read-header [input-port]
Reads a tar header from input-port. If the input-port does not conform the tar format, an IO exception is raised. On success a tar-header descriptor is returned.
- bigloo procedure: tar-header-name tar-header
- bigloo procedure: tar-header-mode tar-header
- bigloo procedure: tar-header-uid tar-header
- bigloo procedure: tar-header-gid tar-header
- bigloo procedure: tar-header-size tar-header
- bigloo procedure: tar-header-mtim tar-header
- bigloo procedure: tar-header-checksum tar-header
- bigloo procedure: tar-header-type tar-header
- bigloo procedure: tar-header-linkname tar-header
- bigloo procedure: tar-header-uname tar-header
- bigloo procedure: tar-header-gname tar-header
- bigloo procedure: tar-header-devmajor tar-header
- bigloo procedure: tar-header-devminir tar-header
Return various information about tar-header.
The following example simulates the Unix command tar xvfz:
(define (untar path)
(let ((pz (open-input-gzip-port path)))
(unwind-protect
(let loop ((lst '()))
(let ((h (tar-read-header pz)))
(if (not h)
lst
(case (tar-header-type h)
((dir)
(let ((path (tar-header-name h)))
(if (make-directory path)
(loop lst)
(error 'untar
"Cannot create directory"
path))))
((normal)
(let* ((path (tar-header-name h))
(dir (dirname path)))
(when (and (file-exists? dir) (not (directory? dir)))
(delete-file dir))
(unless (file-exists? dir)
(make-directory dir))
(with-output-to-file path
(lambda ()
(display (tar-read-block h pz))))
(loop (cons path lst))))
(else
(error 'untar
(format "Illegal file type `~a'"
(tar-header-type h))
(tar-header-name h)))))))
(close-input-port pz))))
- bigloo procedure: untar input-port [:directory (pwd)] [:file #f]
Untars the archive whose content is provided by the input port input-port.
- If :file is provided,
untarextract the content of the file named :file and returns a string. The file name must exactly matches the files of the archive files names. If the file does not exist,untarreturns#f. - If :file is not provided, it untars the whole content,
in the directory denoted by :directory, which defaults to
(pwd). The functionuntar, returns the whole list of created directories and files.
- If :file is provided,
| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on October 23, 2011 using texi2html 5.0.
