ihp-ide-1.5.0: exe/IHP/CLI/NewMigration.hs
module Main where
import IHP.Prelude
import qualified System.Posix.Env.ByteString as Posix
import qualified System.Directory.OsPath as Directory
import IHP.IDE.ToolServer.Helper.Controller (openEditor)
import qualified IHP.IDE.CodeGen.MigrationGenerator as MigrationGenerator
import IHP.IDE.CodeGen.Controller (executePlan)
import Main.Utf8 (withUtf8)
main :: IO ()
main = withUtf8 do
ensureIsInAppDirectory
let doCreateMigration description = do
(_, plan) <- MigrationGenerator.buildPlan description Nothing
executePlan plan
let path = MigrationGenerator.migrationPathFromPlan plan
putStrLn $ "Created migration: " <> path
openEditor path 0 0
args <- Posix.getArgs
case headMay args of
Just "--help" -> usage
Just description -> doCreateMigration (cs description)
Nothing -> doCreateMigration ""
usage :: IO ()
usage = putStrLn "Usage: new-migration [DESCRIPTION]"
ensureIsInAppDirectory :: IO ()
ensureIsInAppDirectory = do
mainHsExists <- Directory.doesFileExist "Main.hs"
unless mainHsExists (fail "You have to be in a project directory to run the generator")