mirror of
https://github.com/anoma/juvix.git
synced 2024-12-15 01:52:11 +03:00
68d4314c78
This PR: * Modifies entry point `_entryPointBuildDir` to use the `BuildDir` type instead of `SomeBase Dir`. This allows delayed resolution of the default build directory which was useful for the Package -> Concrete translation point below. * Modifies `juvix dev root` to render the current package as a Package.juvix file. * Modifies the Package -> Concrete translation to recognise default arguments. So, for example, an empty `juvix.yaml` file will be translated into the following (instead of the `name`, `version`, and `dependencies` arguments being populated). module Package; import Stdlib.Prelude open; import PackageDescription.V1 open; package : Package := defaultPackage; * Adds a temporary command (removed when juvix.yaml support is removed) `juvix dev migrate-juvix-yaml` that translates `juvix.yaml` into an equivalent `Package.juvix` in the current project. * Adds a temporary script `migrate-juvix-yaml.sh` (removed when juvix.yaml support is removed) which can be run in the project to translate all Juvix projects in the repository. * Actually translate all of the `juvix.yaml` files to `Package.juvix` using the script. * Part of https://github.com/anoma/juvix/issues/2487
36 lines
1.3 KiB
Haskell
36 lines
1.3 KiB
Haskell
module Commands.Dev
|
|
( module Commands.Dev,
|
|
module Commands.Dev.Options,
|
|
)
|
|
where
|
|
|
|
import Commands.Base
|
|
import Commands.Dev.Asm qualified as Asm
|
|
import Commands.Dev.Core qualified as Core
|
|
import Commands.Dev.DisplayRoot qualified as DisplayRoot
|
|
import Commands.Dev.Geb qualified as Geb
|
|
import Commands.Dev.Highlight qualified as Highlight
|
|
import Commands.Dev.Internal qualified as Internal
|
|
import Commands.Dev.MigrateJuvixYaml qualified as MigrateJuvixYaml
|
|
import Commands.Dev.Options
|
|
import Commands.Dev.Parse qualified as Parse
|
|
import Commands.Dev.Runtime qualified as Runtime
|
|
import Commands.Dev.Scope qualified as Scope
|
|
import Commands.Dev.Termination qualified as Termination
|
|
import Commands.Repl qualified as Repl
|
|
|
|
runCommand :: (Members '[Embed IO, App] r) => DevCommand -> Sem r ()
|
|
runCommand = \case
|
|
Highlight opts -> Highlight.runCommand opts
|
|
Parse opts -> Parse.runCommand opts
|
|
Scope opts -> Scope.runCommand opts
|
|
Internal opts -> Internal.runCommand opts
|
|
Termination opts -> Termination.runCommand opts
|
|
Core opts -> Core.runCommand opts
|
|
Geb opts -> Geb.runCommand opts
|
|
Asm opts -> Asm.runCommand opts
|
|
Runtime opts -> Runtime.runCommand opts
|
|
DisplayRoot opts -> DisplayRoot.runCommand opts
|
|
JuvixDevRepl opts -> Repl.runCommand opts
|
|
MigrateJuvixYaml opts -> runFilesIO $ MigrateJuvixYaml.runCommand opts
|