Ignore:
Timestamp:
Apr 7, 2015, 7:48:17 PM (10 years ago)
Author:
alloc
Message:

AEI 2.22: Consider all local packages with number < 10000 as Tool, others as Mod. Repository packages are not affected by this

Location:
java/installer2/src/net/oni2/aeinstaller/backend/oni/management
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • java/installer2/src/net/oni2/aeinstaller/backend/oni/management/Installer.java

    r1019 r1020  
    610610
    611611                for (Package p : mods) {
    612                         ToolFileIterator.iteratePlatformToolFiles(p, false,
     612                        ToolFileIterator.iteratePlatformToolFiles(p,
    613613                                        new ToolFileIteratorEntry() {
    614614                                                @Override
  • java/installer2/src/net/oni2/aeinstaller/backend/oni/management/tools/ToolFileIterator.java

    r1019 r1020  
    1919         * @param tool
    2020         *            Tool to iterate over
    21          * @param handleAppAsFiles
    22          *            Whether or not to handle MacOS .app folders as a single file
    2321         * @param handler
    2422         *            Handler to handle found files
    2523         */
    26         public static void iteratePlatformToolFiles(Package tool, boolean handleAppAsFiles,
     24        public static void iteratePlatformToolFiles(Package tool,
    2725                        ToolFileIteratorEntry handler) {
    2826                File plain = CaseInsensitiveFile.getCaseInsensitiveFile(
     
    3735                                                plain, "win_only");
    3836                                if (plainCommon.exists())
    39                                         iterateFiles(plainCommon, Paths.getEditionBasePath(), handleAppAsFiles,
     37                                        iterateFiles(plainCommon, Paths.getEditionBasePath(),
    4038                                                        handler);
    4139                                if (PlatformInformation.getPlatform() == Platform.MACOS
    4240                                                && plainMac.exists())
    43                                         iterateFiles(plainMac, Paths.getEditionBasePath(), handleAppAsFiles, handler);
     41                                        iterateFiles(plainMac, Paths.getEditionBasePath(), handler);
    4442                                else if (plainWin.exists())
    45                                         iterateFiles(plainWin, Paths.getEditionBasePath(), handleAppAsFiles, handler);
     43                                        iterateFiles(plainWin, Paths.getEditionBasePath(), handler);
    4644                        } else {
    47                                 iterateFiles(plain, Paths.getEditionBasePath(), handleAppAsFiles, handler);
     45                                iterateFiles(plain, Paths.getEditionBasePath(), handler);
    4846                        }
    4947                }
    5048        }
    5149
    52         private static void iterateFiles(File srcFolder, File targetFolder, boolean handleAppAsFiles,
     50        private static void iterateFiles(File srcFolder, File targetFolder,
    5351                        ToolFileIteratorEntry handler) {
    5452                for (File f : srcFolder.listFiles()) {
    55                         if (f.isDirectory() && (!f.getName().endsWith(".app") || !handleAppAsFiles))
     53                        if (f.isDirectory()) {
     54                                if (f.getName().endsWith(".app")) {
     55                                        handler.toolFile(f, new File(targetFolder, f.getName()), f.isDirectory());
     56                                }
    5657                                iterateFiles(f, CaseInsensitiveFile.getCaseInsensitiveFile(
    57                                                 targetFolder, f.getName()), handleAppAsFiles, handler);
    58                         else {
     58                                                targetFolder, f.getName()), handler);
     59                        } else {
    5960                                handler.toolFile(f, new File(targetFolder, f.getName()), f.isDirectory());
    6061                        }
  • java/installer2/src/net/oni2/aeinstaller/backend/oni/management/tools/ToolsManager.java

    r1019 r1020  
    2626                final ToolInstallationList til = ToolInstallationList.getInstance();
    2727                for (final Package m : PackageManager.getInstance().getInstalledTools()) {
    28                         ToolFileIterator.iteratePlatformToolFiles(m, false,
     28                        ToolFileIterator.iteratePlatformToolFiles(m,
    2929                                        new ToolFileIteratorEntry() {
    3030                                                @Override
    31                                                 public void toolFile(File source, File target, boolean isDir) {
     31                                                public void toolFile(File source, File target,
     32                                                                boolean isDir) {
    3233                                                        byte[] chkSrc = FileChecksum
    3334                                                                        .calculateFileMD5(source);
     
    3536                                                                til.markModified(m.getPackageNumber(), true);
    3637                                                        } else {
    37                                                                 byte[] chkTrg = FileChecksum
    38                                                                                 .calculateFileMD5(target);
    39                                                                 if (!Arrays.equals(chkSrc, chkTrg))
    40                                                                         til.markModified(m.getPackageNumber(), true);
     38                                                                if (!isDir) {
     39                                                                        byte[] chkTrg = FileChecksum
     40                                                                                        .calculateFileMD5(target);
     41                                                                        if (!Arrays.equals(chkSrc, chkTrg))
     42                                                                                til.markModified(m.getPackageNumber(), true);
     43                                                                }
    4144                                                        }
    4245                                                }
     
    5659                        if (!uninstall) { // Install:
    5760                                final HashSet<String> files = new HashSet<String>();
    58                                 ToolFileIterator.iteratePlatformToolFiles(m, true,
     61                                ToolFileIterator.iteratePlatformToolFiles(m,
    5962                                                new ToolFileIteratorEntry() {
    6063                                                        @Override
    61                                                         public void toolFile(File source, File target, boolean isDir) {
     64                                                        public void toolFile(File source, File target,
     65                                                                        boolean isDir) {
    6266                                                                copyToolsFiles(source, target, isDir, files);
    6367                                                        }
     
    8084                                        target.getParentFile(), target.getName());
    8185
    82                         files.add(target.getPath().replace(
    83                                         Paths.getEditionBasePath().getPath(), ""));
     86                        if (isDir && src.getAbsolutePath().endsWith(".app")) {
     87                                files.add(target.getPath().replace(
     88                                                Paths.getEditionBasePath().getPath(), ""));
    8489
    85                         if (isDir) {
    8690                                if (targetFile.exists()) {
    8791                                        FileUtils.deleteDirectory(targetFile);
    8892                                }
    89                                
    90                                 FileUtils.copyDirectory(src, target, true);     
     93
     94                                FileUtils.copyDirectory(src, target, true);
    9195                        } else {
    92                                 // Case mismatch?
    93                                 if (!targetFile.getName().equals(src.getName()))
    94                                         targetFile.delete();
     96                                if (!src.getAbsolutePath().contains(".app/")) {
     97                                        files.add(target.getPath().replace(
     98                                                        Paths.getEditionBasePath().getPath(), ""));
    9599
    96                                 FileUtils.copyFile(src, target);
    97                                 if (src.canExecute())
    98                                         target.setExecutable(true);
     100                                        // Case mismatch?
     101                                        if (!targetFile.getName().equals(src.getName()))
     102                                                targetFile.delete();
     103
     104                                        FileUtils.copyFile(src, target);
     105                                }
     106
     107                                if (src.canExecute() && targetFile.exists())
     108                                        targetFile.setExecutable(true);
    99109                        }
    100110                } catch (IOException e) {
Note: See TracChangeset for help on using the changeset viewer.