From dfc838aba2b955e25e319720078d81b79d478e45 Mon Sep 17 00:00:00 2001 From: Nicolas Mattia Date: Sat, 30 Nov 2019 12:36:23 +0100 Subject: [PATCH] Parse ref and rev in git --- nix/sources.nix | 2 +- src/Niv/Git/Cmd.hs | 17 ++++++++++++++--- src/Niv/Sources.hs | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/nix/sources.nix b/nix/sources.nix index ead5aa7..4c0351c 100644 --- a/nix/sources.nix +++ b/nix/sources.nix @@ -19,7 +19,7 @@ let pkgs.fetchzip { inherit (spec) url sha256; }; fetch_git = spec: - builtins.fetchGit { url = spec.repo; inherit (spec) rev; }; + builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; }; fetch_builtin-tarball = spec: builtins.trace diff --git a/src/Niv/Git/Cmd.hs b/src/Niv/Git/Cmd.hs index 1f397e5..1de354f 100644 --- a/src/Niv/Git/Cmd.hs +++ b/src/Niv/Git/Cmd.hs @@ -7,6 +7,7 @@ module Niv.Git.Cmd (gitCmd) where import Control.Arrow +import Control.Applicative import Data.String.QQ (s) import Data.Text.Extended as T import Niv.Cmd @@ -32,14 +33,24 @@ gitCmd = Cmd -- TODO: don't hardcode here parseGitPackageSpec :: Opts.Parser PackageSpec parseGitPackageSpec = - (PackageSpec . HMS.singleton "repo") <$> - parseRepo + (PackageSpec . HMS.fromList) <$> + many (parseRepo <|> parseRef <|> parseRev) where parseRepo = - Aeson.String <$> Opts.strOption + ("repo", ) . Aeson.String <$> Opts.strOption ( Opts.long "repo" <> Opts.metavar "URL" ) + parseRev = + ("rev", ) . Aeson.String <$> Opts.strOption + ( Opts.long "rev" <> + Opts.metavar "SHA" + ) + parseRef = + ("ref", ) . Aeson.String <$> Opts.strOption + ( Opts.long "ref" <> + Opts.metavar "REF" + ) describeGit :: Opts.InfoMod a describeGit = mconcat diff --git a/src/Niv/Sources.hs b/src/Niv/Sources.hs index cf0a5a0..bfb1fdf 100644 --- a/src/Niv/Sources.hs +++ b/src/Niv/Sources.hs @@ -176,7 +176,7 @@ sourcesVersionToMD5 = \case V9 -> "87149616c1b3b1e5aa73178f91c20b53" V10 -> "d8625c0a03dd935e1c79f46407faa8d3" V11 -> "8a95b7d93b16f7c7515d98f49b0ec741" - V12 -> "b42c201152bb6d93c6c24388e3cf3249" + V12 -> "2f9629ad9a8f181ed71d2a59b454970c" -- | The MD5 sum of ./nix/sources.nix sourcesNixMD5 :: IO T.Text