diff options
author | aszlig <aszlig@redmoonstudios.org> | 2015-04-17 12:31:27 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2015-04-17 12:31:27 +0200 |
commit | 62d2888f937bbea915463da55db520710fb5e3fb (patch) | |
tree | 836f882c8b9cbcfb3d98ded0cdbe22976ede0d93 /humblebundle/default.nix | |
parent | 4d3aa52331a080fa9d8bb2fa915ca4294ac09d22 (diff) |
Use the NixOS module system for configuration.
Let's use the module system to allow specifying things such as HumbleBundle or Steam or $whatnot's usernames and passwords, so we can not only typecheck these options but also modularize it before this whole repository is beginning to get very messy. Right now, if you use the default.nix without a configuration, you'll still get message saying that you may want to supply HumbleBundle credentials, even though it's no longer only about HumbleBundle anymore. Nevertheless, the only tree existing right now is the HumbleBundle one, so never mind about that :-) Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'humblebundle/default.nix')
-rw-r--r-- | humblebundle/default.nix | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/humblebundle/default.nix b/humblebundle/default.nix index 6e733603..953f3481 100644 --- a/humblebundle/default.nix +++ b/humblebundle/default.nix @@ -1,13 +1,13 @@ -{ email ? null, password ? null }: - -with import <nixpkgs> {}; +{ config, lib, pkgs, ... }: let + cfg = config.humblebundle; + self = rec { callPackage = pkgs.lib.callPackageWith (pkgs // self); fetchHumbleBundle = callPackage ./fetch-humble-bundle { - inherit email password; + inherit (config.humblebundle) email password; }; bastion = callPackage ./bastion.nix {}; @@ -21,4 +21,26 @@ let spaz = callPackage ./spaz.nix {}; swordsandsoldiers = callPackage ./swordsandsoldiers.nix {}; }; -in self +in with lib; { + options.humblebundle = { + email = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Email address for your HumbleBundle account. + ''; + }; + + password = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Password for your HumbleBundle account. + ''; + }; + }; + + config.packages = { + humblebundle = mkIf (cfg.email != null && cfg.password != null) self; + }; +} |