From 49c270b990b6a8f09fad3d5fef931b10a86b83f3 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Fri, 29 Aug 2025 11:36:30 +0100 Subject: [PATCH 1/2] fix: replace oh-my-zsh with oh-my-posh oh-my-posh is a more moderns and faster solution. --- .gitignore | 1 + .ohmyposh.omp.json | 166 +++++++++++++++++++++++++++++++++++++ bindep.txt | 1 + devspaces/context/setup.sh | 1 + final/setup.sh | 24 +++--- tools/devspaces.sh | 1 + tools/ee.sh | 1 + tools/setup-image.sh | 12 ++- 8 files changed, 194 insertions(+), 13 deletions(-) create mode 100644 .ohmyposh.omp.json diff --git a/.gitignore b/.gitignore index 2110cd79..3c67b7e1 100644 --- a/.gitignore +++ b/.gitignore @@ -187,3 +187,4 @@ devspaces/context/setup-image.sh final/context/setup-image.sh final/setup-image.sh image.tar +final/.ohmyposh.omp.json diff --git a/.ohmyposh.omp.json b/.ohmyposh.omp.json new file mode 100644 index 00000000..f45549d8 --- /dev/null +++ b/.ohmyposh.omp.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "console_title_template": "{{.Folder}}{{if .Root}} :: root{{end}}", + "palette": { + "yellow": "#c6c43f", + "lightYellow": "#eae14a" + }, + "blocks": [ + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none", + "mapped_shell_names": { + "bash": "Bash", + "cmd": "Cmd", + "powershell": "Shell", + "pwsh": "Shell" + } + }, + "template": "@{{ .HostName }}", + "foreground": "darkGray", + "type": "shell", + "style": "plain" + }, + { + "properties": { + "cache_duration": "1h", + "mapped_shell_names": { + "bash": "Bash", + "cmd": "Cmd", + "powershell": "Shell", + "pwsh": "Shell" + } + }, + "template": "{{ if ne .OS \"darwin\" }} {{ .OS }}{{ end }}{{ if .WSL }}-wsl{{ end }}", + "foreground": "cyan", + "type": "shell", + "style": "plain" + }, + { + "properties": { + "cache_duration": "none", + "display_mode": "context", + "fetch_virtual_env": true, + "home_enabled": true, + "display_default": true, + "folder_name_fallback": true, + "default_venv_names": [] + }, + "template": " {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}({{ .Venv }}) {{ end }}{{ .Full }}{{ end }}", + "foreground": "yellow", + "powerline_symbol": "\ue0b0", + "type": "python", + "style": "plain" + }, + { + "properties": { + "branch_icon": "", + "branch_max_length": 25, + "cache_duration": "none", + "fetch_stash_count": true, + "fetch_status": true, + "fetch_upstream_icon": true, + "cherry_pick_icon": "\u2713 ", + "commit_icon": "\u25b7 ", + "merge_icon": "\u25f4 ", + "no_commits_icon": "[no commits]", + "rebase_icon": "\u2c62 ", + "tag_icon": "\u25b6 " + }, + "template": " {{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} § {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }} ", + "foreground": "#F3C267", + "type": "git", + "style": "plain", + "foreground_templates": [ + "{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}", + "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff5a5a{{ end }}", + "{{ if gt .Ahead 0 }}#B388FF{{ end }}", + "{{ if gt .Behind 0 }}#B388FF{{ end }}" + ] + } + ], + "newline": false + }, + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none" + }, + "template": " {{ .Code }} ({{ reason .Code }})", + "foreground": "#b8ff75", + "type": "status", + "style": "plain", + "foreground_templates": [ + "{{ if gt .Code 0 }}#E06C75{{ end }}" + ] + }, + { + "properties": { + "always_enabled": false, + "cache_duration": "none", + "style": "roundrock", + "threshold": 5000 + }, + "template": " {{ .FormattedMs }}{{ if gt .Ms 10000 }}\u0007{{ end }} ", + "foreground": "lightYellow", + "type": "executiontime", + "style": "plain", + "foreground_templates": [ + "{{ if gt .Code 0 }}#E06C75{{ end }}" + ] + } + ] + }, + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none", + "style": "full" + }, + "template": "{{ .Path }}", + "foreground": "#61AFEF", + "type": "path", + "style": "plain" + } + ], + "newline": false + }, + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none" + }, + "template": "!", + "foreground": "#E06C75", + "type": "root", + "style": "plain" + }, + { + "properties": { + "cache_duration": "none" + }, + "template": "❯", + "foreground": "#E06C75", + "type": "text", + "style": "plain" + } + ], + "newline": true + } + ], + "version": 3, + "final_space": true +} diff --git a/bindep.txt b/bindep.txt index 8b64e4b8..30040f54 100644 --- a/bindep.txt +++ b/bindep.txt @@ -1,3 +1,4 @@ python3-devel [platform:redhat] oniguruma-devel [test platform:rpm] libonig-dev [test platform:dpkg] +unzip [platform:redhat] diff --git a/devspaces/context/setup.sh b/devspaces/context/setup.sh index fac43821..a11eea4b 100755 --- a/devspaces/context/setup.sh +++ b/devspaces/context/setup.sh @@ -24,6 +24,7 @@ dnf install -y -q \ "python${PYV}-pyyaml" \ "python${PYV}-wheel" \ tar \ + unzip \ util-linux-user \ which \ zsh \ diff --git a/final/setup.sh b/final/setup.sh index c68fc783..fac10c7d 100755 --- a/final/setup.sh +++ b/final/setup.sh @@ -22,32 +22,34 @@ microdnf remove -y subscription-manager dnf-plugin-subscription-manager # gcc: for ansible-pylibssh, onigurumacffi/arm64 # ncurses: for ansible-navigator # oniguruma-devel: onigurumacffi/arm64 (does not have binary) +# unzip: oh-my-posh installer microdnf install -q -y \ -tar \ +dumb-init \ echo \ -podman \ fuse-overlayfs \ -openssh-clients \ -zsh \ -util-linux-user \ -which \ -git \ -nano \ -vim \ -dumb-init \ gcc \ +git \ git-core \ libssh-devel \ -python3-markupsafe \ +nano \ ncurses \ oniguruma-devel \ +openssh-clients \ +podman \ python3-bcrypt \ python3-cffi \ python3-devel \ +python3-markupsafe \ python3-pip \ python3-pyyaml \ python3-ruamel-yaml \ python3-wheel \ +tar \ +unzip \ +util-linux-user \ +vim \ +which \ +zsh \ --exclude container-selinux microdnf -q clean all diff --git a/tools/devspaces.sh b/tools/devspaces.sh index edc64f2f..5edd3598 100755 --- a/tools/devspaces.sh +++ b/tools/devspaces.sh @@ -18,6 +18,7 @@ fi rm -f devspaces/context/*.whl ln -f dist/*.whl devspaces/context ln -f tools/setup-image.sh devspaces/context +ln -f .ohmyposh.omp.json devspaces/context # we force use of linux/amd64 platform because source image supports only this # platform and without it, it will fail to cross-build when task runs on arm64. diff --git a/tools/ee.sh b/tools/ee.sh index 17409c72..c6bddae5 100755 --- a/tools/ee.sh +++ b/tools/ee.sh @@ -66,6 +66,7 @@ python -m build --outdir "$REPO_DIR/final/dist/" --wheel "$REPO_DIR" ansible-builder create -f execution-environment.yml --output-filename Containerfile -v3 $BUILD_CMD -f context/Containerfile context/ --tag "${TAG_BASE}" ln -f tools/setup-image.sh final/ +ln -f .ohmyposh.omp.json final/ $BUILD_CMD -f final/Containerfile final/ --tag "${IMAGE_NAME}" # We save local image in order to import it inside the container later for c-in-c testing diff --git a/tools/setup-image.sh b/tools/setup-image.sh index ee3565db..d1adf406 100755 --- a/tools/setup-image.sh +++ b/tools/setup-image.sh @@ -15,5 +15,13 @@ oc version --client=true # ubi9 image but not on fedora one. touch ~/.zshrc -# Install oh-my-zsh -sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended +# Install our oh-my-posh theme +mkdir -p ~/.poshthemes/ +cp -f /final/.ohmyposh.omp.json ~/.poshthemes/ansible.omp.json + +# Install oh-my-posh +curl -s https://ohmyposh.dev/install.sh | bash -s +cat >> ~/.zshrc <<'EOF' +export PATH=$PATH:$HOME/.local/bin +eval "$(oh-my-posh init zsh --config ~/.poshthemes/ansible.omp.json)" +EOF From 1173726185762c92f4e66e7102b787716426356f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 29 Aug 2025 11:13:44 +0000 Subject: [PATCH 2/2] chore: auto fixes from pre-commit.com hooks --- .ohmyposh.omp.json | 308 ++++++++++++++++++++++----------------------- 1 file changed, 152 insertions(+), 156 deletions(-) diff --git a/.ohmyposh.omp.json b/.ohmyposh.omp.json index f45549d8..9a17c78a 100644 --- a/.ohmyposh.omp.json +++ b/.ohmyposh.omp.json @@ -1,166 +1,162 @@ { - "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", - "console_title_template": "{{.Folder}}{{if .Root}} :: root{{end}}", - "palette": { - "yellow": "#c6c43f", - "lightYellow": "#eae14a" - }, - "blocks": [ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "console_title_template": "{{.Folder}}{{if .Root}} :: root{{end}}", + "palette": { + "yellow": "#c6c43f", + "lightYellow": "#eae14a" + }, + "blocks": [ + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none", + "mapped_shell_names": { + "bash": "Bash", + "cmd": "Cmd", + "powershell": "Shell", + "pwsh": "Shell" + } + }, + "template": "@{{ .HostName }}", + "foreground": "darkGray", + "type": "shell", + "style": "plain" + }, { - "type": "prompt", - "alignment": "left", - "segments": [ - { - "properties": { - "cache_duration": "none", - "mapped_shell_names": { - "bash": "Bash", - "cmd": "Cmd", - "powershell": "Shell", - "pwsh": "Shell" - } - }, - "template": "@{{ .HostName }}", - "foreground": "darkGray", - "type": "shell", - "style": "plain" - }, - { - "properties": { - "cache_duration": "1h", - "mapped_shell_names": { - "bash": "Bash", - "cmd": "Cmd", - "powershell": "Shell", - "pwsh": "Shell" - } - }, - "template": "{{ if ne .OS \"darwin\" }} {{ .OS }}{{ end }}{{ if .WSL }}-wsl{{ end }}", - "foreground": "cyan", - "type": "shell", - "style": "plain" - }, - { - "properties": { - "cache_duration": "none", - "display_mode": "context", - "fetch_virtual_env": true, - "home_enabled": true, - "display_default": true, - "folder_name_fallback": true, - "default_venv_names": [] - }, - "template": " {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}({{ .Venv }}) {{ end }}{{ .Full }}{{ end }}", - "foreground": "yellow", - "powerline_symbol": "\ue0b0", - "type": "python", - "style": "plain" - }, - { - "properties": { - "branch_icon": "", - "branch_max_length": 25, - "cache_duration": "none", - "fetch_stash_count": true, - "fetch_status": true, - "fetch_upstream_icon": true, - "cherry_pick_icon": "\u2713 ", - "commit_icon": "\u25b7 ", - "merge_icon": "\u25f4 ", - "no_commits_icon": "[no commits]", - "rebase_icon": "\u2c62 ", - "tag_icon": "\u25b6 " - }, - "template": " {{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} § {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }} ", - "foreground": "#F3C267", - "type": "git", - "style": "plain", - "foreground_templates": [ - "{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}", - "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff5a5a{{ end }}", - "{{ if gt .Ahead 0 }}#B388FF{{ end }}", - "{{ if gt .Behind 0 }}#B388FF{{ end }}" - ] - } - ], - "newline": false + "properties": { + "cache_duration": "1h", + "mapped_shell_names": { + "bash": "Bash", + "cmd": "Cmd", + "powershell": "Shell", + "pwsh": "Shell" + } + }, + "template": "{{ if ne .OS \"darwin\" }} {{ .OS }}{{ end }}{{ if .WSL }}-wsl{{ end }}", + "foreground": "cyan", + "type": "shell", + "style": "plain" }, { - "type": "prompt", - "alignment": "left", - "segments": [ - { - "properties": { - "cache_duration": "none" - }, - "template": " {{ .Code }} ({{ reason .Code }})", - "foreground": "#b8ff75", - "type": "status", - "style": "plain", - "foreground_templates": [ - "{{ if gt .Code 0 }}#E06C75{{ end }}" - ] - }, - { - "properties": { - "always_enabled": false, - "cache_duration": "none", - "style": "roundrock", - "threshold": 5000 - }, - "template": " {{ .FormattedMs }}{{ if gt .Ms 10000 }}\u0007{{ end }} ", - "foreground": "lightYellow", - "type": "executiontime", - "style": "plain", - "foreground_templates": [ - "{{ if gt .Code 0 }}#E06C75{{ end }}" - ] - } - ] + "properties": { + "cache_duration": "none", + "display_mode": "context", + "fetch_virtual_env": true, + "home_enabled": true, + "display_default": true, + "folder_name_fallback": true, + "default_venv_names": [] + }, + "template": " {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}({{ .Venv }}) {{ end }}{{ .Full }}{{ end }}", + "foreground": "yellow", + "powerline_symbol": "\ue0b0", + "type": "python", + "style": "plain" + }, + { + "properties": { + "branch_icon": "", + "branch_max_length": 25, + "cache_duration": "none", + "fetch_stash_count": true, + "fetch_status": true, + "fetch_upstream_icon": true, + "cherry_pick_icon": "\u2713 ", + "commit_icon": "\u25b7 ", + "merge_icon": "\u25f4 ", + "no_commits_icon": "[no commits]", + "rebase_icon": "\u2c62 ", + "tag_icon": "\u25b6 " + }, + "template": " {{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} § {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }} ", + "foreground": "#F3C267", + "type": "git", + "style": "plain", + "foreground_templates": [ + "{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}", + "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff5a5a{{ end }}", + "{{ if gt .Ahead 0 }}#B388FF{{ end }}", + "{{ if gt .Behind 0 }}#B388FF{{ end }}" + ] + } + ], + "newline": false + }, + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none" + }, + "template": " {{ .Code }} ({{ reason .Code }})", + "foreground": "#b8ff75", + "type": "status", + "style": "plain", + "foreground_templates": ["{{ if gt .Code 0 }}#E06C75{{ end }}"] }, { - "type": "prompt", - "alignment": "left", - "segments": [ - { - "properties": { - "cache_duration": "none", - "style": "full" - }, - "template": "{{ .Path }}", - "foreground": "#61AFEF", - "type": "path", - "style": "plain" - } - ], - "newline": false + "properties": { + "always_enabled": false, + "cache_duration": "none", + "style": "roundrock", + "threshold": 5000 + }, + "template": " {{ .FormattedMs }}{{ if gt .Ms 10000 }}\u0007{{ end }} ", + "foreground": "lightYellow", + "type": "executiontime", + "style": "plain", + "foreground_templates": ["{{ if gt .Code 0 }}#E06C75{{ end }}"] + } + ] + }, + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none", + "style": "full" + }, + "template": "{{ .Path }}", + "foreground": "#61AFEF", + "type": "path", + "style": "plain" + } + ], + "newline": false + }, + { + "type": "prompt", + "alignment": "left", + "segments": [ + { + "properties": { + "cache_duration": "none" + }, + "template": "!", + "foreground": "#E06C75", + "type": "root", + "style": "plain" }, { - "type": "prompt", - "alignment": "left", - "segments": [ - { - "properties": { - "cache_duration": "none" - }, - "template": "!", - "foreground": "#E06C75", - "type": "root", - "style": "plain" - }, - { - "properties": { - "cache_duration": "none" - }, - "template": "❯", - "foreground": "#E06C75", - "type": "text", - "style": "plain" - } - ], - "newline": true + "properties": { + "cache_duration": "none" + }, + "template": "❯", + "foreground": "#E06C75", + "type": "text", + "style": "plain" } - ], - "version": 3, - "final_space": true + ], + "newline": true + } + ], + "version": 3, + "final_space": true }