Merge pull request #94891 from gvolpe/development/tools/dconf2nix
dconf2nix: init at 0.5.0wip/yesman
commit
1ae9ecf3b4
@ -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; |
||||
} |
@ -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 |
||||
''; |
||||
}; |
||||
}) |
@ -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." |
Loading…
Reference in new issue