Changeset 663 for AE/installer2/src/net


Ignore:
Timestamp:
Feb 4, 2013, 12:00:01 PM (12 years ago)
Author:
alloc
Message:

AEI2 0.99n:

  • Allow for IGMD folders to be protected from being overwritten by mod installations (ignore.txt)
Location:
AE/installer2/src/net/oni2/aeinstaller
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties

    r662 r663  
    11appname=AE Installer 2
    2 appversion=0.99m
     2appversion=0.99n
  • AE/installer2/src/net/oni2/aeinstaller/backend/oni/Installer.java

    r657 r663  
    208208        public static void install(TreeSet<Package> mods,
    209209                        InstallProgressListener listener) {
    210                 try {
    211                         createEmptyPath(Paths.getEditionGDF());
    212                 } catch (IOException e) {
    213                         e.printStackTrace();
    214                 }
    215 
    216210                File logFile = new File(Paths.getInstallerPath(), "Installation.log");
    217211                PrintWriter log = null;
     
    226220
    227221                log.println();
    228                 log.println("AEI2 version: " + SwingJavaBuilder.getConfig().getResource("appversion"));
     222                log.println("AEI2 version: "
     223                                + SwingJavaBuilder.getConfig().getResource("appversion"));
    229224                log.println("Installed tools:");
    230225                for (Package t : PackageManager.getInstance().getInstalledTools()) {
     
    236231                }
    237232                log.println();
     233
     234                Paths.getEditionGDF().mkdirs();
     235                for (File f : Paths.getEditionGDF().listFiles(new FilenameFilter() {
     236                        public boolean accept(File arg0, String arg1) {
     237                                String s = arg1.toLowerCase();
     238                                return s.endsWith(".dat")
     239                                                || s.endsWith(".raw")
     240                                                || s.endsWith(".sep")
     241                                                || (s.equals("intro.bik") && !Settings.getInstance()
     242                                                                .get("copyintro", false))
     243                                                || (s.equals("outro.bik") && !Settings.getInstance()
     244                                                                .get("copyoutro", false));
     245                        }
     246                })) {
     247                        f.delete();
     248                }
     249                File IGMD = new File(Paths.getEditionGDF(), "IGMD");
     250                if (IGMD.exists()) {
     251                        for (File f : IGMD.listFiles(new FileFilter() {
     252                                @Override
     253                                public boolean accept(File pathname) {
     254                                        return pathname.isDirectory();
     255                                }
     256                        })) {
     257                                File ignore = new File(f, "ignore.txt");
     258                                if (!ignore.exists()) {
     259                                        try {
     260                                                FileUtils.deleteDirectory(f);
     261                                        } catch (IOException e) {
     262                                                // TODO Auto-generated catch block
     263                                                e.printStackTrace();
     264                                        }
     265                                }
     266                        }
     267                }
    238268
    239269                File installCfg = new File(Paths.getEditionGDF(), "installed_mods.xml");
     
    267297                        }
    268298                }
    269                
     299
    270300                combineBinaryFiles(foldersOni, listener, log);
    271301                combineBSLFolders(mods, listener, log);
     
    370400                        if (!targetPath.exists())
    371401                                targetPath.mkdir();
    372                         for (File fbsl : f.listFiles()) {
    373                                 File targetFile = new File(targetPath, fbsl.getName());
    374                                 if (addon || !targetFile.exists()) {
    375                                         try {
    376                                                 FileUtils.copyFile(fbsl, targetFile);
    377                                         } catch (IOException e) {
    378                                                 e.printStackTrace();
     402                        if (!(new File(targetPath, "ignore.txt").exists())) {
     403                                for (File fbsl : f.listFiles()) {
     404                                        File targetFile = new File(targetPath, fbsl.getName());
     405                                        if (addon || !targetFile.exists()) {
     406                                                try {
     407                                                        FileUtils.copyFile(fbsl, targetFile);
     408                                                } catch (IOException e) {
     409                                                        e.printStackTrace();
     410                                                }
    379411                                        }
    380412                                }
Note: See TracChangeset for help on using the changeset viewer.