summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas O'Donnell <andytom@users.noreply.github.com>2021-02-16 20:05:43 +0100
committerGitHub <noreply@github.com>2021-02-16 20:05:43 +0100
commite8f463bb57f2f1d428894f96cab05d4285626249 (patch)
tree7436e3f60ef63bf9636eb74ed565bc54ae1f08b3
parent856610d53b140f5ab799341ad97b156883b21d65 (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.md17
-rw-r--r--src/configs/docker_context.rs6
-rw-r--r--src/modules/docker_context.rs5
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")