diff options
| author | Átila Saraiva <atilasaraiva@gmail.com> | 2022-02-14 23:18:02 -0300 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2022-02-19 13:15:02 +0000 |
| commit | 0cb6c5d5863972a7aaca2c6cddb2e0e7720abf3d (patch) | |
| tree | 7ebc6d5bc9f2bfacac3754c5c8a176ec23d6ffa6 | |
| parent | Merge pull request #159870 from NixOS/backport-159687-to-release-21.11 (diff) | |
| download | nixpkgs-0cb6c5d5863972a7aaca2c6cddb2e0e7720abf3d.tar.gz | |
swaytools: init at 0.1.0
(cherry picked from commit e93bb42cd7cbf0b5a296dac6a22fb9fb10108b53)
| -rw-r--r-- | pkgs/tools/wayland/swaytools/default.nix | 22 | ||||
| -rwxr-xr-x | pkgs/tools/wayland/swaytools/update.py | 58 | ||||
| -rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
3 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/tools/wayland/swaytools/default.nix b/pkgs/tools/wayland/swaytools/default.nix new file mode 100644 index 000000000000..4c254c9a5932 --- /dev/null +++ b/pkgs/tools/wayland/swaytools/default.nix @@ -0,0 +1,22 @@ +{ lib, python3Packages, slurp }: + +python3Packages.buildPythonApplication rec { + pname = "swaytools"; + version = "0.1.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "1eb89259cbe027a0fa6bfc06ecf94e89b15e6f7b4965104e5b661c916ce7408c"; + }; + + propagatedBuildInputs = [ slurp ]; + + passthru.updateScript = ./update.py; + + meta = with lib; { + homepage = "https://github.com/tmccombs/swaytools"; + description = "Collection of simple tools for sway (and i3)"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ atila ]; + }; +} diff --git a/pkgs/tools/wayland/swaytools/update.py b/pkgs/tools/wayland/swaytools/update.py new file mode 100755 index 000000000000..141566848e38 --- /dev/null +++ b/pkgs/tools/wayland/swaytools/update.py @@ -0,0 +1,58 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python -p python39Packages.requests python39Packages.pip python39Packages.packaging + +import requests +import json +import subprocess +try: + from packaging.version import parse +except ImportError: + from pip._vendor.packaging.version import parse + + +URL_PATTERN = 'https://pypi.python.org/pypi/{package}/json' + +def findLine(key,derivation): + count = 0 + lines = [] + for line in derivation: + if key in line: + lines.append(count) + count += 1 + return lines + +def get_version(package, url_pattern=URL_PATTERN): + """Return version of package on pypi.python.org using json.""" + req = requests.get(url_pattern.format(package=package)) + version = parse('0') + if req.status_code == requests.codes.ok: + j = json.loads(req.text.encode(req.encoding)) + releases = j.get('releases', []) + for release in releases: + ver = parse(release) + if not ver.is_prerelease: + if ver > version: + version = ver + sha256 = j["releases"][release][-1]["digests"]["sha256"] + return version, sha256 + + +if __name__ == '__main__': + + nixpkgs = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip('\n') + swaytoolsFolder = "/pkgs/tools/wayland/swaytools/" + with open(nixpkgs + swaytoolsFolder + "default.nix", 'r') as arq: + derivation = arq.readlines() + + version, sha256 = get_version('swaytools') + + key = "version = " + line = findLine(key,derivation)[0] + derivation[line] = f' version = "{version}";\n' + + key = "sha256 = " + line = findLine(key,derivation)[0] + derivation[line] = f' sha256 = "{sha256}";\n' + + with open(nixpkgs + swaytoolsFolder + "default.nix", 'w') as arq: + arq.writelines(derivation) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bb1a6831bf68..cb780952fbe7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2551,6 +2551,8 @@ with pkgs; swayr = callPackage ../tools/wayland/swayr { }; + swaytools = callPackage ../tools/wayland/swaytools { }; + wayland-utils = callPackage ../tools/wayland/wayland-utils { }; wayland-proxy-virtwl = callPackage ../tools/wayland/wayland-proxy-virtwl { }; |
