Merge pull request #94891 from gvolpe/development/tools/dconf2nix

dconf2nix: init at 0.5.0
This commit is contained in:
Dennis Gosnell 2020-08-10 09:40:27 +09:00 committed by GitHub
commit 1ae9ecf3b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 89 additions and 0 deletions

View File

@ -3230,6 +3230,12 @@
githubId = 6768842;
name = "Joris Guyonvarch";
};
gvolpe = {
email = "volpegabriel@gmail.com";
github = "gvolpe";
githubId = 443978;
name = "Gabriel Volpe";
};
hakuch = {
email = "hakuch@gmail.com";
github = "hakuch";

View File

@ -10,6 +10,8 @@ self: super: {
multi-ghc-travis = throw ("haskellPackages.multi-ghc-travis has been renamed"
+ " to haskell-ci, which is now on hackage");
dconf2nix = self.callPackage ../tools/haskell/dconf2nix/dconf2nix.nix { };
# https://github.com/channable/vaultenv/issues/1
vaultenv = self.callPackage ../tools/haskell/vaultenv { };

View File

@ -0,0 +1,21 @@
{ mkDerivation, base, containers, fetchgit, optparse-applicative
, parsec, stdenv, text
}:
mkDerivation {
pname = "dconf2nix";
version = "0.0.5";
src = fetchgit {
url = "https://github.com/gvolpe/dconf2nix.git";
sha256 = "0immbx4bgfq3xmbbrpw441nx0sdpm4cp64s7qbvcbvllp4gbivpg";
rev = "848ff9966db21c66e61a19c04ab6dfc9270eb78e";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
base containers optparse-applicative parsec text
];
executableHaskellDepends = [ base ];
description = "Convert dconf files to Nix, as expected by Home Manager";
license = stdenv.lib.licenses.asl20;
}

View File

@ -0,0 +1,32 @@
{ haskell, haskellPackages, lib, runCommand }:
let
dconf2nix =
haskell.lib.justStaticExecutables
(haskell.lib.overrideCabal haskellPackages.dconf2nix (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [
lib.maintainers.gvolpe
];
}));
in
dconf2nix.overrideAttrs (oldAttrs: {
passthru = (oldAttrs.passthru or {}) // {
updateScript = ./update.sh;
# These tests can be run with the following command.
#
# $ nix-build -A dconf2nix.passthru.tests
tests =
runCommand
"dconf2nix-tests"
{
nativeBuildInputs = [
dconf2nix
];
}
''
dconf2nix > $out
'';
};
})

View File

@ -0,0 +1,26 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix curl jq
#
# This script will update the dconf2nix derivation to the latest version using
# cabal2nix.
set -eo pipefail
# This is the directory of this update.sh script.
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# dconf2nix derivation created with cabal2nix.
dconf2nix_derivation_file="${script_dir}/dconf2nix.nix"
# This is the current revision of dconf2nix in Nixpkgs.
old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$dconf2nix_derivation_file")"
# This is the latest release version of dconf2nix on GitHub.
new_version=$(curl --silent "https://api.github.com/repos/gvolpe/dconf2nix/releases" | jq '.[0].tag_name' --raw-output)
echo "Updating dconf2nix from old version $old_version to new version $new_version."
echo "Running cabal2nix and outputting to ${dconf2nix_derivation_file}..."
cabal2nix --revision "$new_version" "https://github.com/gvolpe/dconf2nix.git" > "$dconf2nix_derivation_file"
echo "Finished."

View File

@ -2931,6 +2931,8 @@ in
dclxvi = callPackage ../development/libraries/dclxvi { };
dconf2nix = callPackage ../development/tools/haskell/dconf2nix { };
dcraw = callPackage ../tools/graphics/dcraw { };
dcfldd = callPackage ../tools/system/dcfldd { };