From c74f2a1be980c60d937046364db0c9497187457a Mon Sep 17 00:00:00 2001 From: Tjark <16938041+tjarbo@users.noreply.github.com> Date: Mon, 4 Sep 2023 19:43:06 +0200 Subject: [PATCH] feat(podman): add plugin (#11695) Closes #7489 Closes #9721 --- plugins/podman/README.md | 47 ++++++++++++++++++++++++++++++++ plugins/podman/podman.plugin.zsh | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 plugins/podman/README.md create mode 100644 plugins/podman/podman.plugin.zsh 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'