mirror of
https://github.com/anoma/juvix.git
synced 2024-09-21 05:28:17 +03:00
7b5211664e
This PR adds the `PackageDescription.Basic` module, available to Package.juvix files. ``` module Package; import PackageDescription.Basic open; package : Package := basicPackage; ``` The `PackageDescription.Basic` module provides a Package type that is translated to a Juvix Package with all default arguments. It is not possible to customize a basic package. A basic package does not depend on the standard library, so loads much more quickly. Additionally this PR: * Adds `juvix init --basic/-b` option to generate a basic Package.juvix. * Migrates Package.juvix files that only use default arguments, or only customise the name field, to basic Package files. * Closes https://github.com/anoma/juvix/issues/2508
28 lines
687 B
Haskell
28 lines
687 B
Haskell
module Commands.Init.Options where
|
|
|
|
import CommonOptions
|
|
|
|
data InitOptions = InitOptions
|
|
{ _initOptionsNonInteractive :: Bool,
|
|
_initOptionsBasic :: Bool
|
|
}
|
|
deriving stock (Data)
|
|
|
|
makeLenses ''InitOptions
|
|
|
|
parseInitOptions :: Parser InitOptions
|
|
parseInitOptions = do
|
|
_initOptionsNonInteractive <-
|
|
switch
|
|
( long "non-interactive"
|
|
<> short 'n'
|
|
<> help "Run non-interactively. Generates a default Package.juvix"
|
|
)
|
|
_initOptionsBasic <-
|
|
switch
|
|
( long "basic"
|
|
<> short 'b'
|
|
<> help "Run non-interactively. Generates a basic Package.juvix that does not depend on the standard library"
|
|
)
|
|
pure InitOptions {..}
|