populate - source code installer populate can install sources from various locations into a directory. Currently populate knows how to install (local) files, Git repositories, and symlinks. Following example illustrates them all. Example: Install some source to /var/src ---------------------------------------- First we have to create a "sentinel file" that tells populate it's okay to install (and remove!) files from our target location: touch /var/src/.populate Next we'll run populate with a source specification: populate root@localhost/var/src <<EOF { "mystuff": { "type": "file", "file": { "path": "/path/to/mystuff-1.0" } }, "nixos-config": { "type": "symlink", "symlink": { "target": "mystuff/configuration.nix" } }, "nixpkgs": { "type": "git", "git": { "ref": "8bf31d7d27cae435d7c1e9e0ccb0a320b424066f", "url": "https://github.com/NixOS/nixpkgs" } }, "painload": { "type": "http", "http": { "keep-toplevel-singleton": false, "sha256": "46a9351e538144ee0f75d7e02ceb0b3359a215fff5905e6b9184e8d9558e7ff5", "unpack": true, "url": "https://github.com/krebscode/painload/tarball/master" } } EOF