nixos/modules/programs/zsh/abbrs.nix
Nickolaj Jepsen 1010e8150f wip: zsh
2026-01-11 23:00:26 +01:00

104 lines
1.8 KiB
Nix

{lib, ...}: let
kube_verbs = [
{
s = "g";
v = "get";
}
{
s = "d";
v = "describe";
}
{
s = "rm";
v = "delete";
}
{
s = "e";
v = "edit";
}
];
kube_resources = [
{
s = "p";
r = "pods";
}
{
s = "d";
r = "deployments";
}
{
s = "s";
r = "services";
}
{
s = "i";
r = "ingresses";
}
{
s = "c";
r = "configmaps";
}
{
s = "ds";
r = "daemonsets";
}
{
s = "ss";
r = "statefulsets";
}
{
s = "n";
r = "namespace";
}
{
s = "ns";
r = "namespace";
}
];
# Generate dynamic k8s abbreviations
kube_abbrs = lib.listToAttrs (
lib.concatMap (verb:
[
{
name = "k${verb.s}";
value = "kubectl ${verb.v}";
}
]
++ (map (res: {
name = "k${verb.s}${res.s}";
value = "kubectl ${verb.v} ${res.r}";
})
kube_resources))
kube_verbs
);
static_kube_abbrs = {
k = "kubectl";
kl = "kubectl logs -f";
kgl = "kubectl logs -f";
kaf = "kubectl apply -f";
kr = "kubectl rollout";
krs = "kubectl rollout status";
krr = "kubectl rollout restart";
kt = "kubectl top";
ktp = "kubectl top pods";
ktn = "kubectl top nodes";
kpf = "kubectl port-forward";
kfp = "kubectl port-forward";
ksns = "kubectl config set-context --current --namespace";
ksc = "kubectl config set-context";
};
general_abbrs = {
# General
gs = "git status";
gc = "git commit";
gp = "git push";
gl = "git pull";
gco = "git checkout";
gd = "git diff";
ll = "ls -la";
};
in
general_abbrs // static_kube_abbrs // kube_abbrs