Hi, On Tue, Mar 8, 2016 at 6:42 AM, Eric Sagnes <eric.sag...@gmail.com> wrote: > It is possible to import foreign modules in NixOps by doing: > > ``` > { > network.description = "Web server"; > > webserver = { config, pkgs, ... }: > let > myModuleSrc = (import <nixpkgs> {}).fetchFromGitHub { > owner = "me"; > repo = "myModule"; > rev = "v1.0"; > sha256 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; > }; > in > { > imports = [ "${myModuleSrc}/module.nix" ]; > services.myModule.enable = true; > }; > } > ``` > > Presupposing that the remote package provides a nix build expression, > is it possible to directly import it in a similar way? > Pseudo code that is not working: > > ``` > { > network.description = "Web server"; > > webserver = { config, pkgs, ... }: > let > myPackageSrc = (import <nixpkgs> {}).fetchFromGitHub { > owner = "me"; > repo = "myPackage"; > rev = "v1.0"; > sha256 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; > }; > in > { > environment.systemPackages = [ > (import "${myPackageSrc}/release.nix") > ]; > > }; > } > ``` > > (The above complains about coercing a function to a string.) >
you can also just use builtins.fetchFromTarball. for above you probably will want to do (import "${myPackagesSrc}/release.nix" { ... }) -- Rok Garbas - https://.garbas.si _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev