mirror of
https://github.com/Llewellynvdm/starship.git
synced 2024-11-08 14:21:05 +00:00
feat(kubernetes): context aliases (#1015)
* Allow kubernetes module to use aliases for contexts * documentation for kubernetes context aliasing * Apply suggestions from code review: consistent ordering of options in documentation Co-Authored-By: Thomas O'Donnell <andytom@users.noreply.github.com> Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
This commit is contained in:
parent
dba3467dee
commit
e38be5073f
@ -836,11 +836,12 @@ To enable it, set `disabled` to `false` in your configuration file.
|
|||||||
|
|
||||||
### Options
|
### Options
|
||||||
|
|
||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
| ---------- | ------------- | --------------------------------------------------- |
|
| ---------------- | ------------- | --------------------------------------------------- |
|
||||||
| `symbol` | `"☸ "` | The symbol used before displaying the Cluster info. |
|
| `symbol` | `"☸ "` | The symbol used before displaying the Cluster info. |
|
||||||
| `style` | `"bold blue"` | The style for the module. |
|
| `context_aliases` | | Table of context aliases to display |
|
||||||
| `disabled` | `true` | Disables the `kubernetes` module |
|
| `style` | `"bold blue"` | The style for the module. |
|
||||||
|
| `disabled` | `true` | Disables the `kubernetes` module |
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
@ -851,6 +852,8 @@ To enable it, set `disabled` to `false` in your configuration file.
|
|||||||
symbol = "⛵ "
|
symbol = "⛵ "
|
||||||
style = "dimmed green"
|
style = "dimmed green"
|
||||||
disabled = false
|
disabled = false
|
||||||
|
[kubernetes.context_aliases]
|
||||||
|
"dev.local.cluster.k8s" = "dev"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Line Break
|
## Line Break
|
||||||
|
@ -2,6 +2,7 @@ use crate::config::{ModuleConfig, RootModuleConfig, SegmentConfig};
|
|||||||
|
|
||||||
use ansi_term::{Color, Style};
|
use ansi_term::{Color, Style};
|
||||||
use starship_module_config_derive::ModuleConfig;
|
use starship_module_config_derive::ModuleConfig;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
#[derive(Clone, ModuleConfig)]
|
#[derive(Clone, ModuleConfig)]
|
||||||
pub struct KubernetesConfig<'a> {
|
pub struct KubernetesConfig<'a> {
|
||||||
@ -10,6 +11,7 @@ pub struct KubernetesConfig<'a> {
|
|||||||
pub namespace: SegmentConfig<'a>,
|
pub namespace: SegmentConfig<'a>,
|
||||||
pub style: Style,
|
pub style: Style,
|
||||||
pub disabled: bool,
|
pub disabled: bool,
|
||||||
|
pub context_aliases: HashMap<String, &'a str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> RootModuleConfig<'a> for KubernetesConfig<'a> {
|
impl<'a> RootModuleConfig<'a> for KubernetesConfig<'a> {
|
||||||
@ -20,6 +22,7 @@ impl<'a> RootModuleConfig<'a> for KubernetesConfig<'a> {
|
|||||||
namespace: SegmentConfig::default(),
|
namespace: SegmentConfig::default(),
|
||||||
style: Color::Cyan.bold(),
|
style: Color::Cyan.bold(),
|
||||||
disabled: true,
|
disabled: true,
|
||||||
|
context_aliases: HashMap::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,13 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
module.get_prefix().set_value(KUBERNETES_PREFIX);
|
module.get_prefix().set_value(KUBERNETES_PREFIX);
|
||||||
|
|
||||||
module.create_segment("symbol", &config.symbol);
|
module.create_segment("symbol", &config.symbol);
|
||||||
module.create_segment("context", &config.context.with_value(&kube_ctx));
|
|
||||||
|
let displayed_context = match config.context_aliases.get(&kube_ctx) {
|
||||||
|
None => &kube_ctx,
|
||||||
|
Some(&alias) => alias,
|
||||||
|
};
|
||||||
|
|
||||||
|
module.create_segment("context", &config.context.with_value(&displayed_context));
|
||||||
if kube_ns != "" {
|
if kube_ns != "" {
|
||||||
module.create_segment(
|
module.create_segment(
|
||||||
"namespace",
|
"namespace",
|
||||||
|
Loading…
Reference in New Issue
Block a user