packages feed

stackage-sandbox 0.1.1 → 0.1.2

raw patch · 3 files changed

+37/−40 lines, 3 filesdep +directorydep −system-fileiodep −system-filepathdep ~conduit-combinatorsPVP ok

version bump matches the API change (PVP)

Dependencies added: directory

Dependencies removed: system-fileio, system-filepath

Dependency ranges changed: conduit-combinators

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,3 +1,8 @@+## 0.1.2++* Migrated off of system-filepath and system-fileio+  in favor of filepath and directory.+ ## 0.1.1  * Added an associated library (stubbed)
main/Sandbox.hs view
@@ -24,18 +24,16 @@ import qualified Data.Text.Lazy.Builder.Int as Builder import qualified Data.Text.Lazy as LText import Data.Typeable (Typeable)-import Filesystem.Path.CurrentOS as Path-import Filesystem import Options.Applicative hiding (header, progDesc) import Stackage.CLI+import System.Directory import System.Environment (lookupEnv) import System.Exit-import System.FilePath (addTrailingPathSeparator)-import System.IO (hPutStrLn, stderr)+import System.FilePath (addTrailingPathSeparator, (</>))+import System.IO (hPutStrLn, stderr, openFile, IOMode(AppendMode)) import System.IO.Error (isDoesNotExistError) import System.Process (callProcess, readProcess) import qualified Paths_stackage_sandbox as CabalInfo-import Prelude hiding (FilePath)  type Snapshot = Text type Package = Text@@ -107,14 +105,9 @@   addCommand "delete" deleteDesc Delete (optional snapshotParser)   addCommand "upgrade" upgradeDesc Upgrade (optional snapshotParser) -toText' :: Path.FilePath -> IO Text-toText' p = case toText p of-  Left e -> throwIO $ DecodePathFail e-  Right t -> return t--cabalSandboxInit :: Path.FilePath -> IO ()+cabalSandboxInit :: FilePath -> IO () cabalSandboxInit dir = do-  dirText <- toText' dir+  let dirText = T.pack dir   let args =         [ "sandbox"         , "init"@@ -141,14 +134,14 @@ -- TODO: verify things about the packages in the sandbox sandboxVerify :: IO () sandboxVerify = do-  cabalConfigExists <- isFile "cabal.config"-  cabalSandboxConfigExists <- isFile "cabal.sandbox.config"+  cabalConfigExists <- doesFileExist "cabal.config"+  cabalSandboxConfigExists <- doesFileExist "cabal.sandbox.config"   if (cabalConfigExists && cabalSandboxConfigExists)     then do       packageDb <- getPackageDb       snapshot <- parseConfigSnapshot       snapshotDir <- getSnapshotDir snapshot-      snapshotDirText <- toText' snapshotDir+      let snapshotDirText = T.pack snapshotDir       when (not $ T.isPrefixOf snapshotDirText packageDb) $ do         throwIO $ PackageDbLocMismatch snapshotDirText packageDb     else do@@ -164,11 +157,11 @@  sandboxInit :: Maybe Snapshot -> IO () sandboxInit msnapshot = do-  cabalSandboxConfigExists <- isFile "cabal.sandbox.config"+  cabalSandboxConfigExists <- doesFileExist "cabal.sandbox.config"   when cabalSandboxConfigExists $ do     throwIO ConfigAlreadyExists -  cabalConfigExists <- isFile "cabal.config"+  cabalConfigExists <- doesFileExist "cabal.config"   configAdded <- if (not cabalConfigExists)     then do       runStackagePlugin "init" (mSnapshotToArgs msnapshot)@@ -185,7 +178,7 @@   T.putStrLn $ "Initializing at snapshot: " <> snapshot    dir <- getSnapshotDir snapshot-  createTree dir+  createDirectoryIfMissing True dir   cabalSandboxInit dir   appendFileToFile "cabal.config" "cabal.sandbox.config"   when configAdded $ removeFile "cabal.config"@@ -203,25 +196,25 @@         Just home -> return home         Nothing -> throwIO NoHomeEnvironmentVariable -getSnapshotDirPrefix :: IO Path.FilePath+getSnapshotDirPrefix :: IO FilePath getSnapshotDirPrefix = do   home <- getHome   ghcVersion <- getGhcVersion-  let dir = Path.fromText home </> ".stackage" </> "sandboxes"-        </> Path.fromText ghcVersion+  let dir = T.unpack home </> ".stackage" </> "sandboxes"+        </> T.unpack ghcVersion   return dir -getSnapshotDir :: Snapshot -> IO Path.FilePath+getSnapshotDir :: Snapshot -> IO FilePath getSnapshotDir snapshot = do   dir <- getSnapshotDirPrefix-  return $ dir </> Path.fromText snapshot+  return $ dir </> T.unpack snapshot   -- copied from Purge.hs, tweaked -- TODO: remove duplication parsePackageDb :: IO (Maybe Text) parsePackageDb = do-  cabalSandboxConfigExists <- isFile "cabal.sandbox.config"+  cabalSandboxConfigExists <- doesFileExist "cabal.sandbox.config"   if cabalSandboxConfigExists     then do       t <- T.readFile "cabal.sandbox.config"@@ -262,10 +255,10 @@  sandboxDelete :: IO () sandboxDelete = do-  cabalConfigExists <- isFile "cabal.config"+  cabalConfigExists <- doesFileExist "cabal.config"   when cabalConfigExists $ do     removeFile "cabal.config"-  cabalSandboxConfigExists <- isFile "cabal.sandbox.config"+  cabalSandboxConfigExists <- doesFileExist "cabal.sandbox.config"   when cabalSandboxConfigExists $ do     oldSandboxNotice     removeFile "cabal.sandbox.config"@@ -279,20 +272,20 @@ sandboxDeleteSnapshot :: Snapshot -> IO () sandboxDeleteSnapshot snapshot = do   snapshotSanityCheck snapshot-  getSnapshotDir snapshot >>= removeTree+  getSnapshotDir snapshot >>= removeDirectoryRecursive  -- Find the canonical name for a snapshot by looking it up on stackage.org. -- This can change over time. e.g. "lts" used to mean lts-1.0. downloadSnapshot :: Maybe Snapshot -> IO Snapshot downloadSnapshot mSnapshot = do-  workingDir <- getWorkingDirectory+  currentDir <- getCurrentDirectory   let tempDir = ".stackage-sandbox-tmp"       enterTempDir = do-        createDirectory False tempDir-        setWorkingDirectory tempDir+        createDirectory tempDir+        setCurrentDirectory tempDir       exitTempDir = do-        setWorkingDirectory workingDir-        removeTree tempDir+        setCurrentDirectory currentDir+        removeDirectoryRecursive tempDir   bracket_ enterTempDir exitTempDir $ do     runStackagePlugin "init" (mSnapshotToArgs mSnapshot)     parseConfigSnapshot@@ -300,8 +293,8 @@  sandboxUpgrade :: Maybe Snapshot -> IO () sandboxUpgrade mSnapshot = do-  cabalConfigExists <- isFile "cabal.config"-  cabalSandboxConfigExists <- isFile "cabal.sandbox.config"+  cabalConfigExists <- doesFileExist "cabal.config"+  cabalSandboxConfigExists <- doesFileExist "cabal.sandbox.config"    mConfigSnapshot <- if cabalConfigExists     then Just <$> parseConfigSnapshot@@ -313,7 +306,7 @@         && cabalSandboxConfigExists) $ do     packageDb <- getPackageDb     snapshotDir <- getSnapshotDir snapshot-    snapshotDirText <- toText' snapshotDir+    let snapshotDirText = T.pack snapshotDir     if T.isPrefixOf snapshotDirText packageDb       then do         T.putStrLn $ "Already at snapshot: " <> snapshot@@ -327,7 +320,7 @@ getSandboxPrefix :: IO Text getSandboxPrefix = do   dirPath <- getSnapshotDirPrefix-  dirPathText <- toText' dirPath+  let dirPathText = T.pack dirPath   let viaString f = T.pack . f . T.unpack   return $ viaString addTrailingPathSeparator dirPathText 
stackage-sandbox.cabal view
@@ -1,5 +1,5 @@ name:                stackage-sandbox-version:             0.1.1+version:             0.1.2 synopsis:   Work with shared stackage sandboxes description:@@ -40,13 +40,12 @@       base >=4.7 && <5     , text     , stackage-cli-    , system-fileio-    , system-filepath     , optparse-applicative     , process     , filepath+    , directory     , attoparsec-    , conduit-combinators+    , conduit-combinators >=0.4     , conduit-extra     , bytestring   default-language:    Haskell2010