summaryrefslogtreecommitdiff
path: root/plugins/juju
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/juju')
-rw-r--r--plugins/juju/README.md2
-rw-r--r--plugins/juju/juju.plugin.zsh32
2 files changed, 33 insertions, 1 deletions
diff --git a/plugins/juju/README.md b/plugins/juju/README.md
index f0c65309c..6ee333f50 100644
--- a/plugins/juju/README.md
+++ b/plugins/juju/README.md
@@ -126,5 +126,7 @@ Naming convention:
- `jaddr <app_name> [unit_num]`: display app or unit IP address.
- `jreld <relation_name> <app_name> <unit_num>`: display app and unit relation data.
- `jclean`: destroy all controllers
+- `jcontroller`: display the controller your are connected to.
+- `jmodel`: display the model your are connected to.
- `wjst [interval_secs] [args_for_watch]`: watch juju status, with optional interval
(default: 5s); you may pass additional arguments to `watch`.
diff --git a/plugins/juju/juju.plugin.zsh b/plugins/juju/juju.plugin.zsh
index be8a2c7ae..0c60e35ce 100644
--- a/plugins/juju/juju.plugin.zsh
+++ b/plugins/juju/juju.plugin.zsh
@@ -163,10 +163,40 @@ jreld() {
juju run "relation-get -r $relid - $2" --unit $2/$3
}
+# Return Juju current controller
+jcontroller() {
+ local controller="$(awk '/current-controller/ {print $2}' ~/.local/share/juju/controllers.yaml)"
+ if [[ -z "$controller" ]]; then
+ return 1
+ fi
+
+ echo $controller
+ return 0
+}
+
+# Return Juju current model
+jmodel() {
+ local yqbin="$(whereis yq | awk '{print $2}')"
+
+ if [[ -z "$yqbin" ]]; then
+ echo "--"
+ return 1
+ fi
+
+ local model="$(yq e ".controllers.$(jcontroller).current-model" < ~/.local/share/juju/models.yaml | cut -d/ -f2)"
+
+ if [[ -z "$model" ]]; then
+ echo "--"
+ return 1
+ fi
+
+ echo $model
+ return 0
+}
+
# Watch juju status, with optional interval (default: 5 sec)
wjst() {
local interval="${1:-5}"
shift $(( $# > 0 ))
watch -n "$interval" --color juju status --relations --color "$@"
}
-