diff --git a/default.nix b/default.nix index 427c97d..e3d70b5 100644 --- a/default.nix +++ b/default.nix @@ -5,11 +5,23 @@ let callPackage = pkgs.lib.callPackageWith (pkgs // self); x = callPackage ./pkgs/x { }; quickserv = callPackage sources.quickserv { }; + dhall = callPackage sources.easy-dhall-nix { }; self = { + # nix tools + dhallToNix = import ./dhallToNix.nix; + + # other MoonPlus = callPackage ./pkgs/moonplus { }; minica = callPackage ./pkgs/minica { }; + # dhall + dhall = dhall.dhall-simple; + dhall-bash = dhall.dhall-bash-simple; + dhall-nix = dhall.dhall-nix-simple; + dhall-json = dhall.dhall-json-simple; + dhall-yaml = dhall.dhall-yaml-simple; + # lojban johaus = callPackage ./pkgs/johaus { }; jvozba = callPackage ./pkgs/jvozba { }; @@ -23,6 +35,6 @@ let mainsanow = x.mainsanow; prefix = x.prefix; - inherit x quickserv; + inherit quickserv x; }; in self diff --git a/dhallToNix.nix b/dhallToNix.nix new file mode 100644 index 0000000..5bac26e --- /dev/null +++ b/dhallToNix.nix @@ -0,0 +1,21 @@ +let + sources = import ./nix/sources.nix; + pkgs = import sources.nixpkgs { }; + withPkg = pkgs.lib.callPackageWith pkgs; + dhall = withPkg sources.easy-dhall-nix { }; + +in code: + let + file = builtins.toFile "dhall-expr" code; + + drv = pkgs.stdenv.mkDerivation { + name = "dhall-expr-as-nix"; + + buildCommand = '' + dhall-to-nix <<< "${file}" > $out + ''; + + buildInputs = [ dhall.dhall-nix-simple ]; + }; + in + import "${drv}" diff --git a/nix/sources.json b/nix/sources.json index 2f72ec1..f798096 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -11,6 +11,18 @@ "url": "https://github.com/pigpigyyy/MoonPlus/archive/d0583829535462a070e7ae90c6ea13f14244d060.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, + "easy-dhall-nix": { + "branch": "master", + "description": "Derivations for easily downloading Dhall binaries and putting them to use.", + "homepage": "", + "owner": "justinwoo", + "repo": "easy-dhall-nix", + "rev": "735ad924fd829c9bbee0a167e0b2bbbf91e2cad5", + "sha256": "1r3sqs1cz0mcfwfvaq1d21vnppg5sqzqdl6w9krsw5ad5czkk190", + "type": "tarball", + "url": "https://github.com/justinwoo/easy-dhall-nix/archive/735ad924fd829c9bbee0a167e0b2bbbf91e2cad5.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, "niv": { "branch": "master", "description": "Easy dependency management for Nix projects",