Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Browser/Format.elm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Browser.Format exposing (run)

import Common.Format
import Compiler.Elm.Package as Pkg
import Compiler.Guida.Package as Pkg
import Compiler.Parse.Module as M
import Compiler.Parse.SyntaxVersion as SV

Expand Down
461 changes: 314 additions & 147 deletions src/Browser/Install.elm

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/Browser/Main.elm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Browser.Install as Install
import Browser.Make as Make
import Browser.Uninstall as Uninstall
import Builder.Reporting.Exit as Exit
import Compiler.Elm.Package as Pkg
import Compiler.Guida.Package as Pkg
import Compiler.Json.Encode as E
import Compiler.Parse.Primitives as P
import Json.Decode as Decode
Expand Down
16 changes: 8 additions & 8 deletions src/Browser/Make.elm
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ module Browser.Make exposing

import Builder.BackgroundWriter as BW
import Builder.Build as Build
import Builder.Elm.Details as Details
import Builder.Guida.Details as Details
import Builder.Generate as Generate
import Builder.Reporting as Reporting
import Builder.Reporting.Exit as Exit
import Builder.Stuff as Stuff
import Compiler.AST.Optimized as Opt
import Compiler.Data.NonEmptyList as NE
import Compiler.Elm.ModuleName as ModuleName
import Compiler.Guida.ModuleName as ModuleName
import Compiler.Generate.Html as Html
import Maybe.Extra as Maybe
import Task exposing (Task)
Expand Down Expand Up @@ -66,11 +66,11 @@ run path flags =
)


runHelp : String -> String -> Flags -> Task Never (Result Exit.Make String)
runHelp : Stuff.Root -> String -> Flags -> Task Never (Result Exit.Make String)
runHelp root path (Flags debug optimize withSourceMaps) =
BW.withScope
(\scope ->
Stuff.withRootLock root <|
Stuff.withRootLock (Stuff.rootPath root) <|
Task.run <|
(getMode debug optimize
|> Task.bind
Expand Down Expand Up @@ -128,10 +128,10 @@ getMode debug optimize =
-- BUILD PROJECTS


buildPaths : Reporting.Style -> FilePath -> Details.Details -> NE.Nonempty FilePath -> Task Exit.Make Build.Artifacts
buildPaths : Reporting.Style -> Stuff.Root -> Details.Details -> NE.Nonempty FilePath -> Task Exit.Make Build.Artifacts
buildPaths style root details paths =
Task.eio Exit.MakeCannotBuild <|
Build.fromPaths style root details paths
Build.fromPaths style (Stuff.rootPath root) details paths



Expand Down Expand Up @@ -178,7 +178,7 @@ type DesiredMode
| Prod


toBuilder : Bool -> Int -> FilePath -> Details.Details -> DesiredMode -> Build.Artifacts -> Task Exit.Make String
toBuilder : Bool -> Int -> Stuff.Root -> Details.Details -> DesiredMode -> Build.Artifacts -> Task Exit.Make String
toBuilder withSourceMaps leadingLines root details desiredMode artifacts =
Task.mapError Exit.MakeBadGenerate <|
case desiredMode of
Expand Down Expand Up @@ -221,7 +221,7 @@ output =
{ singular = "output file"
, plural = "output files"
, suggest = \_ -> Task.pure []
, examples = \_ -> Task.pure [ "elm.js", "index.html", "/dev/null" ]
, examples = \_ -> Task.pure [ "guida.js", "index.html", "/dev/null" ]
}


Expand Down
142 changes: 95 additions & 47 deletions src/Browser/Uninstall.elm
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@ module Browser.Uninstall exposing (run)

import Builder.BackgroundWriter as BW
import Builder.Deps.Solver as Solver
import Builder.Elm.Details as Details
import Builder.Elm.Outline as Outline
import Builder.Guida.Details as Details
import Builder.Guida.Outline as Outline
import Builder.Reporting as Reporting
import Builder.Reporting.Exit as Exit
import Builder.Stuff as Stuff
import Compiler.Elm.Constraint as C
import Compiler.Elm.Package as Pkg
import Compiler.Elm.Version as V
import Compiler.Guida.Constraint as C
import Compiler.Guida.Package as Pkg
import Compiler.Guida.Version as V
import Data.Map as Dict exposing (Dict)
import System.IO as IO
import Task exposing (Task)
import Utils.Main exposing (FilePath)
import Utils.Task.Extra as Task


Expand Down Expand Up @@ -63,7 +62,7 @@ type Changes vsn
| Changes Outline.Outline


attemptChanges : String -> Solver.Env -> Outline.Outline -> Changes a -> Task Exit.Uninstall ()
attemptChanges : Stuff.Root -> Solver.Env -> Outline.Outline -> Changes a -> Task Exit.Uninstall ()
attemptChanges root env oldOutline changes =
case changes of
AlreadyNotPresent ->
Expand All @@ -73,7 +72,7 @@ attemptChanges root env oldOutline changes =
attemptChangesHelp root env oldOutline newOutline


attemptChangesHelp : FilePath -> Solver.Env -> Outline.Outline -> Outline.Outline -> Task Exit.Uninstall ()
attemptChangesHelp : Stuff.Root -> Solver.Env -> Outline.Outline -> Outline.Outline -> Task Exit.Uninstall ()
attemptChangesHelp root env oldOutline newOutline =
Task.eio Exit.UninstallBadDetails <|
BW.withScope
Expand All @@ -99,53 +98,102 @@ attemptChangesHelp root env oldOutline newOutline =


makeAppPlan : Solver.Env -> Pkg.Name -> Outline.AppOutline -> Task Exit.Uninstall (Changes V.Version)
makeAppPlan (Solver.Env cache _ connection registry) pkg ((Outline.AppOutline _ _ direct _ testDirect _) as outline) =
case Dict.get identity pkg (Dict.union direct testDirect) of
Just _ ->
Task.io (Solver.removeFromApp cache connection registry pkg outline)
|> Task.bind
(\result ->
case result of
Solver.SolverOk (Solver.AppSolution _ _ app) ->
Task.pure (Changes (Outline.App app))
makeAppPlan (Solver.Env cache _ connection registry) pkg outline =
case outline of
Outline.GuidaAppOutline _ _ direct _ testDirect _ ->
case Dict.get identity pkg (Dict.union direct testDirect) of
Just _ ->
Task.io (Solver.removeFromApp cache connection registry pkg outline)
|> Task.bind
(\result ->
case result of
Solver.SolverOk (Solver.AppSolution _ _ app) ->
Task.pure (Changes (Outline.App app))

Solver.NoSolution ->
Task.throw (Exit.UninstallNoOnlineAppSolution pkg)
Solver.NoSolution ->
Task.throw (Exit.UninstallNoOnlineAppSolution pkg)

Solver.NoOfflineSolution ->
Task.throw (Exit.UninstallNoOfflineAppSolution pkg)
Solver.NoOfflineSolution ->
Task.throw (Exit.UninstallNoOfflineAppSolution pkg)

Solver.SolverErr exit ->
Task.throw (Exit.UninstallHadSolverTrouble exit)
)
Solver.SolverErr exit ->
Task.throw (Exit.UninstallHadSolverTrouble exit)
)

Nothing ->
Task.pure AlreadyNotPresent
Nothing ->
Task.pure AlreadyNotPresent

Outline.ElmAppOutline _ _ direct _ testDirect _ ->
case Dict.get identity pkg (Dict.union direct testDirect) of
Just _ ->
Task.io (Solver.removeFromApp cache connection registry pkg outline)
|> Task.bind
(\result ->
case result of
Solver.SolverOk (Solver.AppSolution _ _ app) ->
Task.pure (Changes (Outline.App app))

Solver.NoSolution ->
Task.throw (Exit.UninstallNoOnlineAppSolution pkg)

Solver.NoOfflineSolution ->
Task.throw (Exit.UninstallNoOfflineAppSolution pkg)

Solver.SolverErr exit ->
Task.throw (Exit.UninstallHadSolverTrouble exit)
)

Nothing ->
Task.pure AlreadyNotPresent



-- MAKE PACKAGE PLAN


makePkgPlan : Pkg.Name -> Outline.PkgOutline -> Task Exit.Uninstall (Changes C.Constraint)
makePkgPlan pkg (Outline.PkgOutline name summary license version exposed deps test elmVersion) =
let
old : Dict ( String, String ) Pkg.Name C.Constraint
old =
Dict.union deps test
in
if Dict.member identity pkg old then
Task.pure <|
Changes <|
Outline.Pkg <|
Outline.PkgOutline name
summary
license
version
exposed
(Dict.remove identity pkg deps)
(Dict.remove identity pkg test)
elmVersion

else
Task.pure AlreadyNotPresent
makePkgPlan pkg outline =
case outline of
Outline.GuidaPkgOutline name summary license version exposed deps test elmVersion ->
let
old : Dict ( String, String ) Pkg.Name C.Constraint
old =
Dict.union deps test
in
if Dict.member identity pkg old then
Task.pure <|
Changes <|
Outline.Pkg <|
Outline.GuidaPkgOutline name
summary
license
version
exposed
(Dict.remove identity pkg deps)
(Dict.remove identity pkg test)
elmVersion

else
Task.pure AlreadyNotPresent

Outline.ElmPkgOutline name summary license version exposed deps test elmVersion ->
let
old : Dict ( String, String ) Pkg.Name C.Constraint
old =
Dict.union deps test
in
if Dict.member identity pkg old then
Task.pure <|
Changes <|
Outline.Pkg <|
Outline.ElmPkgOutline name
summary
license
version
exposed
(Dict.remove identity pkg deps)
(Dict.remove identity pkg test)
elmVersion

else
Task.pure AlreadyNotPresent
12 changes: 6 additions & 6 deletions src/Builder/Build.elm
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ module Builder.Build exposing
)

import Basics.Extra exposing (flip)
import Builder.Elm.Details as Details
import Builder.Elm.Outline as Outline
import Builder.File as File
import Builder.Guida.Details as Details
import Builder.Guida.Outline as Outline
import Builder.Reporting as Reporting
import Builder.Reporting.Exit as Exit
import Builder.Stuff as Stuff
Expand All @@ -32,10 +32,10 @@ import Compiler.Data.Map.Utils as Map
import Compiler.Data.Name as Name
import Compiler.Data.NonEmptyList as NE
import Compiler.Data.OneOrMore as OneOrMore
import Compiler.Elm.Docs as Docs
import Compiler.Elm.Interface as I
import Compiler.Elm.ModuleName as ModuleName
import Compiler.Elm.Package as Pkg
import Compiler.Guida.Docs as Docs
import Compiler.Guida.Interface as I
import Compiler.Guida.ModuleName as ModuleName
import Compiler.Guida.Package as Pkg
import Compiler.Json.Encode as E
import Compiler.Parse.Module as Parse
import Compiler.Parse.SyntaxVersion as SV
Expand Down
4 changes: 2 additions & 2 deletions src/Builder/Deps/Bump.elm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
module Builder.Deps.Bump exposing (getPossibilities)

import Builder.Deps.Registry exposing (KnownVersions(..))
import Compiler.Elm.Magnitude as M
import Compiler.Elm.Version as V
import Compiler.Guida.Magnitude as M
import Compiler.Guida.Version as V
import List.Extra
import Utils.Main as Utils

Expand Down
12 changes: 6 additions & 6 deletions src/Builder/Deps/Diff.elm
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ import Builder.Http as Http
import Builder.Reporting.Exit as Exit exposing (DocsProblem(..))
import Builder.Stuff as Stuff
import Compiler.Data.Name as Name
import Compiler.Elm.Compiler.Type as Type
import Compiler.Elm.Docs as Docs
import Compiler.Elm.Magnitude as M
import Compiler.Elm.ModuleName as ModuleName
import Compiler.Elm.Package as Pkg
import Compiler.Elm.Version as V exposing (Version)
import Compiler.Guida.Compiler.Type as Type
import Compiler.Guida.Docs as Docs
import Compiler.Guida.Magnitude as M
import Compiler.Guida.ModuleName as ModuleName
import Compiler.Guida.Package as Pkg
import Compiler.Guida.Version as V exposing (Version)
import Compiler.Json.Decode as D
import Data.Map as Dict exposing (Dict)
import Data.Set as EverySet
Expand Down
4 changes: 2 additions & 2 deletions src/Builder/Deps/Registry.elm
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import Builder.File as File
import Builder.Http as Http
import Builder.Reporting.Exit as Exit
import Builder.Stuff as Stuff
import Compiler.Elm.Package as Pkg
import Compiler.Elm.Version as V
import Compiler.Guida.Package as Pkg
import Compiler.Guida.Version as V
import Compiler.Json.Decode as D
import Compiler.Parse.Primitives as P
import Data.Map as Dict exposing (Dict)
Expand Down
Loading
Loading