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

Last change on this file since 13320 was 12649, checked in by mdewsnip, 18 years ago

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