tritonshell/template/tritonshell.nix

98 lines
2.8 KiB
Nix
Raw Normal View History

{ extraDevshellPkgs, devshell, pkgs, self, system, ... }:
2022-02-01 00:59:09 +00:00
pkgs.devshell.mkShell {
# devshell docs: https://numtide.github.io/devshell/modules_schema.html
name = "tritonshell";
devshell.interactive = {
PS1_util = pkgs.lib.noDepEntry ''
if [[ -n "''${PRJ_ROOT:-}" ]]; then
# Print the path relative to $PRJ_ROOT
rel_root() {
local path
path=$(${pkgs.coreutils}/bin/realpath --relative-to "$PRJ_ROOT" "$PWD")
if [[ $path != . ]]; then
echo " $path "
fi
}
else
# If PRJ_ROOT is unset, print only the current directory name
rel_root() {
echo " \W "
}
fi
'';
PS1.text = ''
2022-02-01 03:04:42 +00:00
PS1='\[\033[38;5;202m\][$SDC_ACCOUNT@$TRITON_DC]$(rel_root)\$ \[\033[0m\]'
2022-02-01 00:59:09 +00:00
'';
};
commands = [
{
package = pkgs.devshell.cli;
help = "Per project developer environments";
}
{
package = pkgs.nodePackages.triton;
2022-02-01 00:59:09 +00:00
category = "triton & manta tools";
name = "triton";
help = "Triton DC CLI (https://docs.greenbaum.cloud/en/devops/triton-cli.html)";
2022-02-01 00:59:09 +00:00
}
{
package = pkgs.nodePackages.manta;
2022-02-01 00:59:09 +00:00
category = "triton & manta tools";
name = "manta";
help = "Manta CLIs (https://apidocs.joyent.com/manta/index.html#cli)";
}
{
package = self.packages.${system}.triton-utils;
category = "triton & manta tools";
name = "ttp";
help = "Quickly switch triton profiles (shell function)";
}
2022-02-01 00:59:09 +00:00
];
devshell.packages = with pkgs; [
bash-completion
2022-02-01 00:59:09 +00:00
# use docker-compose version 1.26.2 for best triton API compatibility
# see overlay.nix
docker-compose_1
# shell scripts and utilities to set and unset triton environment variables
2022-02-01 00:59:09 +00:00
self.packages.${system}.triton-utils
self.packages.${system}.triton-docker-env
# useful for working with JSON data
jq
bunyan-rs
2022-02-01 00:59:09 +00:00
] ++ extraDevshellPkgs;
env = [
# workaround for TLS certs bug in docker-compose, CERTIFICATE_VERIFY_FAILED
# see: https://github.com/joyent/triton-docker-cli/issues/17
{
name = "CURL_CA_BUNDLE";
value = "${self.packages.${system}.triton-utils}/share/certs/cacert-2022-04-26.pem";
2022-02-01 00:59:09 +00:00
}
{
name = "CONSUL_HTTP_ADDR";
2022-08-10 10:03:55 +00:00
value = "http://consul.service.cgn-1.consul:8500";
2022-02-01 00:59:09 +00:00
}
{
name = "NOMAD_ADDR";
value = "https://nomad.service.consul:4646";
}
{
name = "VAULT_ADDR";
2022-02-28 15:19:35 +00:00
value = "https://vault.service.consul:8200";
2022-02-01 00:59:09 +00:00
}
];
bash = {
extra = ''
source ${self.packages.${system}.triton-docker-env}/bin/triton-docker-env.sh
2022-02-01 00:59:09 +00:00
source ${self.packages.${system}.triton-utils}/bin/ttp.sh
if [ "$(uname)" == "Darwin" ]; then
source $DEVSHELL_DIR/share/bash-completion/bash_completion
fi
'';
};
}