Révision 1855
tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java (revision 1855) | ||
---|---|---|
759 | 759 |
return true; |
760 | 760 |
} |
761 | 761 |
|
762 |
private void createBackUpDirectory(IProgressMonitor monitor) { |
|
763 |
|
|
764 |
backup = new File(txmhomedir, "corpus-backup"); //$NON-NLS-1$ |
|
765 |
oldbackup = new File(txmhomedir, "corpus-backup-old"); //$NON-NLS-1$ |
|
766 |
errorbackup = new File(txmhomedir, "corpus-backup-error"); //$NON-NLS-1$ |
|
767 |
|
|
768 |
corporaDir = new File(txmhomedir, "corpora"); //$NON-NLS-1$ |
|
769 |
|
|
770 |
File[] corporaDirFiles = corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER); |
|
771 |
if (corporaDir.exists() && corporaDirFiles != null && corporaDirFiles.length > 0) { // if the txmhomedir is not empty, try to restore its content |
|
772 |
Display.getDefault().syncExec(new Runnable() { |
|
773 |
@Override |
|
774 |
public void run() { |
|
775 |
Display display = Display.getDefault(); |
|
776 |
Shell shell = display.getActiveShell(); |
|
777 |
go = MessageDialog.openConfirm(shell, TXMUIMessages.workspaceDirectoryBackup, NLS.bind(TXMUIMessages.tXMWorkspaceDirectoryAlreadyExistsP0WouldYouLikeToReloadItsCorporaInYourNewTXM, txmhomedir)); |
|
778 |
} |
|
779 |
}); |
|
780 |
|
|
781 |
if (go) { |
|
782 |
monitor.setTaskName(TXMUIMessages.bind(TXMUIMessages.movingCorporaToP0, backup.getAbsolutePath())); |
|
783 |
backup.mkdir(); |
|
784 |
|
|
785 |
if (!backup.exists()) { |
|
786 |
System.out.println(TXMCoreMessages.bind(TXMUIMessages.couldNotCreateBackupDirectoryColon, backup)); |
|
787 |
return; |
|
788 |
} |
|
789 |
|
|
790 |
//$NON-NLS-1$ |
|
791 |
if (oldbackup.exists()) { |
|
792 |
Log.info(TXMUIMessages.bind(TXMUIMessages.removingOldCorpusBackupDirectoryP0, oldbackup)); |
|
793 |
DeleteDir.deleteDirectory(oldbackup); // ]8) |
|
794 |
} |
|
795 |
|
|
796 |
File[] corpDirs = corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER); |
|
797 |
ArrayList<String> moved = new ArrayList<String>(); |
|
798 |
ArrayList<String> failed = new ArrayList<String>(); |
|
799 |
|
|
800 |
if (corpDirs != null) { |
|
801 |
Arrays.sort(corpDirs); |
|
802 |
System.out.print(TXMUIMessages.bind(TXMUIMessages.movingCorporaToP0, backup.getAbsolutePath())); |
|
803 |
for (File corpusdir : corpDirs) { |
|
804 |
File backCorpus = new File(backup, corpusdir.getName()); |
|
805 |
if (corpusdir.canRead() && corpusdir.isDirectory()) { |
|
806 |
System.out.print("."); //$NON-NLS-1$ |
|
807 |
if (backCorpus.exists()) { |
|
808 |
moved.add(corpusdir.getName()); |
|
809 |
oldbackup.mkdir(); |
|
810 |
backCorpus.renameTo(new File(oldbackup, corpusdir.getName())); |
|
811 |
} |
|
812 |
|
|
813 |
if (!corpusdir.renameTo(backCorpus)) { |
|
814 |
failed.add(corpusdir.getName()); |
|
815 |
} |
|
816 |
} |
|
817 |
} |
|
818 |
System.out.println(); |
|
819 |
} |
|
820 |
if (moved.size() > 0) { |
|
821 |
Log.info(TXMCoreMessages.bind(TXMUIMessages.corporaBackupedColonP0, oldbackup, StringUtils.join(moved, ", "))); //$NON-NLS-1$ |
|
822 |
} |
|
823 |
if (failed.size() > 0) { |
|
824 |
System.out.println(TXMCoreMessages.bind(TXMUIMessages.failedToMoveCorpus, failed, backup)); |
|
825 |
} |
|
826 |
} |
|
827 |
} |
|
828 |
} |
|
829 |
|
|
830 | 762 |
/** |
831 | 763 |
* Install the sample corpora and previous TXM version corpora in TXM corpora directory |
832 | 764 |
* @param monitor |
... | ... | |
880 | 812 |
} |
881 | 813 |
}); |
882 | 814 |
|
815 |
// move previous TXM 0.8.0 corpora |
|
816 |
File backupDir = new File(corporaDir.getAbsolutePath()+"-previous"); |
|
817 |
if (corporaDir.exists()) { |
|
818 |
backupDir.mkdirs(); |
|
819 |
for (File dir : corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER)) { |
|
820 |
File bdir = new File(backupDir, dir.getName()); |
|
821 |
DeleteDir.deleteDirectory(bdir); |
|
822 |
dir.renameTo(bdir); |
|
823 |
} |
|
824 |
} |
|
825 |
|
|
883 | 826 |
// load TXM-0.8.0 sample corpora (from the install directory) |
884 | 827 |
if (corporaDirs.contains(SAMPLES) && sampleCorporaDirectory.exists()) { |
885 | 828 |
|
... | ... | |
895 | 838 |
} |
896 | 839 |
|
897 | 840 |
// TXM-0.8.0 previous installation corpora |
898 |
if (corporaDirs.contains(V080) && corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER).length > 0) { // not a new install, restore previous corpora
|
|
841 |
if (corporaDirs.contains(V080) && backupDir.listFiles(IOUtils.HIDDENFILE_FILTER).length > 0) { // not a new install, restore corpus from the corpora-previous directory
|
|
899 | 842 |
Log.info(NLS.bind(TXMUIMessages.installingPreviousCorpusFromP0, "0.8.0", corporaDir)); |
900 |
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(corporaDir, false, false, true);
|
|
843 |
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(backupDir, false, false, true);
|
|
901 | 844 |
try { |
902 | 845 |
job.join(); |
903 | 846 |
} catch (InterruptedException e) { |
904 | 847 |
e.printStackTrace(); |
905 | 848 |
} |
906 |
} else if (corporaDir.exists()) { |
|
907 |
File backupDir = new File(corporaDir.getAbsolutePath()+"-previous"); |
|
908 |
backupDir.mkdirs(); |
|
909 |
for (File dir : corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER)) { |
|
910 |
File bdir = new File(backupDir, dir.getName()); |
|
911 |
DeleteDir.deleteDirectory(bdir); |
|
912 |
dir.renameTo(bdir); |
|
913 |
} |
|
914 | 849 |
} |
915 | 850 |
|
916 | 851 |
// TXM previous installation corpora |
Formats disponibles : Unified diff