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>
This commit is contained in:
Thomas O'Donnell 2021-02-16 20:05:43 +01:00 committed by GitHub
parent 856610d53b
commit e8f463bb57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 8 deletions

View File

@ -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

View File

@ -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![],
}
}
}

View File

@ -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")