From b421dbba4f60f0e7f13d5f0a6d6cde512fb96113 Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Fri, 3 Jan 2020 15:01:55 +0100 Subject: [PATCH] Create output directories if needed; implements #21 --- src/main/scala/millfork/Main.scala | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/scala/millfork/Main.scala b/src/main/scala/millfork/Main.scala index 6df53266..840a5b1d 100644 --- a/src/main/scala/millfork/Main.scala +++ b/src/main/scala/millfork/Main.scala @@ -74,6 +74,18 @@ object Main { case _ => "a" } } + + val outputParent = new File(output).getParentFile + if (outputParent.exists()) { + if (!outputParent.canWrite || !outputParent.isDirectory) { + errorReporting.warn(s"The output directory `${outputParent.getAbsolutePath}` cannot be written to.") + } + } else { + if (!outputParent.mkdirs()) { + errorReporting.warn(s"Failed to create the output directory `${outputParent.getAbsolutePath}``") + } + } + val assOutput = output + ".asm" // val prgOutputs = (platform.outputStyle match { // case OutputStyle.Single => List("default")