1{-# OPTIONS_GHC -Wall #-}
12import CommandLine.Args.Internal as Args
13import qualified Data.Text as Text
14import qualified Elm.Diff as Diff
15import qualified Elm.Package as Pkg
16import qualified Elm.Project.Flags as Flags
17import qualified System.FilePath as FP
29 | Make [FilePath] MakeFlags
39 (Route Naked noArgs noFlags)
40 [ "version" ==> Route Version noArgs noFlags
41 , "install" ==> Route Install (required package) noFlags
42 , "publish" ==> Route Publish noArgs noFlags
43 , "make" ==> Route Make (zeroOrMore file) makeFlags
44 , "bump" ==> Route Bump noArgs noFlags
45 , "diff" ==> Route Diff diffArgs noFlags
46 , "repl" ==> Route Repl noArgs replFlags
47 , "develop" ==> Route Dev noArgs devFlags
51(==>) :: a -> b -> (a, b)
64 , _output :: Maybe Flags.Output
69makeFlags :: Flags MakeFlags
72 |-- onOff "warn" "Report warnings to improve code quality."
73 |-- onOff "debug" "Generate programs in debug mode."
74 |-- flag "output" output "Specify the name of the resulting JS file (use --output=/dev/null for no output)"
75 |-- onOff "server" "Generate JS for server-side rendering."
78output :: Parser Flags.Output
80 custom "PATH" $ \string ->
81 if string == "/dev/null" then
85 case FP.splitPath string of
90 outputCustom Nothing name
93 outputCustom (Just (FP.joinPath (init segments))) (last segments)
96outputCustom :: Maybe FilePath -> FilePath -> Maybe Flags.Output
97outputCustom maybeDir fileName =
98 if FP.takeExtension fileName == ".js" then
99 Just (Flags.Custom maybeDir fileName)
110 { _interpreter :: Maybe FilePath
114replFlags :: Flags ReplFlags
117 |-- flag "interpreter" (anything "EXE") "Path to a alternate JS interpreter, like node or nodejs."
130devFlags :: Flags DevFlags
133 |-- flag "port" (int "PORT") "The port of the server (default: 8000)"
140diffArgs :: Args Diff.Args
143 [ require0 Diff.CodeVsLatest
144 , require1 Diff.CodeVsExactly version
145 , require2 Diff.LocalInquiry version version
146 , require3 Diff.GlobalInquiry package version version
150package :: Parser Pkg.Name
152 custom "USER/PROJECT" $ \string ->
153 case Pkg.fromText (Text.pack string) of
161version :: Parser Pkg.Version
163 custom "VERSION" (Pkg.versionFromText . Text.pack)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list