summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTjark <16938041+tjarbo@users.noreply.github.com>2023-09-04 19:43:06 +0200
committerGitHub <noreply@github.com>2023-09-04 19:43:06 +0200
commitc74f2a1be980c60d937046364db0c9497187457a (patch)
treec4c4fdaa2d005e3a35c61c99ed1a75b1240959ee
parent30f0d591881713c4efd1482511943abca5103927 (diff)
downloadzsh-c74f2a1be980c60d937046364db0c9497187457a.tar.gz
zsh-c74f2a1be980c60d937046364db0c9497187457a.tar.bz2
zsh-c74f2a1be980c60d937046364db0c9497187457a.zip
feat(podman): add plugin (#11695)
Closes #7489 Closes #9721
-rw-r--r--plugins/podman/README.md47
-rw-r--r--plugins/podman/podman.plugin.zsh47
2 files changed, 94 insertions, 0 deletions
diff --git a/plugins/podman/README.md b/plugins/podman/README.md
new file mode 100644
index 000000000..99daa28cd
--- /dev/null
+++ b/plugins/podman/README.md
@@ -0,0 +1,47 @@
+# Podman plugin
+
+This plugin adds auto-completion and aliases for [podman](https://podman.io/).
+
+To use it add `podman` to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... podman)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+| :------ | :-------------------------------------------- | :--------------------------------------------------------------------------------------- |
+| pbl | `podman build` | Build an image from a Dockerfile |
+| pcin | `podman container inspect` | Display detailed information on one or more containers |
+| pcls | `podman container ls` | List all the running podman containers |
+| pclsa | `podman container ls --all` | List all running and stopped containers |
+| pib | `podman image build` | Build an image from a Dockerfile (same as podman build) |
+| pii | `podman image inspect` | Display detailed information on one or more images |
+| pils | `podman image ls` | List podman images |
+| pipu | `podman image push` | Push an image or repository to a remote registry |
+| pirm | `podman image rm` | Remove one or more images |
+| pit | `podman image tag` | Add a name and tag to a particular image |
+| plo | `podman container logs` | Fetch the logs of a podman container |
+| pnc | `podman network create` | Create a new network |
+| pncn | `podman network connect` | Connect a container to a network |
+| pndcn | `podman network disconnect` | Disconnect a container from a network |
+| pni | `podman network inspect` | Return information about one or more networks |
+| pnls | `podman network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts |
+| pnrm | `podman network rm` | Remove one or more networks |
+| ppo | `podman container port` | List port mappings or a specific mapping for the container |
+| ppu | `podman pull` | Pull an image or a repository from a registry |
+| pr | `podman container run` | Create a new container and start it using the specified command |
+| prit | `podman container run --interactive --tty` | Create a new container and start it in an interactive shell |
+| prm | `podman container rm` | Remove the specified container(s) |
+| prm! | `podman container rm --force` | Force the removal of a running container (uses SIGKILL) |
+| pst | `podman container start` | Start one or more stopped containers |
+| prs | `podman container restart` | Restart one or more containers |
+| psta | `podman stop $(podman ps -q)` | Stop all running containers |
+| pstp | `podman container stop` | Stop one or more running containers |
+| ptop | `podman top` | Display the running processes of a container |
+| pvi | `podman volume inspect` | Display detailed information about one or more volumes |
+| pvls | `podman volume ls` | List all the volumes known to podman |
+| pvprune | `podman volume prune` | Cleanup dangling volumes |
+| pxc | `podman container exec` | Run a new command in a running container |
+| pxcit | `podman container exec --interactive --tty` | Run a new command in a running container in an interactive shell |
diff --git a/plugins/podman/podman.plugin.zsh b/plugins/podman/podman.plugin.zsh
new file mode 100644
index 000000000..97cf92b2a
--- /dev/null
+++ b/plugins/podman/podman.plugin.zsh
@@ -0,0 +1,47 @@
+if (( ! $+commands[podman] )); then
+ return
+fi
+
+# If the completion file doesn't exist yet, we need to autoload it and
+# bind it to `podman`. Otherwise, compinit will have already done that.
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_podman" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _podman
+ _comps[podman]=_podman
+fi
+
+podman completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_podman" &|
+
+alias pbl='podman build'
+alias pcin='podman container inspect'
+alias pcls='podman container ls'
+alias pclsa='podman container ls --all'
+alias pib='podman image build'
+alias pii='podman image inspect'
+alias pils='podman image ls'
+alias pipu='podman image push'
+alias pirm='podman image rm'
+alias pit='podman image tag'
+alias plo='podman container logs'
+alias pnc='podman network create'
+alias pncn='podman network connect'
+alias pndcn='podman network disconnect'
+alias pni='podman network inspect'
+alias pnls='podman network ls'
+alias pnrm='podman network rm'
+alias ppo='podman container port'
+alias ppu='podman pull'
+alias pr='podman container run'
+alias prit='podman container run --interactive --tty'
+alias prm='podman container rm'
+alias 'prm!'='podman container rm --force'
+alias pst='podman container start'
+alias prs='podman container restart'
+alias psta='podman stop $(podman ps --quiet)'
+alias pstp='podman container stop'
+alias ptop='podman top'
+alias pvi='podman volume inspect'
+alias pvls='podman volume ls'
+alias pvprune='podman volume prune'
+alias pxc='podman container exec'
+alias pxcit='podman container exec --interactive --tty'