Compare commits

...

4 Commits

5 changed files with 119 additions and 37 deletions

View File

@ -1,12 +0,0 @@
#!/bin/bash
# Get list of image IDs with <none> tag (dangling images)
dangling_images=$(podman images -f "dangling=true" -q)
if [ -z "$dangling_images" ]; then
echo "✅ No dangling images to remove."
else
echo "⚠️ Removing dangling images..."
echo "$dangling_images" | xargs podman rmi -f
echo "🧹 Done!"
fi

9
.bin/gitops Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
ssh -F /dev/null \
-o HostName=10.88.0.1 \
-o Port=22 \
-o User=infilytics \
-o IdentityFile=~/.ssh/id_ed25519 \
-o ProxyCommand=none \
gitops -- "$@"

24
.lazy.lua Normal file
View File

@ -0,0 +1,24 @@
return {
"folke/snacks.nvim",
opts = {
-- show hidden files in snacks.explorer
picker = {
sources = {
explorer = {
-- show hidden files like .env
hidden = true,
-- show files ignored by git like node_modules
ignored = false,
exclude = { ".git" },
},
files = {
-- show hidden files like .env
hidden = true,
-- show files ignored by git like node_modules
ignored = false,
exclude = { ".npm", ".git" },
},
},
},
},
}

91
.vscode/tasks.json vendored
View File

@ -2,70 +2,121 @@
"version": "2.0.0",
"tasks": [
{
"label": "Build workspace image",
"label": "GitOps(Build): base image",
"type": "shell",
"command": "${workspaceFolder}/build-workspace.sh",
"command": ".bin/gitops build base",
"group": "build",
"problemMatcher": [],
"detail": "build base image using buildah"
},
{
"label": "GitOps(Build): workspace image",
"type": "shell",
"command": ".bin/gitops build workspace",
"group": "build",
"problemMatcher": [],
"detail": "build podman image using buildah"
},
{
"label": "Clean dangling images",
"label": "GitOps: Clean dangling images",
"type": "shell",
"command": "${workspaceFolder}/.bin/clean_dangling_images.sh",
"command": ".bin/gitops clean",
"problemMatcher": [],
"detail": "Clean podman images"
},
{
"label": "Tag image",
"label": "Gitops(Update): build-base.sh",
"type": "shell",
"command": "podman tag localhost/analytics-backend-workspace:latest localhost:5100/analytics-backend-workspace:latest",
"command": ".bin/gitops update base",
"group": "build",
"problemMatcher": [],
"detail": "Tag podman image to localhost 5100"
"detail": "Copy build-base.sh to /home/infilytics/.local/bin/"
},
{
"label": "Push image",
"label": "GitOps(Update): build-workspace.sh",
"type": "shell",
"command": "podman push --tls-verify=false localhost:5100/analytics-backend-workspace:latest",
"command": ".bin/gitops update workspace",
"group": "build",
"problemMatcher": [],
"detail": "Push podman image to localhost 5100"
"detail": "Copy build-workspace.sh to /home/infilytics/.local/bin/"
},
{
"label": "Copy ssh_router.sh",
"label": "GitOps(Update): ssh_router.sh",
"type": "shell",
"command": "sudo cp ssh_router.sh /home/infilytics/ && sudo chown -R infilytics:infilytics /home/infilytics/ssh_router.sh",
"command": ".bin/gitops update ssh_router",
"group": "build",
"problemMatcher": [],
"detail": "Copy ssh_router.sh to /home/infilytics"
"detail": "Copy ssh_router.sh to /home/infilytics/.local/bin/"
},
{
"label": "Copy access.yml",
"label": "GitOps(Update): access.yml",
"type": "shell",
"command": "sudo cp access.yml /home/infilytics/ && sudo chown -R infilytics:infilytics /home/infilytics/access.yml",
"command": ".bin/gitops update access",
"group": "build",
"problemMatcher": [],
"detail": "Copy access.yml to /home/infilytics"
"detail": "Copy access.yml to /home/infilytics/"
},
{
"label": "GitOps(Update): gitops_router.sh",
"type": "shell",
"command": ".bin/gitops update gitops_router",
"group": "build",
"problemMatcher": [],
"detail": "Copy gitops_router.sh to /home/infilytics/.local/bin"
},
{
"label": "GitOps(Update): home.tar.gz",
"type": "shell",
"command": ".bin/gitops update home_tar",
"group": "build",
"problemMatcher": [],
"detail": "Copy home.tar.gz to /home/infilytics/"
},
{
"label": "Create home tarball",
"type": "shell",
"command": "${workspaceFolder}/.bin/create-home-tarball.sh",
"group": "build",
"problemMatcher": [],
"detail": "create home.tar.gz from .config .local .ssh start.sh"
},
{
"label": "Start a tmux test session",
"label": "Test: start tmux session",
"type": "shell",
"group": "test",
"command": "${workspaceFolder}/.bin/test-tmux.sh",
"group": "test",
"problemMatcher": [],
"detail": "run tmux with project room as home"
},
{
"label": "Delete .gitignore files",
"label": "GitOps: Show image status",
"type": "shell",
"command": ".bin/gitops status",
"problemMatcher": [],
"detail": "run podman images on remote"
},
{
"label": "GitOps: Remove workspace container",
"type": "shell",
"command": ".bin/gitops remove ${input:container} -f",
"problemMatcher": [],
"detail": "run podman rm $args on remote"
},
{
"label": "Cleanup worktree",
"type": "shell",
"command": "git clean -Xfd",
"problemMatcher": [],
"detail": "delete all untracked files listed in .gitignore"
}
],
"inputs": []
"inputs": [
{
"id": "container",
"type": "pickString",
"description": "Pick a container",
"options": ["pallav", "palak", "param", "darshan"],
"default": "pallav"
}
]
}

View File

@ -23,7 +23,7 @@ if [[ -z "${SSH_ORIGINAL_COMMAND:-}" ]]; then
exit 1
fi
geurl() {
geturl() {
echo "$PROTOCOL://$HOST/$REPO/$1/branch/$BRANCH/$2"
}
@ -42,6 +42,19 @@ function update() {
chmod "$3" "$output_path"
}
clean_images() {
# Get list of image IDs with <none> tag (dangling images)
dangling_images=$(podman images -f "dangling=true" -q)
if [ -z "$dangling_images" ]; then
echo "✅ No dangling images to remove."
else
echo "⚠️ Removing dangling images..."
echo "$dangling_images" | xargs podman rmi
echo "🧹 Done!"
fi
}
# Strip arguments and parse command
read -r command args <<<"$SSH_ORIGINAL_COMMAND"
@ -77,9 +90,6 @@ update)
gitops_router)
update gitops_router.sh .local/bin 500
;;
clean_dangling_images)
update .bin/clean_dangling_images.sh .local/bin 500
;;
home_tar)
update home.tar.gz . 500 media
;;
@ -89,7 +99,7 @@ update)
esac
;;
clean)
"$HOME"/.local/bin/clean_dangling_images.sh
clean_images
;;
status)
podman images