diff options
author | Thomas O'Donnell <andytom@users.noreply.github.com> | 2021-02-16 20:05:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-16 20:05:43 +0100 |
commit | e8f463bb57f2f1d428894f96cab05d4285626249 (patch) | |
tree | 7436e3f60ef63bf9636eb74ed565bc54ae1f08b3 | |
parent | 856610d53b140f5ab799341ad97b156883b21d65 (diff) |
feat(docker_context): Configure when module is shown (#2315)
* feat(docker_context): Configure when module is shown
This makes it possible to configure when the docker_context module is
shown based on the contents of a directory. This should make it possible
to be a lot more granular when configuring the module.
* Update docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
-rw-r--r-- | docs/config/README.md | 17 | ||||
-rw-r--r-- | src/configs/docker_context.rs | 6 | ||||
-rw-r--r-- | src/modules/docker_context.rs | 5 |
3 files changed, 20 insertions, 8 deletions
diff --git a/docs/config/README.md b/docs/config/README.md index 67e0d6a4c..20b43cc71 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -726,13 +726,16 @@ The `docker_context` module shows the currently active ### Options -| Option | Default | Description | -| ----------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol$context]($style) "` | The format for the module. | -| `symbol` | `"🐳 "` | The symbol used before displaying the Docker context. | -| `style` | `"blue bold"` | The style for the module. | -| `only_with_files` | `true` | Only show when there's a `docker-compose.yml`, `docker-compose.yaml`, or `Dockerfile` in the current directory. | -| `disabled` | `false` | Disables the `docker_context` module. | +| Option | Default | Description | +| ------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `format` | `"via [$symbol$context]($style) "` | The format for the module. | +| `symbol` | `"🐳 "` | The symbol used before displaying the Docker context. | +| `only_with_files` | `true` | Only show when there's a match | +| `detect_extensions` | `[]` | Which extensions should trigger this module (needs `only_with_files` to be true). | +| `detect_files` | `["docker-compose.yml", "docker-compose.yaml", "Dockerfile"]` | Which filenames should trigger this module (needs `only_with_files` to be true). | +| `detect_folders` | `[]` | Which folders should trigger this module (needs `only_with_files` to be true). | +| `style` | `"blue bold"` | The style for the module. | +| `disabled` | `false` | Disables the `docker_context` module. | ### Variables diff --git a/src/configs/docker_context.rs b/src/configs/docker_context.rs index 9aa5fba8c..ec732b2b7 100644 --- a/src/configs/docker_context.rs +++ b/src/configs/docker_context.rs @@ -9,6 +9,9 @@ pub struct DockerContextConfig<'a> { pub format: &'a str, pub only_with_files: bool, pub disabled: bool, + pub detect_extensions: Vec<&'a str>, + pub detect_files: Vec<&'a str>, + pub detect_folders: Vec<&'a str>, } impl<'a> RootModuleConfig<'a> for DockerContextConfig<'a> { @@ -19,6 +22,9 @@ impl<'a> RootModuleConfig<'a> for DockerContextConfig<'a> { format: "via [$symbol$context]($style) ", only_with_files: true, disabled: false, + detect_extensions: vec![], + detect_files: vec!["docker-compose.yml", "docker-compose.yaml", "Dockerfile"], + detect_folders: vec![], } } } diff --git a/src/modules/docker_context.rs b/src/modules/docker_context.rs index 23840888b..7b301d8af 100644 --- a/src/modules/docker_context.rs +++ b/src/modules/docker_context.rs @@ -20,11 +20,14 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { if config.only_with_files && !context .try_begin_scan()? - .set_files(&["docker-compose.yml", "docker-compose.yaml", "Dockerfile"]) + .set_files(&config.detect_files) + .set_extensions(&config.detect_extensions) + .set_folders(&config.detect_folders) .is_match() { return None; } + let docker_config = PathBuf::from( &context .get_env_os("DOCKER_CONFIG") |