on master help sign in
Switch obelisk-command to use lib/cliapp
commita572f91508980e8442dbad8901a364757eb1bd97 authorSridhar Ratnakumar <srid@srid.ca> dateTue 29 May 2018, 14:32 (8 years ago) parentbcf704c
9 files changed+15−24
lib/command/obelisk-command.cabal+1−8 lib/command/src/Obelisk/App.hs+1−1 lib/command/src/Obelisk/Command.hs+2−2 lib/command/src/Obelisk/Command/Deploy.hs+3−4 lib/command/src/Obelisk/Command/Nix.hs+1−1 lib/command/src/Obelisk/Command/Project.hs+1−1 lib/command/src/Obelisk/Command/Run.hs+1−2 lib/command/src/Obelisk/Command/Thunk.hs+3−3 lib/command/src/Obelisk/Command/Utils.hs+2−2
lib/command/obelisk-command.cabal+1−8
@@ -15,6 +15,7 @@ library
1515 , base16-bytestring
1616 , binary
1717 , bytestring
18+ , cliapp
1819 , containers
1920 , data-default
2021 , directory
@@ -41,8 +42,6 @@ library
4142 , yaml
4243 exposed-modules:
4344 Obelisk.App
44− Obelisk.CLI
45− Obelisk.CLI.Demo
4645 Obelisk.Command
4746 Obelisk.Command.Deploy
4847 Obelisk.Command.Nix
@@ -50,12 +49,6 @@ library
5049 Obelisk.Command.Run
5150 Obelisk.Command.Thunk
5251 Obelisk.Command.Utils
53− other-modules:
54− Obelisk.CLI.Logging
55− Obelisk.CLI.Process
56− Obelisk.CLI.Spinner
57− Obelisk.CLI.TerminalString
58− Obelisk.CLI.Types
5952 -- -fobject-code is so that the StaticPointers extension can work in ghci
6053 ghc-options: -Wall -fobject-code
6154
lib/command/src/Obelisk/App.hs+1−1
@@ -11,7 +11,7 @@ import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)
1111import Control.Monad.Reader (MonadIO, ReaderT (..), ask, runReaderT)
1212import Control.Monad.Trans.Class (lift)
1313
14−import Obelisk.CLI (Cli, CliConfig, CliT, HasCliConfig, getCliConfig, runCli)
14+import CliApp (Cli, CliConfig, CliT, HasCliConfig, getCliConfig, runCli)
1515
1616newtype Obelisk = Obelisk
1717 { _obelisk_cliConfig :: CliConfig
lib/command/src/Obelisk/Command.hs+2−2
@@ -27,9 +27,9 @@ import System.IO (hIsTerminalDevice, stdout)
2727import System.Posix.Process (executeFile)
2828import System.Process (callCommand)
2929
30+import CliApp (Severity (..), failWith, getLogLevel, newCliConfig, putLog)
31+import CliApp.Demo (cliDemo)
3032import Obelisk.App
31−import Obelisk.CLI (Severity (..), failWith, getLogLevel, newCliConfig, putLog)
32−import Obelisk.CLI.Demo (cliDemo)
3333import Obelisk.Command.Deploy
3434import Obelisk.Command.Project
3535import Obelisk.Command.Run
lib/command/src/Obelisk/Command/Deploy.hs+3−4
@@ -9,8 +9,8 @@ import Control.Monad
99import Control.Monad.Catch (finally)
1010import Control.Monad.IO.Class (liftIO)
1111import Data.Attoparsec.ByteString.Char8 as A
12−import qualified Data.ByteString.Char8 as BC8
1312import Data.Bits
13+import qualified Data.ByteString.Char8 as BC8
1414import Data.Default
1515import Data.Maybe
1616import Data.Monoid
@@ -18,13 +18,12 @@ import qualified Data.Text as T
1818import qualified Data.Text.IO as T
1919import System.Directory
2020import System.FilePath
21−import System.Posix.Files
2221import System.Posix.Env (getEnvironment)
22+import System.Posix.Files
2323import System.Process (delegate_ctlc, env, proc, readProcess)
2424
25+import CliApp (Severity (..), callProcessAndLogOutput, failWith, putLog, withSpinner)
2526import Obelisk.App (MonadObelisk)
26−import Obelisk.CLI (Severity (..), callProcessAndLogOutput, failWith, withSpinner)
27−import Obelisk.CLI.Logging
2827import Obelisk.Command.Nix
2928import Obelisk.Command.Project
3029import Obelisk.Command.Thunk
lib/command/src/Obelisk/Command/Nix.hs+1−1
@@ -15,8 +15,8 @@ import Data.Monoid ((<>))
1515import qualified Data.Text as T
1616import System.Process (proc)
1717
18+import CliApp (Severity (..), readProcessAndLogStderr, withSpinner)
1819import Obelisk.App (MonadObelisk)
19−import Obelisk.CLI (Severity (..), readProcessAndLogStderr, withSpinner)
2020
2121-- | Where to put nix-build output
2222data OutLink
lib/command/src/Obelisk/Command/Project.hs+1−1
@@ -33,7 +33,7 @@ import GitHub.Data.GitData (Branch)
3333import GitHub.Data.Name (Name)
3434
3535import Obelisk.App (MonadObelisk)
36−import Obelisk.CLI (Severity (..), callProcessAndLogOutput, createProcess_, failWith, putLog, withSpinner)
36+import CliApp (Severity (..), callProcessAndLogOutput, createProcess_, failWith, putLog, withSpinner)
3737import Obelisk.Command.Thunk
3838import Obelisk.Command.Utils (cp)
3939--TODO: Make this module resilient to random exceptions
lib/command/src/Obelisk/Command/Run.hs+1−2
@@ -26,9 +26,8 @@ import System.Directory
2626import System.FilePath
2727import System.IO.Temp (withSystemTempDirectory)
2828
29+import CliApp (CliT (..), HasCliConfig, Severity (..), callCommand, failWith, getCliConfig, putLog, runCli)
2930import Obelisk.App (MonadObelisk, ObeliskT)
30−import Obelisk.CLI (CliT (..), HasCliConfig, Severity (..), callCommand, failWith, getCliConfig, putLog,
31− runCli)
3231import Obelisk.Command.Project (inProjectShell)
3332
3433-- NOTE: `run` is not polymorphic like the rest because we use StaticPtr to invoke it.
lib/command/src/Obelisk/Command/Thunk.hs+3−3
@@ -35,8 +35,8 @@ import Control.Monad.Catch (handle)
3535import Control.Monad.Except
3636import Data.Aeson ((.=))
3737import qualified Data.Aeson as Aeson
38−import qualified Data.Aeson.Types as Aeson
3938import Data.Aeson.Encode.Pretty
39+import qualified Data.Aeson.Types as Aeson
4040import qualified Data.ByteString.Lazy as LBS
4141import qualified Data.ByteString.Lazy.Char8 as LBSC
4242import Data.Default
@@ -71,9 +71,9 @@ import System.IO.Temp
7171import System.Posix (getSymbolicLinkStatus, modificationTime)
7272import System.Process (proc)
7373
74+import CliApp (Severity (..), callProcessAndLogOutput, failWith, putLog, readProcessAndLogStderr,
75+ withExitFailMessage, withSpinner)
7476import Obelisk.App (MonadObelisk)
75−import Obelisk.CLI (Severity (..), callProcessAndLogOutput, failWith, putLog, readProcessAndLogStderr,
76− withExitFailMessage, withSpinner)
7777import Obelisk.Command.Utils (checkGitCleanStatus, cp, git, procWithPackages)
7878
7979--TODO: Support symlinked thunk data
lib/command/src/Obelisk/Command/Utils.hs+2−2
@@ -2,13 +2,13 @@
22{-# LANGUAGE OverloadedStrings #-}
33module Obelisk.Command.Utils where
44
5+import qualified Data.List as L
56import Data.Semigroup ((<>))
67import qualified Data.Text as T
7−import qualified Data.List as L
88import qualified System.Process as P
99
10+import CliApp (Severity (..), callProcessAndLogOutput, readProcessAndLogStderr)
1011import Obelisk.App (MonadObelisk)
11−import Obelisk.CLI (Severity (..), callProcessAndLogOutput, readProcessAndLogStderr)
1212
1313-- Check whether the working directory is clean
1414checkGitCleanStatus :: MonadObelisk m => FilePath -> m Bool