source: trunk/gli/src/org/greenstone/gatherer/remote/ZipCollectionShell.java@ 13328

Last change on this file since 13328 was 13328, checked in by mdewsnip, 17 years ago

Moved most of the zip code into the "remote" package, to better indicate where it is used and to simplify the creation of the GLIServer.jar file.

  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1package org.greenstone.gatherer.remote;
2
3import java.io.*;
4import java.util.zip.*;
5
6
7/**
8 */
9public class ZipCollectionShell
10{
11 static public void main(String[] args)
12 {
13 if (args.length != 3) {
14 System.err.println("Usage: ZipCollectionShell <zip-file> <collect-directory-path> <collection-name>");
15 return;
16 }
17
18 String zip_file_path = args[0];
19 String collect_directory_path = args[1];
20 String collection_name = args[2];
21
22 if (!collect_directory_path.endsWith(File.separator)) {
23 collect_directory_path += File.separator;
24 }
25
26 try {
27 ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zip_file_path));
28 ZipTools.ZipFilter null_zip_filter = new ZipTools.NullZipFilter();
29
30 // Add archives directory, with doc.xml files only
31 String archives_relative_path = collection_name + File.separator + "archives";
32 ZipTools.ZipFilter collection_archives_zip_filter = new ZipCollectionArchives.CollectionArchivesZipFilter();
33 ZipTools.addFileToZip(zos, collect_directory_path, archives_relative_path, collection_archives_zip_filter);
34
35 // Add etc/collect.cfg file
36 String collect_cfg_relative_path = collection_name + File.separator + "etc" + File.separator + "collect.cfg";
37 ZipTools.addFileToZip(zos, collect_directory_path, collect_cfg_relative_path, null_zip_filter);
38
39 // Add images directory
40 String images_relative_path = collection_name + File.separator + "images";
41 ZipTools.addFileToZip(zos, collect_directory_path, images_relative_path, null_zip_filter);
42
43 // Add import directory, with zero-length files except for metadata.xml
44 String import_relative_path = collection_name + File.separator + "import";
45 ZipTools.ZipFilter collection_import_zip_filter = new CollectionImportZipFilter();
46 ZipTools.addFileToZip(zos, collect_directory_path, import_relative_path, collection_import_zip_filter);
47
48 // Add index/build.cfg file
49 String build_cfg_relative_path = collection_name + File.separator + "index" + File.separator + "build.cfg";
50 ZipTools.addFileToZip(zos, collect_directory_path, build_cfg_relative_path, null_zip_filter);
51
52 // Add macros/extra.dm file
53 String extra_dm_relative_path = collection_name + File.separator + "macros" + File.separator + "extra.dm";
54 ZipTools.addFileToZip(zos, collect_directory_path, extra_dm_relative_path, null_zip_filter);
55
56 // Add metadata directory
57 String metadata_relative_path = collection_name + File.separator + "metadata";
58 ZipTools.addFileToZip(zos, collect_directory_path, metadata_relative_path, null_zip_filter);
59
60 zos.close();
61 }
62 catch (Exception exception) {
63 exception.printStackTrace();
64 }
65 }
66
67
68 static private class CollectionImportZipFilter
69 extends ZipTools.NullZipFilter
70 {
71 public boolean shouldIncludeFileContent(String relative_file_path)
72 {
73 // We only include file content for metadata.xml files
74 return (relative_file_path.equals("metadata.xml") || relative_file_path.endsWith(File.separator + "metadata.xml"));
75 }
76 }
77}
Note: See TracBrowser for help on using the repository browser.