- Timestamp:
- 2009-03-02T13:41:33+13:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gli/trunk/src/org/greenstone/gatherer/collection/CollectionManager.java
r18412 r18606 419 419 420 420 /** When basing a new collection on an existing one, we need to copy 421 * over some extra directories: images and macros 421 * over some extra directories: all except import, archives, building, index 422 * really we just want images, macros, perllib, but there may also be eg style, or other dirs. 422 423 */ 423 424 private boolean copyExtraBaseCollStuff(File new_coll_dir, File base_coll_dir) { … … 425 426 return false; 426 427 } 427 DebugStream.println("Copying images and macros dirs from the base collection"); 428 try { 429 // do the images dir 430 File base_coll_images = new File(base_coll_dir, "images"); 431 if (base_coll_images.isDirectory()) { 432 // copy all the images over 433 File new_coll_images = new File(new_coll_dir, "images"); 434 new_coll_images.mkdirs(); 435 436 // copy the contents over 437 Gatherer.f_man.getQueue().copyDirectoryContents(base_coll_images, new_coll_images); 438 } 439 } 440 catch (Exception e) { 441 DebugStream.println("Couldn't copy over the images dir from the base collection: "+e.toString()); 442 } 443 try { 444 // do the macros dir 445 File base_coll_macros = new File(base_coll_dir, "macros"); 446 if (base_coll_macros.isDirectory()) { 447 // copy all the macros over 448 File new_coll_macros = new File(new_coll_dir, "macros"); 449 new_coll_macros.mkdirs(); 450 451 // copy the contents over 452 Gatherer.f_man.getQueue().copyDirectoryContents(base_coll_macros, new_coll_macros); 453 } 454 } 455 catch (Exception e) { 456 DebugStream.println("Couldn't copy over the macros dir from the base collection: "+e.toString()); 457 } 428 DebugStream.println("Copying extra dirs from the base collection"); 429 430 431 File subdirs[] = base_coll_dir.listFiles(); 432 for (int i = 0; subdirs != null && i < subdirs.length; i++) { 433 File subdir = subdirs[i]; 434 if (subdir.isDirectory()) { 435 String dir_name = subdir.getName(); 436 // ignore those we don't need, (archives, buildng, index) and 437 // those we are handling in another place (import, etc, metadata) 438 if (dir_name.startsWith ("import") || dir_name.startsWith("archives") || dir_name.startsWith("building") || dir_name.startsWith("index") || dir_name.startsWith("etc") || dir_name.startsWith("metadata") || dir_name.startsWith("log") || dir_name.startsWith("tmp")) { 439 continue; 440 } 441 try { 442 // copy the directory 443 File new_coll_subdir = new File(new_coll_dir, dir_name); 444 new_coll_subdir.mkdirs(); 445 Gatherer.f_man.getQueue().copyDirectoryContents(subdir, new_coll_subdir); 446 } 447 catch (Exception e) { 448 DebugStream.println("Couldn't copy over the" + subdir+" dir from the base collection: "+e.toString()); 449 } 450 } 451 } 452 458 453 return true; 459 454 } 460 455 461 456 /** Used to set the current collection to the given collection. Note that this call should -always- be proceeded by a ready call, and if the collection is ready and the saved flag is unset then the user should be prompted to save. Also note that this method creates yet another GShell to run buildcol.pl. 462 457 * @param description a description of the collection as a String … … 613 608 } 614 609 } 615 616 // Load the default metadata sets 617 addDefaultMetadataSets(); 618 619 // Make sure we always have the extracted metadata set 620 addRequiredMetadataSets(); 621 610 else { 611 // only load metadata sets here if we have not based the collection on any other. 612 // Load the default metadata sets 613 addDefaultMetadataSets(); 614 615 // Make sure we always have the extracted metadata set 616 addRequiredMetadataSets(); 617 } 618 622 619 collection.cdm = new CollectionDesignManager(new File(getLoadedCollectionCfgFilePath())); 623 620
Note:
See TracChangeset
for help on using the changeset viewer.