forked from mirrors/nixpkgs
Merge pull request #273562 (add aws-gate package)
This adds aws-gate, an AWS SSM Session manager client and while I'm not using the program myself, I reviewed the work and did some rudimentary testing (eg. whether the session-manager-plugin works). Additionally, it also adds the unix_ar Python package which was used for the GNU/Linux bootstrap of the aws-gate package but has been patched out during the review. We decided to keep the unix-ar package nonetheless since the package seems to be rather low-maintenance and the package author is willing to keep maintaining the package. I'm merging this right now because the package is low-impact, meet the packaging requirements and all builds pass (including the ones for unix_ar).
This commit is contained in:
commit
801d8be719
|
@ -18441,6 +18441,11 @@
|
|||
github = "NoneTirex";
|
||||
githubId = 26038207;
|
||||
};
|
||||
tirimia = {
|
||||
name = "Theodor-Alexandru Irimia";
|
||||
github = "tirimia";
|
||||
githubId = 11174371;
|
||||
};
|
||||
titanous = {
|
||||
email = "jonathan@titanous.com";
|
||||
github = "titanous";
|
||||
|
|
51
pkgs/by-name/aw/aws-gate/disable-bootstrap.patch
Normal file
51
pkgs/by-name/aw/aws-gate/disable-bootstrap.patch
Normal file
|
@ -0,0 +1,51 @@
|
|||
diff --git a/aws_gate/cli.py b/aws_gate/cli.py
|
||||
index ac37c2f..9743415 100644
|
||||
--- a/aws_gate/cli.py
|
||||
+++ b/aws_gate/cli.py
|
||||
@@ -7,7 +7,6 @@ from marshmallow import ValidationError
|
||||
from yaml.scanner import ScannerError
|
||||
|
||||
from aws_gate import __version__, __description__
|
||||
-from aws_gate.bootstrap import bootstrap
|
||||
from aws_gate.config import load_config_from_files
|
||||
from aws_gate.constants import (
|
||||
SUPPORTED_KEY_TYPES,
|
||||
@@ -59,10 +58,14 @@ def get_argument_parser(*args, **kwargs):
|
||||
|
||||
# 'bootstrap' subcommand
|
||||
bootstrap_parser = subparsers.add_parser(
|
||||
- "bootstrap", help="Download and install session-manager-plugin"
|
||||
+ "bootstrap",
|
||||
+ help="Download and install session-manager-plugin (disabled by nix)",
|
||||
)
|
||||
bootstrap_parser.add_argument(
|
||||
- "-f", "--force", action="store_true", help="Forces bootstrap operation"
|
||||
+ "-f",
|
||||
+ "--force",
|
||||
+ action="store_true",
|
||||
+ help="Forces bootstrap operation (disabled by nix)",
|
||||
)
|
||||
|
||||
# 'exec' subcommand
|
||||
@@ -268,7 +271,9 @@ def main(args=None, argument_parser=None):
|
||||
logger.debug('Using AWS profile "%s" in region "%s"', profile, region)
|
||||
|
||||
if args.subcommand == "bootstrap":
|
||||
- bootstrap(force=args.force)
|
||||
+ print(
|
||||
+ f"The SSM Plugin will not be downloaded as aws-gate was installed from nixpkgs and the plugin comes pre-bundled. The '--force' flag will not override this behavior."
|
||||
+ )
|
||||
elif args.subcommand == "exec":
|
||||
exec(
|
||||
config=config,
|
||||
diff --git a/requirements/requirements.txt b/requirements/requirements.txt
|
||||
index 50b203e..8c3496f 100644
|
||||
--- a/requirements/requirements.txt
|
||||
+++ b/requirements/requirements.txt
|
||||
@@ -3,5 +3,4 @@ cryptography==39.0.2
|
||||
marshmallow==3.19.0
|
||||
packaging==23.0
|
||||
PyYAML>=5.1,<6.1
|
||||
-requests==2.28.2
|
||||
unix-ar==0.2.1
|
||||
wrapt==1.15.0
|
55
pkgs/by-name/aw/aws-gate/package.nix
Normal file
55
pkgs/by-name/aw/aws-gate/package.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
, python3Packages
|
||||
, ssm-session-manager-plugin
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "aws-gate";
|
||||
version = "0.11.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xen0l";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-9w2jP4s1HXf1gYiXX05Dt2iXt0bR0U48yc8h9T5M+EQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./disable-bootstrap.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
rm aws_gate/bootstrap.py tests/unit/test_bootstrap.py
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3Packages.setuptools
|
||||
python3Packages.wheel
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ ssm-session-manager-plugin ] ++ builtins.attrValues {
|
||||
inherit (python3Packages) marshmallow boto3 pyyaml wrapt cryptography;
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --bash completions/bash/aws-gate
|
||||
installShellCompletion --zsh completions/zsh/_aws-gate
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
$out/bin/${pname} --version
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Better AWS SSM Session manager CLI client";
|
||||
homepage = "https://github.com/xen0l/aws-gate";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ tirimia ];
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
mainProgram = pname;
|
||||
};
|
||||
}
|
27
pkgs/development/python-modules/unix-ar/default.nix
Normal file
27
pkgs/development/python-modules/unix-ar/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "unix-ar";
|
||||
version = "0.2.1";
|
||||
format = "wheel";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit format version;
|
||||
pname = "unix_ar";
|
||||
hash = "sha256-Kstxi8Ewi/gOW52iYU2CQswv475M2LL9Rxm84Ymq/PE=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "AR file handling for Python (including .deb files)";
|
||||
homepage = "https://github.com/getninjas/unix_ar";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ tirimia ];
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
};
|
||||
}
|
|
@ -15519,6 +15519,8 @@ self: super: with self; {
|
|||
|
||||
universal-silabs-flasher = callPackage ../development/python-modules/universal-silabs-flasher { };
|
||||
|
||||
unix-ar = callPackage ../development/python-modules/unix-ar { };
|
||||
|
||||
unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
|
||||
|
||||
unrardll = callPackage ../development/python-modules/unrardll { };
|
||||
|
|
Loading…
Reference in a new issue