Ignore:
Timestamp:
May 1, 2018 3:35:09 AM (2 years ago)
Author:
meeh <meeh@…>
Branches:
master
Children:
8957c85
Parents:
975d8a0
Message:

Updating code to handle multiple(no limit) recursive levels.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • launchers/common/src/main/scala/net/i2p/launchers/OSXDeployment.scala

    r975d8a0 r6b0a102c  
    108108      "router",
    109109      "ssl"
    110     ),subDirectories=true)
     110    ),subDirectories=true),
     111    new FDObjDir("themes",List(
     112      "console",
     113      "imagegen",
     114      "snark",
     115      "susidns",
     116      "susimail"
     117    ),true)
    111118  )
    112119
     
    117124    * @return
    118125    */
    119   def copyDirFromRes(dir: File) = {
     126  def copyDirFromRes(dir: File): Unit = {
    120127    // A small hack
    121128    val zipFile = new ZipFile(executingJarFile.getFile)
    122129    zipFile.entries().asScala.toList.filter(_.toString.startsWith(dir.getPath)).filter(!_.isDirectory).map { entry =>
    123       copyBaseFileResToDisk(entry.getName, getClass.getResourceAsStream("/".concat(entry.getName)))
     130      new File(DeployProfile.pathJoin(baseDir,entry.getName)).getParentFile.mkdirs()
     131      if (entry.isDirectory) {
     132        createFileOrDirectory(new File(DeployProfile.pathJoin(baseDir,entry.getName)), true)
     133      } else {
     134        copyBaseFileResToDisk(entry.getName, getClass.getResourceAsStream("/".concat(entry.getName)))
     135      }
    124136    }
    125137  }
     
    133145    * @return
    134146    */
    135   def createFileOrDirectory(file: File, isDir: Boolean = false) = {
     147  def createFileOrDirectory(file: File, isDir: Boolean = false): Unit = {
    136148    if (file != null) {
    137149      println(s"createFileOrDirectory(${file},${isDir})")
    138150      try {
     151        // Make sure subject exists if directory
    139152        if (!new File(DeployProfile.pathJoin(baseDir,file.getPath)).exists()) {
    140           if (isDir) {
    141             // Handle dir
    142             new File(DeployProfile.pathJoin(baseDir,file.getPath)).mkdirs()
    143             copyDirFromRes(file)
    144           } else {
    145             // Handle file
    146             copyBaseFileResToDisk(file.getPath, getClass.getResourceAsStream("/".concat(file.getName)))
    147           }
     153          if (isDir) new File(DeployProfile.pathJoin(baseDir,file.getPath)).mkdirs()
     154        }
     155        if (isDir) {
     156          // Handle dir
     157          copyDirFromRes(file)
     158        } else {
     159          // Handle file
     160          copyBaseFileResToDisk(file.getPath, getClass.getResourceAsStream("/".concat(file.getName)))
    148161        }
    149162      } catch {
Note: See TracChangeset for help on using the changeset viewer.