Mercurial > hg > octave-lyh
annotate scripts/miscellaneous/gzip.m @ 8920:eb63fbe60fab
update copyright notices
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 07 Mar 2009 10:41:27 -0500 |
parents | 34b9a5743388 |
children | 1bf0ce0930be |
rev | line source |
---|---|
8920 | 1 ## Copyright (C) 2007, 2008, 2009 David Bateman |
6869 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
6869 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
6869 | 18 |
19 ## -*- texinfo -*- | |
20 ## @deftypefn {Function File} {@var{entries} =} gzip (@var{files}) | |
21 ## @deftypefnx {Function File} {@var{entries} =} gzip (@var{files}, @var{outdir}) | |
22 ## Compress the list of files and/or directories specified in @var{files}. | |
23 ## Each file is compressed separately and a new file with a '.gz' extension | |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
24 ## is created. The original files are not touched. Existing compressed |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
25 ## files are silently overwritten. If @var{outdir} is defined the compressed |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
26 ## versions of the files are placed in this directory. |
8362
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
27 ## @seealso{gunzip, bzip2, zip, tar} |
6869 | 28 ## @end deftypefn |
29 | |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
30 function entries = gzip (varargin) |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
31 if (nargin == 1 || nargin == 2) && (nargout <= 1) |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
32 if nargout == 0 |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
33 __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
34 else |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
35 entries = __xzip__ ("gzip", "gz", "gzip -r %s", varargin{:}); |
6869 | 36 endif |
37 else | |
38 print_usage (); | |
39 endif | |
40 endfunction | |
41 | |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
42 %!error <Invalid call to gzip. Correct usage is> gzip("1", "2", "3"); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
43 %!error <Invalid call to gzip. Correct usage is> gzip(); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
44 %!error <output directory does not exist> gzip("1", tmpnam); |
8362
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
45 %!error <expecting FILES to be a character array> gzip(1); |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
46 %!xtest |
8362
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
47 %! # test gzip together with gunzip |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
48 %! unwind_protect |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
49 %! filename = tmpnam; |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
50 %! dummy = 1; |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
51 %! save(filename, "dummy"); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
52 %! dirname = tmpnam; |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
53 %! mkdir(dirname); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
54 %! entry = gzip(filename, dirname); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
55 %! [path, basename, extension] = fileparts(filename); |
8640
34b9a5743388
fix gzip test code - use filesep()
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents:
8362
diff
changeset
|
56 %! if ! strcmp(entry, [dirname, filesep, basename, extension, ".gz"]) |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
57 %! error("gzipped file does not match expected name!"); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
58 %! endif |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
59 %! if ! exist(entry, "file") |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
60 %! error("gzipped file cannot be found!"); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
61 %! endif |
8362
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
62 %! gunzip(entry); |
8640
34b9a5743388
fix gzip test code - use filesep()
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents:
8362
diff
changeset
|
63 %! if (system(sprintf("diff %s %s%c%s%s", filename, dirname, filesep, |
8362
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
64 %! basename, extension))) |
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
65 %! error("unzipped file not equal to original file!"); |
03b414516dd8
clean up bzip2, gzip and __xzip__
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
8349
diff
changeset
|
66 %! end |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
67 %! unwind_protect_cleanup |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
68 %! delete(filename); |
8640
34b9a5743388
fix gzip test code - use filesep()
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents:
8362
diff
changeset
|
69 %! delete([dirname, filesep, basename, extension]); |
8349
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
70 %! rmdir(dirname); |
02beb5be5683
add bzip2 function
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7017
diff
changeset
|
71 %! end_unwind_protect |