@@ -395,7 +395,6 @@ parseUserArgs model compilerPath =
395395 }
396396
397397 CliParser.Repl flags ->
398- -- TODO: DRY up package installation
399398 -- TODO: create repl project when no project outline is found
400399 Terminal.PackageInstall.readProjectOutline model.fsPermission
401400 |> Task.mapError Terminal.PackageInstall.prettifyProjectOutlineError
@@ -441,43 +440,29 @@ parseUserArgs model compilerPath =
441440
442441 CliParser.Make flags ->
443442 -- TODO: Verify correct gren compiler version
444- Terminal.PackageInstall.readProjectOutline model.fsPermission
445- |> Task.mapError Terminal.PackageInstall.prettifyProjectOutlineError
446- |> Task.andThen
447- (\projectOutline ->
448- Terminal.PackageInstall.run
449- { fsPermission = model.fsPermission
450- , cpPermission = model.cpPermission
451- , interactive = model.interactive
452- , useColor = model.useColor
453- , stdout = model.stdout
454- , stdin = model.stdin
443+ resolveProject model
444+ |> Task.map
445+ (\resolved ->
446+ Compiler.Backend.run
447+ model.cpPermission
448+ { useColor = model.useColor
449+ , compilerPath = compilerPath
450+ , pathToString = model.pathToString
451+ , connection = initWithCommand <|
452+ Compiler.Backend.Make
453+ { optimize = flags.optimize
454+ , sourcemaps = flags.sourcemaps
455+ , output = flags.output
456+ , report = flags.report
457+ , projectPath = resolved.projectPath
458+ , entryPoints = flags.entryPoints
459+ , outline = resolved.outline
460+ , rootSources = resolved.rootSources
461+ , dependencies = resolved.dependencies
462+ }
463+ , onComplete = CompilerRan
455464 }
456- projectOutline
457- |> Task.mapError Terminal.PackageInstall.prettifyError
458- |> Task.map
459- (\resolved ->
460- Compiler.Backend.run
461- model.cpPermission
462- { useColor = model.useColor
463- , compilerPath = compilerPath
464- , pathToString = model.pathToString
465- , connection = initWithCommand <|
466- Compiler.Backend.Make
467- { optimize = flags.optimize
468- , sourcemaps = flags.sourcemaps
469- , output = flags.output
470- , report = flags.report
471- , projectPath = resolved.projectPath
472- , entryPoints = flags.entryPoints
473- , outline = resolved.outline
474- , rootSources = resolved.rootSources
475- , dependencies = resolved.dependencies
476- }
477- , onComplete = CompilerRan
478- }
479- )
480- )
465+ )
481466 |> Task.onError
482467 (\err ->
483468 Terminal.Help.prettyPrint printOpts err
@@ -519,22 +504,7 @@ parseUserArgs model compilerPath =
519504 |> Task.executeCmd
520505
521506 CliParser.Docs flags ->
522- -- TODO: DRY up package installation
523- Terminal.PackageInstall.readProjectOutline model.fsPermission
524- |> Task.mapError Terminal.PackageInstall.prettifyProjectOutlineError
525- |> Task.andThen
526- (\projectOutline ->
527- Terminal.PackageInstall.run
528- { fsPermission = model.fsPermission
529- , cpPermission = model.cpPermission
530- , interactive = model.interactive
531- , useColor = model.useColor
532- , stdout = model.stdout
533- , stdin = model.stdin
534- }
535- projectOutline
536- |> Task.mapError Terminal.PackageInstall.prettifyError
537- )
507+ resolveProject model
538508 |> Task.map
539509 (\resolved ->
540510 Compiler.Backend.run
@@ -564,22 +534,8 @@ parseUserArgs model compilerPath =
564534 |> Task.executeCmd
565535
566536 CliParser.PackageInstall Nothing ->
567- Terminal.PackageInstall.readProjectOutline model.fsPermission
568- |> Task.mapError Terminal.PackageInstall.prettifyProjectOutlineError
569- |> Task.andThen
570- (\projectOutline ->
571- Terminal.PackageInstall.run
572- { fsPermission = model.fsPermission
573- , cpPermission = model.cpPermission
574- , interactive = model.interactive
575- , useColor = model.useColor
576- , stdout = model.stdout
577- , stdin = model.stdin
578- }
579- projectOutline
580- |> Task.mapError Terminal.PackageInstall.prettifyError
581- |> Task.map (\_ -> {})
582- )
537+ resolveProject model
538+ |> Task.map (\_ -> {})
583539 |> Task.onError
584540 (\err ->
585541 Terminal.Help.prettyPrint printOpts err
@@ -829,3 +785,21 @@ parseUserArgs model compilerPath =
829785 }
830786 opts
831787
788+
789+ resolveProject : Model -> Task PP.Document Terminal.PackageInstall.PackageResolution
790+ resolveProject model =
791+ Terminal.PackageInstall.readProjectOutline model.fsPermission
792+ |> Task.mapError Terminal.PackageInstall.prettifyProjectOutlineError
793+ |> Task.andThen
794+ (\projectOutline ->
795+ Terminal.PackageInstall.run
796+ { fsPermission = model.fsPermission
797+ , cpPermission = model.cpPermission
798+ , interactive = model.interactive
799+ , useColor = model.useColor
800+ , stdout = model.stdout
801+ , stdin = model.stdin
802+ }
803+ projectOutline
804+ |> Task.mapError Terminal.PackageInstall.prettifyError
805+ )
0 commit comments