diff options
Diffstat (limited to 'humblebundle/fetch-humble-bundle/default.nix')
-rw-r--r-- | humblebundle/fetch-humble-bundle/default.nix | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/humblebundle/fetch-humble-bundle/default.nix b/humblebundle/fetch-humble-bundle/default.nix index 3ef2cbe6..b5b15bb6 100644 --- a/humblebundle/fetch-humble-bundle/default.nix +++ b/humblebundle/fetch-humble-bundle/default.nix @@ -1,5 +1,7 @@ -{ stdenv, curl, cacert, email, password, writeText, fetchFromGitHub -, python, buildPythonPackage, pythonPackages, fetchpatch +{ stdenv, curl, cacert, writeText, fetchFromGitHub, fetchpatch +, python, buildPythonPackage, pythonPackages + +, email ? null, password ? null }: { machineName, downloadName ? "Download", suffix ? "humblebundle", md5 }: let @@ -24,6 +26,28 @@ propagatedBuildInputs = with pythonPackages; [ requests2 ]; }; + configFilePath = let + xdgConfig = builtins.getEnv "XDG_CONFIG_HOME"; + fallback = "${builtins.getEnv "HOME"}/.config"; + basedir = if xdgConfig == "" then fallback else xdgConfig; + in "${basedir}/nixgames.nix"; + + configFile = if !builtins.pathExists configFilePath then throw '' + The config file "${configFilePath}" doesn't exist! Be sure to create it and + put your HumbleBundle email address and password in it, like this: + + { + humblebundle.email = "fancyuser@example.com"; + humblebundle.password = "my_super_secret_password"; + } + '' else configFilePath; + + credentials = if email != null && password != null then { + inherit email password; + } else { + inherit ((import configFile).humblebundle) email password; + }; + getDownloadURL = writeText "gethburl.py" '' import sys, humblebundle @@ -53,7 +77,7 @@ raise SystemExit(1) hb = humblebundle.HumbleApi() - hb.login('${email}', '${password}') + hb.login('${credentials.email}', '${credentials.password}') products = dict(get_products(hb)) dstruct = find_download(products) |