diff --git a/src/main/scala/org/rosi_project/model_sync/generator/io/SModelFSWriter.scala b/src/main/scala/org/rosi_project/model_sync/generator/io/SModelFSWriter.scala index 092bad3cfef930005dc2f1565bee09148dbf5261..9c1c5697c33c171b73947ab19974df968b1d3ebb 100644 --- a/src/main/scala/org/rosi_project/model_sync/generator/io/SModelFSWriter.scala +++ b/src/main/scala/org/rosi_project/model_sync/generator/io/SModelFSWriter.scala @@ -1,20 +1,19 @@ package org.rosi_project.model_sync.generator.io -import java.io.{BufferedInputStream, FileInputStream, FileOutputStream, PrintWriter} +import java.io.{ BufferedInputStream, FileInputStream, FileOutputStream, PrintWriter } import java.net.URLClassLoader import java.nio.file.Files -import java.util.jar.{Attributes, JarEntry, JarOutputStream, Manifest} +import java.util.jar.{ Attributes, JarEntry, JarOutputStream, Manifest } -import org.rosi_project.model_sync.generator.acr.{SAttribute, SClass, SMethod, SType} -import org.rosi_project.model_sync.generator.sync_model.{SModel, SModelVisitor} +import org.rosi_project.model_sync.generator.acr.{ SAttribute, SClass, SMethod, SType } +import org.rosi_project.model_sync.generator.sync_model.{ SModel, SModelVisitor } -import scala.reflect.io.{File, Path} +import scala.reflect.io.{ File, Path } import scala.tools.nsc.reporters.ConsoleReporter -import scala.tools.nsc.{GenericRunnerSettings, Global, Settings} +import scala.tools.nsc.{ GenericRunnerSettings, Global, Settings } import scala.util.control.Breaks._ -/** - * @author Rico Bergmann +/** @author Rico Bergmann */ class SModelFSWriter extends SModelVisitor { @@ -138,14 +137,24 @@ class SModelFSWriter extends SModelVisitor { } private def adaptClassPathToOSEnv(cp: List[String]): List[String] = { - // TODO adapt for UNIX systems (only works on windows right now) - cp.map(entry => { - val UrlRegex = """file:/(.*)""".r - entry match { - case UrlRegex(path) => path - case p => p - } - }).map(_.replaceAll("/", "\\\\").replaceAll("%20", " ")) + sys.props("os.name").toLowerCase match { + case win if win contains "windows" => + cp.map(entry => { + val WinUrl = """file:/(.*)""".r + entry match { + case WinUrl(path) => path + case p => p + } + }).map(_.replaceAll("/", "\\\\").replaceAll("%20", " ")) + case unix => + val UnixUrl = """file:(.*)""".r + cp.map(entry => { + entry match { + case UnixUrl(path) => path + case p => p + } + }) + } } }