diff --git a/pkgs/development/python-modules/nmcli/default.nix b/pkgs/development/python-modules/nmcli/default.nix new file mode 100644 index 000000000000..36cb2cf99b4c --- /dev/null +++ b/pkgs/development/python-modules/nmcli/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + replaceVars, + setuptools, + wheel, + networkmanager, +}: + +buildPythonPackage rec { + pname = "nmcli"; + version = "1.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ushiboy"; + repo = "nmcli"; + tag = "v${version}"; + hash = "sha256-1gVj4WfTx1NcoyWA9OK5EyGze9hmrXV0Mq50C1S3bfM="; + }; + + build-system = [ + setuptools + wheel + ]; + + patches = [ + (replaceVars ./nmcli-path.patch { + nmcli = lib.getExe' networkmanager "nmcli"; + }) + ]; + + meta = { + description = "Python library for interacting with NetworkManager CLI"; + homepage = "https://github.com/ushiboy/nmcli"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ktechmidas ]; + inherit (networkmanager.meta) platforms; + changelog = "https://github.com/ushiboy/nmcli/releases/tag/v${version}"; + }; +} diff --git a/pkgs/development/python-modules/nmcli/nmcli-path.patch b/pkgs/development/python-modules/nmcli/nmcli-path.patch new file mode 100644 index 000000000000..13d39a649c8c --- /dev/null +++ b/pkgs/development/python-modules/nmcli/nmcli-path.patch @@ -0,0 +1,11 @@ +--- a/nmcli/_system.py ++++ b/nmcli/_system.py +@@ -43,7 +43,7 @@ class System: + def nmcli(self, parameters: CommandParameter) -> str: + if isinstance(parameters, str): + parameters = [parameters] +- c = ['sudo', 'nmcli'] if self._use_sudo else ['nmcli'] ++ c = ['sudo', '@nmcli@'] if self._use_sudo else ['@nmcli@'] + commands = c + parameters + try: + env = dict(os.environ, **{'LANG': self._lang}) \ No newline at end of file diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f4128c2b6fc7..05eec95a75b4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10461,6 +10461,8 @@ self: super: with self; { nmapthon2 = callPackage ../development/python-modules/nmapthon2 { }; + nmcli = callPackage ../development/python-modules/nmcli { }; + nnpdf = toPythonModule (pkgs.nnpdf.override { python3 = python; }); noaa-coops = callPackage ../development/python-modules/noaa-coops { };