diff options
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/programs/bash-my-aws.nix | 25 | ||||
-rw-r--r-- | pkgs/tools/admin/bash-my-aws/default.nix | 71 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
4 files changed, 99 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index fb5331f11abd6..878b77969af17 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -98,6 +98,7 @@ ./programs/autojump.nix ./programs/bandwhich.nix ./programs/bash/bash.nix + ./programs/bash-my-aws.nix ./programs/bcc.nix ./programs/browserpass.nix ./programs/captive-browser.nix diff --git a/nixos/modules/programs/bash-my-aws.nix b/nixos/modules/programs/bash-my-aws.nix new file mode 100644 index 0000000000000..15e429a754976 --- /dev/null +++ b/nixos/modules/programs/bash-my-aws.nix @@ -0,0 +1,25 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + prg = config.programs; + cfg = prg.bash-my-aws; + + initScript = '' + eval $(${pkgs.bash-my-aws}/bin/bma-init) + ''; +in + { + options = { + programs.bash-my-aws = { + enable = mkEnableOption "bash-my-aws"; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ bash-my-aws ]; + + programs.bash.interactiveShellInit = initScript; + }; + } diff --git a/pkgs/tools/admin/bash-my-aws/default.nix b/pkgs/tools/admin/bash-my-aws/default.nix new file mode 100644 index 0000000000000..8c0dd3067439e --- /dev/null +++ b/pkgs/tools/admin/bash-my-aws/default.nix @@ -0,0 +1,71 @@ +{ stdenv +, awscli +, jq +, fetchgit +, installShellFiles +, bashInteractive +}: + +stdenv.mkDerivation rec { + pname = "bash-my-aws"; + version = "20200111"; + + src = fetchgit { + url = "https://github.com/bash-my-aws/bash-my-aws"; + rev = "5a97ce2c22affca1299022a5afa109d7b62242ba"; + sha256 = "459bda8b244af059d96c7c8b916cf956b01cb2732d1c2888a3ae06a4d660bea6"; + }; + + dontConfigure = true; + dontBuild = true; + + propagatedBuildInputs = [ + awscli + jq + bashInteractive + ]; + nativeBuildInputs = [ installShellFiles ]; + + checkPhase = '' + pushd test + ./shared-spec.sh + ./stack-spec.sh + popd + ''; + installPhase='' + mkdir -p $out + cp -r . $out + ''; + postFixup = '' + pushd $out + substituteInPlace scripts/build \ + --replace '~/.bash-my-aws' $out + substituteInPlace scripts/build-completions \ + --replace "{HOME}" $out \ + --replace '~/.bash-my-aws' $out + ./scripts/build + ./scripts/build-completions + substituteInPlace bash_completion.sh \ + --replace "{HOME}" $out \ + --replace .bash-my-aws "" + substituteInPlace bin/bma \ + --replace '~/.bash-my-aws' $out + installShellCompletion --bash --name bash-my-aws.bash bash_completion.sh + chmod +x $out/lib/* + patchShebangs --host $out/lib + installShellCompletion --bash --name bash-my-aws.bash bash_completion.sh + cat > $out/bin/bma-init <<EOF + echo source $out/aliases + echo source $out/bash_completion.sh + EOF + chmod +x $out/bin/bma-init + popd + ''; + + meta = with stdenv.lib; { + homepage = https://bash-my-aws.org; + description = "CLI commands for AWS"; + license = licenses.mit; + maintainers = with maintainers; [ tomberek ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 23a5e50f88315..e351a5f906427 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -782,6 +782,8 @@ in automirror = callPackage ../tools/misc/automirror { }; + bash-my-aws = callPackage ../tools/admin/bash-my-aws { }; + bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { }; bitwarden = callPackage ../tools/security/bitwarden { }; |