From 457a93a0bc04b99d76d8bede474fc8b15804838f Mon Sep 17 00:00:00 2001 From: windymelt Date: Sun, 28 Jan 2024 16:06:47 +0900 Subject: [PATCH 1/2] move initialize command --- .../scala/com/github/windymelt/zmm/Cli.scala | 55 ----------------- .../scala/com/github/windymelt/zmm/Main.scala | 2 +- .../windymelt/zmm/application/Init.scala | 60 +++++++++++++++++++ 3 files changed, 61 insertions(+), 56 deletions(-) create mode 100644 src/main/scala/com/github/windymelt/zmm/application/Init.scala diff --git a/src/main/scala/com/github/windymelt/zmm/Cli.scala b/src/main/scala/com/github/windymelt/zmm/Cli.scala index 64b75d7..352f17d 100644 --- a/src/main/scala/com/github/windymelt/zmm/Cli.scala +++ b/src/main/scala/com/github/windymelt/zmm/Cli.scala @@ -75,61 +75,6 @@ abstract class Cli(logLevel: String = "INFO") } yield () } - /** 現在のディレクトリをZMMプロジェクトとして初期化する。 - * - * 現在のディレクトリに原稿XMLファイルや生成物配置用のディレクトリを作成する。 既にディレクトリやファイルが存在している場合は何もしない。 - * - * @return - * Unitを返す。 - */ - def initializeProject(): IO[Unit] = { - val agreed = for { - cwd <- IO.pure(os.pwd.toString()) - _ <- IO.print(s"$cwd を ZMMプロジェクトとして初期化しますか? [y/N]?>") - ynString <- IO.readLine - } yield ynString == "y" - - val placeXml: IO[Unit] = IO { - os.exists(os.pwd / "script.xml") match { - case true => IO.println("script.xml は既に存在するのでスキップされました") - case false => IO(os.write(os.pwd / "script.xml", xml.script().body)) - } - }.flatten - - val digArtifacts: IO[Unit] = IO { - os.exists(os.pwd / "artifacts") match { - case true => IO.println("artifacts/ は既に存在するのでスキップされました") - case false => IO(os.makeDir(os.pwd / "artifacts")) - } - }.flatten - - val digArtifactsHtml: IO[Unit] = IO { - os.exists(os.pwd / "artifacts" / "html") match { - case true => IO.println("artifacts/html/ は既に存在するのでスキップされました") - case false => IO(os.makeDir(os.pwd / "artifacts" / "html")) - } - }.flatten - - val digAssets: IO[Unit] = IO { - os.exists(os.pwd / "assets") match { - case true => IO.println("assets/ は既に存在するのでスキップされました") - case false => IO(os.makeDir(os.pwd / "assets")) - } - }.flatten - - val init = for { - _ <- placeXml - _ <- digArtifacts >> digArtifactsHtml - _ <- digAssets - } yield () - - // ZMMプロジェクトを構成するいくつかのファイル/ディレクトリについて、存在しなかったらテンプレートをもとに作成する、を繰り返す - agreed flatMap { - case true => init - case false => IO.println("中断します") - } - } - def generate(filePath: String, outPathString: String): IO[Unit] = { val content = IO.delay(scala.xml.XML.loadFile(filePath)) diff --git a/src/main/scala/com/github/windymelt/zmm/Main.scala b/src/main/scala/com/github/windymelt/zmm/Main.scala index c9be575..4ccdd4a 100644 --- a/src/main/scala/com/github/windymelt/zmm/Main.scala +++ b/src/main/scala/com/github/windymelt/zmm/Main.scala @@ -53,7 +53,7 @@ object Main ) >> IO.pure(ExitCode.Success) case InitializeCommand() => - defaultCli.initializeProject() >> IO.pure(ExitCode.Success) + application.Init.initializeProject() >> IO.pure(ExitCode.Success) } } diff --git a/src/main/scala/com/github/windymelt/zmm/application/Init.scala b/src/main/scala/com/github/windymelt/zmm/application/Init.scala new file mode 100644 index 0000000..a0c8ff7 --- /dev/null +++ b/src/main/scala/com/github/windymelt/zmm/application/Init.scala @@ -0,0 +1,60 @@ +package com.github.windymelt.zmm.application + +import cats.effect.IO + +object Init { + /** 現在のディレクトリをZMMプロジェクトとして初期化する。 + * + * 現在のディレクトリに原稿XMLファイルや生成物配置用のディレクトリを作成する。 既にディレクトリやファイルが存在している場合は何もしない。 + * + * @return + * Unitを返す。 + */ + def initializeProject(): IO[Unit] = { + val agreed = for { + cwd <- IO.pure(os.pwd.toString()) + _ <- IO.print(s"$cwd を ZMMプロジェクトとして初期化しますか? [y/N]?>") + ynString <- IO.readLine + } yield ynString == "y" + + val placeXml: IO[Unit] = IO { + os.exists(os.pwd / "script.xml") match { + case true => IO.println("script.xml は既に存在するのでスキップされました") + case false => IO(os.write(os.pwd / "script.xml", xml.script().body)) + } + }.flatten + + val digArtifacts: IO[Unit] = IO { + os.exists(os.pwd / "artifacts") match { + case true => IO.println("artifacts/ は既に存在するのでスキップされました") + case false => IO(os.makeDir(os.pwd / "artifacts")) + } + }.flatten + + val digArtifactsHtml: IO[Unit] = IO { + os.exists(os.pwd / "artifacts" / "html") match { + case true => IO.println("artifacts/html/ は既に存在するのでスキップされました") + case false => IO(os.makeDir(os.pwd / "artifacts" / "html")) + } + }.flatten + + val digAssets: IO[Unit] = IO { + os.exists(os.pwd / "assets") match { + case true => IO.println("assets/ は既に存在するのでスキップされました") + case false => IO(os.makeDir(os.pwd / "assets")) + } + }.flatten + + val init = for { + _ <- placeXml + _ <- digArtifacts >> digArtifactsHtml + _ <- digAssets + } yield () + + // ZMMプロジェクトを構成するいくつかのファイル/ディレクトリについて、存在しなかったらテンプレートをもとに作成する、を繰り返す + agreed flatMap { + case true => init + case false => IO.println("中断します") + } + } +} From fed650e69ec5b0d454957f2d20801c9ca9d81fa6 Mon Sep 17 00:00:00 2001 From: windymelt Date: Sat, 3 Feb 2024 21:19:33 +0900 Subject: [PATCH 2/2] scalafmt --- .../com/github/windymelt/zmm/application/Init.scala | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/github/windymelt/zmm/application/Init.scala b/src/main/scala/com/github/windymelt/zmm/application/Init.scala index a0c8ff7..b57f587 100644 --- a/src/main/scala/com/github/windymelt/zmm/application/Init.scala +++ b/src/main/scala/com/github/windymelt/zmm/application/Init.scala @@ -3,13 +3,14 @@ package com.github.windymelt.zmm.application import cats.effect.IO object Init { + /** 現在のディレクトリをZMMプロジェクトとして初期化する。 - * - * 現在のディレクトリに原稿XMLファイルや生成物配置用のディレクトリを作成する。 既にディレクトリやファイルが存在している場合は何もしない。 - * - * @return - * Unitを返す。 - */ + * + * 現在のディレクトリに原稿XMLファイルや生成物配置用のディレクトリを作成する。 既にディレクトリやファイルが存在している場合は何もしない。 + * + * @return + * Unitを返す。 + */ def initializeProject(): IO[Unit] = { val agreed = for { cwd <- IO.pure(os.pwd.toString())