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 | b7e4fa76513f07674e6a32a706e0ffa9fca3e897 (patch) | |
tree | e1a1936c53a608b2e1fd4f401fbb127f8055ad1f /tv/2configs/urlwatch.nix | |
parent | 97798eb4ede9a121092229b2f9ab68800b0ae866 (diff) | |
parent | 482180639dcf6064f0b249aeb350347f6e8e461f (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 0106cdd..51b5323 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() + ''; }; } |