(aura) Pull package sources via git · fosskers/aura@ca9c38d

@@ -29,6 +29,7 @@ module Aura.Packages.AUR

2929

( aurLookup

3030

, aurRepo

3131

, isAurPackage

32+

, clone

3233

, sourceTarball

3334

, aurInfo

3435

, aurSearch

@@ -49,8 +50,9 @@ import Data.Versions (versioning)

4950

import Internet

5051

import Linux.Arch.Aur

5152

import Network.HTTP.Client (Manager)

53+

import Shelly (Sh, run_)

5254

import System.FilePath ((</>))

53-

import Utilities (decompress, list)

55+

import Utilities (list, quietSh)

54565557

---

5658

@@ -81,9 +83,7 @@ buildable m ai = do

8183

, bldProvidesOf = list (Provides $ aurNameOf ai) (Provides . head) $ providesOf ai

8284

, bldDepsOf = mapMaybe parseDep $ dependsOf ai ++ makeDepsOf ai -- TODO bad mapMaybe?

8385

, bldVersionOf = either (const Nothing) Just . versioning $ aurVersionOf ai

84-

, isExplicit = False

85-

, buildScripts = f }

86-

where f fp = sourceTarball m fp (pkgBaseOf ai) >>= traverse (fmap T.unpack . decompress (T.pack fp) . T.pack)

86+

, isExplicit = False }

87878888

isAurPackage :: (Member (Reader Settings) r, Member IO r) => T.Text -> Eff r Bool

8989

isAurPackage name = asks managerOf >>= \m -> isJust <$> send (pkgbuild' @IO m name)

@@ -97,6 +97,16 @@ aurLink = "https://aur.archlinux.org"

9797

pkgUrl :: T.Text -> T.Text

9898

pkgUrl pkg = T.pack $ T.unpack aurLink </> "packages" </> T.unpack pkg

9999100+

-------------------

101+

-- SOURCES FROM GIT

102+

-------------------

103+

clone :: Buildable -> Sh (Maybe FilePath)

104+

clone b = do

105+

(ec, _) <- quietSh $ run_ "git" ["clone", "--depth", "1", aurLink <> "/" <> bldBaseNameOf b <> ".git"]

106+

case ec of

107+

(ExitFailure _) -> pure Nothing

108+

ExitSuccess -> pure . Just . T.unpack $ bldBaseNameOf b

109+100110

------------------

101111

-- SOURCE TARBALLS

102112

------------------