diff options
author | lassulus <lass@aidsballs.de> | 2016-02-18 17:07:49 +0100 |
---|---|---|
committer | lassulus <lass@aidsballs.de> | 2016-02-18 17:07:49 +0100 |
commit | 0f225385758ebb156d49d05f03fe76c15023e200 (patch) | |
tree | 80a66df538e3c25f37cba726ef27669bbefdc18e /tv/2configs/urlwatch.nix | |
parent | e1a77d240eaedafbb58a387da94c863118533574 (diff) | |
parent | ffc47bf80d521635021b3f7a0122092708ebd2bf (diff) |
Merge remote-tracking branch 'cd/master'
Diffstat (limited to 'tv/2configs/urlwatch.nix')
-rw-r--r-- | tv/2configs/urlwatch.nix | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/tv/2configs/urlwatch.nix b/tv/2configs/urlwatch.nix index 0106cddf7..51b53230b 100644 --- a/tv/2configs/urlwatch.nix +++ b/tv/2configs/urlwatch.nix @@ -1,5 +1,5 @@ -{ config, ... }: - +{ config, pkgs, ... }: +with config.krebs.lib; { krebs.urlwatch = { enable = true; @@ -52,8 +52,43 @@ # is derived from `configFile` in: https://raw.githubusercontent.com/NixOS/nixpkgs/master/nixos/modules/services/x11/xserver.nix - https://pypi.python.org/pypi/vncdotool + { + url = https://pypi.python.org/pypi/vncdotool/json; + filter = "system:${pkgs.jq}/bin/jq -r '.releases|keys[]'"; + } https://api.github.com/repos/kanaka/noVNC/tags ]; + hooksFile = toFile "hooks.py" '' + import subprocess + import urlwatch + + class CaseFilter(urlwatch.filters.FilterBase): + """Filter for piping data through an external process""" + + __kind__ = 'system' + + def filter(self, data, subfilter=None): + if subfilter is None: + raise ValueError('The system filter needs a command') + + proc = subprocess.Popen( + subfilter, + shell=True, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + (stdout, stderr) = proc.communicate(data.encode()) + + if proc.returncode != 0: + raise RuntimeError( + "system filter returned non-zero exit status %d; stderr:\n" + % proc.returncode + + stderr.decode() + ) + + return stdout.decode() + ''; }; } |