{pkgs, config, ...}: ###### interface let inherit (pkgs.lib) mkOption mkIf; options = { installer = { nixpkgsURL = mkOption { default = ""; example = http://nixos.org/releases/nix/nixpkgs-0.11pre7577; description = " URL of the Nixpkgs distribution to use when building the installation CD. "; }; repos = { nixos = mkOption { default = [ { type = "svn"; } ]; example = [ { type = "svn"; url = "https://svn.nixos.org/repos/nix/nixos/branches/stdenv-updates"; target = "/etc/nixos/nixos-stdenv-updates"; } { type = "git"; initialize = ''git clone git://mawercer.de/nixos $target''; update = "git pull origin"; target = "/etc/nixos/nixos-git"; } ]; description = '' The NixOS repository from which the system will be built. nixos-checkout will update all working copies of the given repositories, nixos-rebuild will use the first item which has the attribute default = true falling back to the first item. The type defines the repository tool added to the path. It also defines a "valid" repository. If the target directory already exists and it's not valid it will be moved to the backup location dir-date. For svn the default target and repositories are /etc/nixos/nixos and https://svn.nixos.org/repos/nix/nixos/trunk. For git repositories update is called after initialization when the repo is initialized. The initialize code is run from working directory dirname target and should create the directory dir. (git clone url nixos/nixpkgs/services should do) For the executables used see . ''; }; nixpkgs = mkOption { default = [ { type = "svn"; } ]; description = "same as "; }; services = mkOption { default = [ { type = "svn"; } ]; description = "same as "; }; }; repoTypes = mkOption { default = { svn = { valid = "[ -d .svn ]"; env = [ pkgs.coreutils pkgs.subversion ]; }; git = { valid = "[ -d .git ]"; env = [ pkgs.coreutils pkgs.git pkgs.gnused /* FIXME: use full path to sed in nix-pull */ ]; }; }; description = '' Defines, for each supported version control system (e.g. git), the dependencies for the mechanism, as well as a test used to determine whether a directory is a checkout created by that version control system. ''; }; manifests = mkOption { default = [http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable/MANIFEST]; example = [ http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable/MANIFEST http://nixos.org/releases/nixpkgs/channels/nixpkgs-stable/MANIFEST ]; description = " URLs of manifests to be downloaded when you run nixos-rebuild to speed up builds. "; }; }; }; in ###### implementation mkIf config.services.pulseaudio.enable { require = [ options ]; }