packages feed

cabalg 0.2.0 → 0.2.1

raw patch · 2 files changed

+17/−11 lines, 2 filesdep +randomdep −temporary

Dependencies added: random

Dependencies removed: temporary

Files

cabalg.cabal view
@@ -1,5 +1,5 @@ name: cabalg-version: 0.2.0+version: 0.2.1 synopsis: alias for cabal install from given git repo license: MIT license-file: LICENSE@@ -46,9 +46,9 @@     , process >= 1.2     , directory >= 1.2     , filepath >= 1.3-    , temporary >= 1.1.2.4     , filemanip >= 0.3.5.2     , split >= 0.2.2+    , random >= 1.0.1.1    default-language: Haskell2010 
src/Main.hs view
@@ -1,13 +1,15 @@ {-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-} import           Control.Applicative import           Control.Arrow        (second)+import           Control.Monad import           Data.List.Split      (splitOn) import           Data.Maybe           (catMaybes, fromMaybe, listToMaybe)-import           System.Directory     (getCurrentDirectory)+import           System.Directory     (createDirectory, getCurrentDirectory) import           System.Environment+import           System.FilePath import           System.FilePath.Find-import           System.IO.Temp       (createTempDirectory) import           System.Process       (callProcess)+import           System.Random  import           Git @@ -28,14 +30,18 @@  fetch :: String -> IO (Maybe FilePath) fetch urlAndMaybeRevision = do-  current_dir <- getCurrentDirectory-  let maybeRevision = listToMaybe . tail . splitOn "@" $ urlAndMaybeRevision-      url = head $ splitOn "@" urlAndMaybeRevision-  cabal_dir <- createTempDirectory current_dir ("cabalg_" ++ last (splitOn "/" url) ++ "X")+  currentDir <- getCurrentDirectory+  cabalDir <- (currentDir </>) . addName <$> genstr+  createDirectory cabalDir   case maybeRevision of-    Just revision -> cloneRevision url revision cabal_dir-    Nothing -> clone url cabal_dir-  listToMaybe <$> find always (extension ==? ".cabal") cabal_dir+    Just revision -> cloneRevision url revision cabalDir+    Nothing -> clone url cabalDir+  listToMaybe <$> find always (extension ==? ".cabal") cabalDir+    where+      maybeRevision = listToMaybe . tail . splitOn "@" $ urlAndMaybeRevision+      url = head $ splitOn "@" urlAndMaybeRevision+      genstr = liftM (take 10 . randomRs ('a','z')) newStdGen+      addName = (("cabalg_" ++ last (splitOn "/" url)) ++) . ('_' :)  cabalInstall :: [String] -> Maybe String -> IO () cabalInstall cabalFiles args = callProcess "cabal" $ "install" : cabalFiles ++ words (fromMaybe "" args)