configs-all 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +3 -0
- package/CLAUDE.md +94 -0
- package/README.md +424 -0
- package/TERMINAL_SHORTCUTS.md +96 -0
- package/WINDOWS_COMPATIBILITY.md +85 -0
- package/WINDOWS_MCP_SETUP.md +133 -0
- package/apps/RectangleConfig.plist +0 -0
- package/apps/Synergy +84 -0
- package/apps/iStat Menus Settings.ismp7 +0 -0
- package/claude/CLAUDE.md +228 -0
- package/claude/commands/changelog.md +36 -0
- package/claude/commands/commit.md +29 -0
- package/claude/commands/context.md +112 -0
- package/claude/commands/dash.md +37 -0
- package/claude/commands/deploy-check.md +37 -0
- package/claude/commands/deps.md +26 -0
- package/claude/commands/duplo.md +56 -0
- package/claude/commands/explain.md +43 -0
- package/claude/commands/fix-and-test.md +46 -0
- package/claude/commands/game-debug.md +66 -0
- package/claude/commands/games.md +53 -0
- package/claude/commands/go.md +147 -0
- package/claude/commands/guard.md +102 -0
- package/claude/commands/handoff.md +66 -0
- package/claude/commands/incident.md +144 -0
- package/claude/commands/init.md +78 -0
- package/claude/commands/k8s-debug.md +31 -0
- package/claude/commands/lint.md +27 -0
- package/claude/commands/merge-all.md +115 -0
- package/claude/commands/merge.md +129 -0
- package/claude/commands/mikpc.md +54 -0
- package/claude/commands/morning.md +72 -0
- package/claude/commands/partymode.md +105 -0
- package/claude/commands/plans.md +88 -0
- package/claude/commands/pr.md +41 -0
- package/claude/commands/prep.md +132 -0
- package/claude/commands/push-sync.md +82 -0
- package/claude/commands/push.md +34 -0
- package/claude/commands/research.md +73 -0
- package/claude/commands/retro.md +95 -0
- package/claude/commands/review-pr.md +96 -0
- package/claude/commands/review.md +41 -0
- package/claude/commands/scaffold-agent.md +45 -0
- package/claude/commands/setup.md +92 -0
- package/claude/commands/ship-prod.md +97 -0
- package/claude/commands/ship.md +82 -0
- package/claude/commands/simplify.md +42 -0
- package/claude/commands/spike.md +110 -0
- package/claude/commands/status.md +37 -0
- package/claude/commands/sync.md +72 -0
- package/claude/commands/test.md +29 -0
- package/claude/commands/triage.md +72 -0
- package/claude/desktop/claude_desktop_config.json +9 -0
- package/claude/hooks.json +15 -0
- package/claude/mcp-servers.duplo.json +8 -0
- package/claude/mcp-servers.json +62 -0
- package/claude/scripts/psdebug.ps1 +7 -0
- package/claude/settings.json +38 -0
- package/claude/settings.local.json +4 -0
- package/claude/statusline-command.sh +94 -0
- package/claude/templates/CLAUDE-k8s-devops.md +58 -0
- package/claude/templates/CLAUDE-python-agent.md +47 -0
- package/claude/templates/CLAUDE-typescript-frontend.md +50 -0
- package/docker/ai-stack/docker-compose.yml +76 -0
- package/docker/ai-stack/searxng/limiter.toml +3 -0
- package/docker/ai-stack/searxng/settings.yml +39 -0
- package/docker/cli/config.json.template +15 -0
- package/docker/cli/daemon.json +9 -0
- package/docker/cli/features.json +3 -0
- package/docker/mcp/catalog.json +9 -0
- package/docker/mcp/catalogs/docker-mcp.yaml +15107 -0
- package/docker/mcp/config.yaml +0 -0
- package/docker/mcp/registry.yaml +37 -0
- package/docker/mcp/tools.yaml +0 -0
- package/docs/context/.gitkeep +0 -0
- package/docs/context/2026-03-02-configs.md +142 -0
- package/docs/handoff/.gitkeep +0 -0
- package/docs/incidents/.gitkeep +0 -0
- package/docs/plans/2026-02-28-autonomous-command-suite-design.md +250 -0
- package/docs/plans/2026-02-28-autonomous-command-suite.md +682 -0
- package/docs/plans/2026-03-01-ai-stack-split-architecture.md +72 -0
- package/docs/plans/2026-03-02-ai-stack-expansion.md +33 -0
- package/docs/plans/2026-03-02-merge-commands-design.md +58 -0
- package/docs/plans/2026-03-02-merge-commands.md +354 -0
- package/docs/research/.gitkeep +0 -0
- package/docs/research/2026-03-02-configs-repo-architecture.md +152 -0
- package/docs/retros/.gitkeep +0 -0
- package/docs/retros/2026-03-01-ai-stack-split-architecture.md +38 -0
- package/docs/spikes/.gitkeep +0 -0
- package/gh/config.yml +16 -0
- package/gh/hosts.yml +5 -0
- package/gh/main.json +103 -0
- package/ghostty/config +90 -0
- package/git/config/base.gitconfig +46 -0
- package/git/config/chiefmikey.gitconfig +11 -0
- package/git/config/personal.gitconfig +10 -0
- package/git/config/work.gitconfig +14 -0
- package/ide/cursor/extensions.txt +111 -0
- package/ide/cursor/keybindings.json +307 -0
- package/ide/cursor/mcp.json +92 -0
- package/ide/cursor/settings.json +544 -0
- package/ide/vscode/extensions.txt +120 -0
- package/ide/vscode/insiders/extensions.txt +119 -0
- package/ide/vscode/insiders/keybindings.json +294 -0
- package/ide/vscode/insiders/settings.json +518 -0
- package/ide/vscode/keybindings.json +294 -0
- package/ide/vscode/settings.json +526 -0
- package/ide/vscode/vscode/extensions.txt +43 -0
- package/iterm/Mikey Pro.json +951 -0
- package/iterm/com.googlecode.iterm2.plist +5549 -0
- package/iterm/font/MesloLGS NF Bold Italic.ttf +0 -0
- package/iterm/font/MesloLGS NF Bold.ttf +0 -0
- package/iterm/font/MesloLGS NF Italic.ttf +0 -0
- package/iterm/font/MesloLGS NF Regular.ttf +0 -0
- package/package.json +15 -0
- package/scripts/ai/deploy-ai-stack.sh +119 -0
- package/scripts/ai/fix-ai-proxy.service +12 -0
- package/scripts/ai/fix-ai-proxy.sh +25 -0
- package/scripts/brew/search/brew-search-results.sh +19 -0
- package/scripts/brew/search/brew-search.sh +34 -0
- package/scripts/brew/upgrade/brew-upgrade-autoupdate.sh +5 -0
- package/scripts/brew/upgrade/brew-upgrade-full-auto.sh +89 -0
- package/scripts/brew/upgrade/brew-upgrade-full.sh +159 -0
- package/scripts/docker/cleanup/docker-cleanup-manage.sh +163 -0
- package/scripts/docker/cleanup/docker-cleanup.cron +12 -0
- package/scripts/docker/cleanup/docker-cleanup.sh +280 -0
- package/scripts/docker/install/README.md +23 -0
- package/scripts/docker/install/docker-al2.sh +7 -0
- package/scripts/docker/install/docker-compose-al2.sh +15 -0
- package/scripts/gh/auth/auth.sh +12 -0
- package/scripts/gh/config/gh-config.sh +3 -0
- package/scripts/gh/gist/gh-gist-create.sh +29 -0
- package/scripts/gh/gist/gh-gist-delete.sh +1 -0
- package/scripts/gh/gist/gh-gist-edit.sh +8 -0
- package/scripts/gh/gpg-key/gh-gpg-key-add.sh +3 -0
- package/scripts/gh/install/install.sh +7 -0
- package/scripts/gh/label/gh-label-clone.sh +0 -0
- package/scripts/gh/label/gh-label-create.sh +0 -0
- package/scripts/gh/label/gh-label-delete.sh +0 -0
- package/scripts/gh/label/gh-label-edit.sh +0 -0
- package/scripts/gh/label/gh-label-list.sh +0 -0
- package/scripts/gh/secret/gh-secret-delete.sh +24 -0
- package/scripts/gh/secret/gh-secret-set.sh +70 -0
- package/scripts/gh/ssh-key/gh-ssh-key-add.sh +8 -0
- package/scripts/git/add/git-add.sh +3 -0
- package/scripts/git/auth/README.md +11 -0
- package/scripts/git/auth/https.sh +20 -0
- package/scripts/git/auth/ssh-mac.sh +41 -0
- package/scripts/git/branch-delete/git-branch-delete.sh +16 -0
- package/scripts/git/checkout/git-checkout-stash.sh +32 -0
- package/scripts/git/temp/git-temp-pull.sh +6 -0
- package/scripts/git/temp/git-temp-push.sh +5 -0
- package/scripts/install/fresh.zsh +34 -0
- package/scripts/install/full-install.zsh +193 -0
- package/scripts/linux/codedeploy/README.md +19 -0
- package/scripts/linux/codedeploy/linux-codedeploy-al2.sh +13 -0
- package/scripts/linux/codedeploy/linux-codedeploy-index.sh +16 -0
- package/scripts/linux/codedeploy/linux-codedeploy-ubuntu.sh +14 -0
- package/scripts/linux/coredns/README.md +17 -0
- package/scripts/linux/coredns/linux-coredns-al2.sh +29 -0
- package/scripts/linux/wifi/01-netconf.yaml +21 -0
- package/scripts/linux/wifi/wifi-ubuntu.sh +17 -0
- package/scripts/mac/dock-sort/mac-dock-sort.sh +87 -0
- package/scripts/mac/dropbox-ignore/mac-dropbox-ignore.sh +12 -0
- package/scripts/mac/sudo-askpass/mac-sudo-askpass.sh +50 -0
- package/scripts/mac/sudo-askpass/setup-sudo-password.sh +49 -0
- package/scripts/mac/upgrade/mac-upgrade.sh +21 -0
- package/scripts/mac/vpn/mac-vpn.sh +4 -0
- package/scripts/mcp/aws-mcp-wrapper.ps1 +97 -0
- package/scripts/mcp/aws-mcp-wrapper.sh +53 -0
- package/scripts/mcp/duplo-mcp-wrapper.sh +31 -0
- package/scripts/mcp/filesystem-mcp-wrapper.ps1 +43 -0
- package/scripts/mcp/filesystem-mcp-wrapper.sh +34 -0
- package/scripts/mcp/git-mcp-wrapper.ps1 +42 -0
- package/scripts/mcp/git-mcp-wrapper.sh +33 -0
- package/scripts/mcp/github-mcp-wrapper.ps1 +43 -0
- package/scripts/mcp/github-mcp-wrapper.sh +19 -0
- package/scripts/mcp/kubernetes-mcp-wrapper.ps1 +22 -0
- package/scripts/mcp/kubernetes-mcp-wrapper.sh +16 -0
- package/scripts/mcp/mcp-launcher.ps1 +56 -0
- package/scripts/mcp/mcp-launcher.sh +71 -0
- package/scripts/mcp/mongodb-mcp-wrapper.ps1 +26 -0
- package/scripts/mcp/mongodb-mcp-wrapper.sh +17 -0
- package/scripts/mcp/notion-mcp-wrapper.ps1 +23 -0
- package/scripts/mcp/notion-mcp-wrapper.sh +14 -0
- package/scripts/mcp/postgres-mcp-wrapper.ps1 +23 -0
- package/scripts/mcp/postgres-mcp-wrapper.sh +16 -0
- package/scripts/npm/ncu/npm-ncu.sh +24 -0
- package/scripts/npm/upgrade/npm-upgrade.sh +51 -0
- package/scripts/qmk/build_reviung41.sh +28 -0
- package/scripts/qmk/sync_unicorne.sh +44 -0
- package/scripts/sync/README.md +64 -0
- package/scripts/sync/config-common.zsh +882 -0
- package/scripts/sync/pull-configs.ps1 +33 -0
- package/scripts/sync/pull-configs.zsh +278 -0
- package/scripts/sync/push-configs.ps1 +91 -0
- package/scripts/sync/push-configs.zsh +384 -0
- package/shell/alias/alias-d.zsh +333 -0
- package/shell/alias/alias.zsh +36 -0
- package/shell/alias/categories/development.zsh +157 -0
- package/shell/alias/categories/environment.zsh +13 -0
- package/shell/alias/categories/git.zsh +40 -0
- package/shell/alias/categories/github-functions.zsh +459 -0
- package/shell/alias/categories/network.zsh +46 -0
- package/shell/alias/categories/path.zsh +46 -0
- package/shell/alias/categories/system.zsh +78 -0
- package/shell/alias/categories/wolfe-server.zsh +11 -0
- package/shell/powershell/Microsoft.PowerShell_profile.ps1 +208 -0
- package/shell/zsh/.p10k.zsh +1832 -0
- package/shell/zsh/.zshrc +87 -0
- package/shell/zsh/config/completion.zsh +31 -0
- package/shell/zsh/config/functions.zsh +31 -0
- package/shell/zsh/config/keybindings.zsh +13 -0
- package/shell/zsh/config/options.zsh +56 -0
- package/shell/zsh/config/plugins.zsh +83 -0
- package/shell/zsh/config/variables.zsh +191 -0
- package/shell/zsh/powerlevel10k.zsh-theme +83 -0
- package/shell/zsh/zsh-autosuggestions.zsh +871 -0
- package/ssh/config +46 -0
- package/ssh/config.duplo +21 -0
- package/ssh/config.mikpc +35 -0
- package/ssh/personal_signing.pub +1 -0
- package/templates/.envrc.example +34 -0
- package/templates/.envrc.quickstart +17 -0
- package/wezterm/wezterm.lua +249 -0
- package/wsl/.wslconfig +3 -0
- package/wsl/wsl.conf +18 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Docker Cleanup Script - System-wide configuration
|
|
4
|
+
# Smart cleanup that preserves containers from all projects
|
|
5
|
+
# Only removes truly unused resources
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
DRY_RUN=false
|
|
10
|
+
FORCE=false
|
|
11
|
+
CLEAN_BUILD_CACHE=true
|
|
12
|
+
CLEAN_IMAGES=true
|
|
13
|
+
CLEAN_VOLUMES=true
|
|
14
|
+
CLEAN_NETWORKS=true
|
|
15
|
+
CLEAN_CONTAINERS=true
|
|
16
|
+
|
|
17
|
+
# Check if Docker is available
|
|
18
|
+
check_docker() {
|
|
19
|
+
if ! command -v docker >/dev/null 2>&1; then
|
|
20
|
+
echo "❌ Error: Docker CLI not found. Please install Docker."
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Try to start Docker if not running (macOS with Docker Desktop)
|
|
25
|
+
if ! docker info >/dev/null 2>&1; then
|
|
26
|
+
# On macOS, try to start Docker Desktop
|
|
27
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
28
|
+
if [ -d "/Applications/Docker.app" ]; then
|
|
29
|
+
echo "⚠️ Docker daemon is not running. Attempting to start Docker Desktop..."
|
|
30
|
+
open -a Docker 2>/dev/null || true
|
|
31
|
+
# Wait a bit for Docker to start
|
|
32
|
+
local wait_count=0
|
|
33
|
+
while ! docker info >/dev/null 2>&1 && [ $wait_count -lt 30 ]; do
|
|
34
|
+
sleep 1
|
|
35
|
+
wait_count=$((wait_count + 1))
|
|
36
|
+
done
|
|
37
|
+
fi
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Check again after potential start attempt
|
|
41
|
+
if ! docker info >/dev/null 2>&1; then
|
|
42
|
+
echo "⚠️ Docker daemon is not running. Skipping cleanup."
|
|
43
|
+
echo ""
|
|
44
|
+
if [[ -z "${FORCE:-}" ]] || [[ "$FORCE" != "true" ]]; then
|
|
45
|
+
echo "To start Docker:"
|
|
46
|
+
echo " - macOS: Open Docker Desktop application"
|
|
47
|
+
echo " - Linux: sudo systemctl start docker"
|
|
48
|
+
echo ""
|
|
49
|
+
fi
|
|
50
|
+
exit 0
|
|
51
|
+
fi
|
|
52
|
+
fi
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Parse arguments
|
|
56
|
+
for arg in "$@"; do
|
|
57
|
+
case $arg in
|
|
58
|
+
--yes|--force)
|
|
59
|
+
FORCE=true
|
|
60
|
+
shift
|
|
61
|
+
;;
|
|
62
|
+
--dry-run)
|
|
63
|
+
DRY_RUN=true
|
|
64
|
+
shift
|
|
65
|
+
;;
|
|
66
|
+
--build-cache-only)
|
|
67
|
+
CLEAN_IMAGES=false
|
|
68
|
+
CLEAN_VOLUMES=false
|
|
69
|
+
CLEAN_NETWORKS=false
|
|
70
|
+
CLEAN_CONTAINERS=false
|
|
71
|
+
shift
|
|
72
|
+
;;
|
|
73
|
+
--images-only)
|
|
74
|
+
CLEAN_BUILD_CACHE=false
|
|
75
|
+
CLEAN_VOLUMES=false
|
|
76
|
+
CLEAN_NETWORKS=false
|
|
77
|
+
CLEAN_CONTAINERS=false
|
|
78
|
+
shift
|
|
79
|
+
;;
|
|
80
|
+
--no-build-cache)
|
|
81
|
+
CLEAN_BUILD_CACHE=false
|
|
82
|
+
shift
|
|
83
|
+
;;
|
|
84
|
+
--no-containers)
|
|
85
|
+
CLEAN_CONTAINERS=false
|
|
86
|
+
shift
|
|
87
|
+
;;
|
|
88
|
+
--help)
|
|
89
|
+
cat << EOF
|
|
90
|
+
Docker Cleanup Script (System-wide)
|
|
91
|
+
|
|
92
|
+
Usage: $0 [options]
|
|
93
|
+
|
|
94
|
+
Options:
|
|
95
|
+
--yes, --force Run without confirmation
|
|
96
|
+
--dry-run Show what would be removed without removing
|
|
97
|
+
--build-cache-only Only clean build cache
|
|
98
|
+
--images-only Only clean unused images
|
|
99
|
+
--no-build-cache Skip build cache cleanup
|
|
100
|
+
--no-containers Skip stopped container cleanup
|
|
101
|
+
--help Show this help message
|
|
102
|
+
|
|
103
|
+
Examples:
|
|
104
|
+
$0 --dry-run # Preview what would be removed
|
|
105
|
+
$0 # Interactive cleanup (asks for confirmation)
|
|
106
|
+
$0 --yes # Automatic cleanup (no confirmation)
|
|
107
|
+
$0 --build-cache-only --yes # Only clean build cache
|
|
108
|
+
$0 --images-only --yes # Only clean unused images
|
|
109
|
+
|
|
110
|
+
What Gets Cleaned:
|
|
111
|
+
This script only removes UNUSED resources:
|
|
112
|
+
✓ Stopped containers (NOT running containers from any project)
|
|
113
|
+
✓ Dangling/untagged images (NOT images used by containers)
|
|
114
|
+
✓ Unused volumes (NOT volumes attached to containers)
|
|
115
|
+
✓ Unused networks (NOT networks used by containers)
|
|
116
|
+
✓ Build cache
|
|
117
|
+
|
|
118
|
+
All running containers and resources in use are PRESERVED.
|
|
119
|
+
|
|
120
|
+
Setting Up Aliases:
|
|
121
|
+
Docker cleanup aliases are automatically loaded via your shell config.
|
|
122
|
+
They're defined in: shell/alias/categories/system.zsh
|
|
123
|
+
|
|
124
|
+
Use:
|
|
125
|
+
docker-cleanup --dry-run
|
|
126
|
+
docker-cleanup --yes
|
|
127
|
+
docker-cleanup-manage install
|
|
128
|
+
|
|
129
|
+
Automated Cleanup (Cron):
|
|
130
|
+
To set up weekly automatic cleanup:
|
|
131
|
+
docker-cleanup-manage install # Install cron job (Sundays 2 AM)
|
|
132
|
+
docker-cleanup-manage status # Check status
|
|
133
|
+
docker-cleanup-manage test # Test cleanup (dry-run)
|
|
134
|
+
docker-cleanup-manage uninstall # Remove cron job
|
|
135
|
+
|
|
136
|
+
EOF
|
|
137
|
+
exit 0
|
|
138
|
+
;;
|
|
139
|
+
esac
|
|
140
|
+
done
|
|
141
|
+
|
|
142
|
+
# Check Docker availability (skip for help)
|
|
143
|
+
if [[ "$1" != "--help" ]] && [[ "$1" != "help" ]]; then
|
|
144
|
+
check_docker
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
echo "🧹 Docker Cleanup (Smart Mode - Preserves All Projects)"
|
|
148
|
+
echo ""
|
|
149
|
+
|
|
150
|
+
# Show current disk usage
|
|
151
|
+
echo "📊 Current Docker disk usage:"
|
|
152
|
+
docker system df
|
|
153
|
+
echo ""
|
|
154
|
+
|
|
155
|
+
# Show what's running (so user knows what's preserved)
|
|
156
|
+
echo "🔍 Currently running containers (will be preserved):"
|
|
157
|
+
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" || echo " (none)"
|
|
158
|
+
echo ""
|
|
159
|
+
|
|
160
|
+
if [ "$DRY_RUN" = true ]; then
|
|
161
|
+
echo "🔍 DRY RUN MODE - Showing what would be removed:"
|
|
162
|
+
echo ""
|
|
163
|
+
fi
|
|
164
|
+
|
|
165
|
+
# Show what will be cleaned
|
|
166
|
+
if [ "$CLEAN_CONTAINERS" = true ]; then
|
|
167
|
+
STOPPED_COUNT=$(docker ps -a -f "status=exited" -q | wc -l | tr -d ' ')
|
|
168
|
+
if [ "$STOPPED_COUNT" -gt 0 ]; then
|
|
169
|
+
echo "📦 Stopped containers that would be removed: $STOPPED_COUNT"
|
|
170
|
+
if [ "$DRY_RUN" = true ]; then
|
|
171
|
+
docker ps -a -f "status=exited" --format " - {{.Names}} ({{.Image}})"
|
|
172
|
+
fi
|
|
173
|
+
else
|
|
174
|
+
echo "✅ No stopped containers to remove"
|
|
175
|
+
fi
|
|
176
|
+
echo ""
|
|
177
|
+
fi
|
|
178
|
+
|
|
179
|
+
if [ "$CLEAN_IMAGES" = true ]; then
|
|
180
|
+
DANGLING_COUNT=$(docker images -f "dangling=true" -q | wc -l | tr -d ' ')
|
|
181
|
+
if [ "$DANGLING_COUNT" -gt 0 ]; then
|
|
182
|
+
echo "🖼️ Dangling images that would be removed: $DANGLING_COUNT"
|
|
183
|
+
if [ "$DRY_RUN" = true ]; then
|
|
184
|
+
docker images -f "dangling=true" --format " - {{.Repository}}:{{.Tag}} ({{.Size}})"
|
|
185
|
+
fi
|
|
186
|
+
else
|
|
187
|
+
echo "✅ No dangling images to remove"
|
|
188
|
+
fi
|
|
189
|
+
echo ""
|
|
190
|
+
fi
|
|
191
|
+
|
|
192
|
+
if [ "$CLEAN_BUILD_CACHE" = true ]; then
|
|
193
|
+
CACHE_SIZE=$(docker system df | grep "Build Cache" | awk '{print $4}' || echo "0B")
|
|
194
|
+
if [ "$CACHE_SIZE" != "0B" ] && [ "$CACHE_SIZE" != "" ]; then
|
|
195
|
+
echo "🗄️ Build cache that would be removed: $CACHE_SIZE"
|
|
196
|
+
else
|
|
197
|
+
echo "✅ No build cache to remove"
|
|
198
|
+
fi
|
|
199
|
+
echo ""
|
|
200
|
+
fi
|
|
201
|
+
|
|
202
|
+
# Ask for confirmation unless forced or dry-run
|
|
203
|
+
if [ "$DRY_RUN" = false ] && [ "$FORCE" = false ]; then
|
|
204
|
+
echo "⚠️ This will remove UNUSED resources only (running containers preserved)."
|
|
205
|
+
read -p "Continue? (y/N) " -n 1 -r
|
|
206
|
+
echo
|
|
207
|
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
208
|
+
echo "Cleanup cancelled."
|
|
209
|
+
exit 0
|
|
210
|
+
fi
|
|
211
|
+
fi
|
|
212
|
+
|
|
213
|
+
if [ "$DRY_RUN" = true ]; then
|
|
214
|
+
echo ""
|
|
215
|
+
echo "✅ Dry run complete. Run without --dry-run to actually clean."
|
|
216
|
+
exit 0
|
|
217
|
+
fi
|
|
218
|
+
|
|
219
|
+
# Perform cleanup
|
|
220
|
+
echo ""
|
|
221
|
+
echo "🧹 Starting cleanup..."
|
|
222
|
+
echo ""
|
|
223
|
+
|
|
224
|
+
if [ "$CLEAN_CONTAINERS" = true ]; then
|
|
225
|
+
echo "🗑️ Removing stopped containers..."
|
|
226
|
+
REMOVED=$(docker container prune -f 2>&1 | grep "Total reclaimed space" || echo "")
|
|
227
|
+
if [ -n "$REMOVED" ]; then
|
|
228
|
+
echo " $REMOVED"
|
|
229
|
+
else
|
|
230
|
+
echo " ✅ No stopped containers to remove"
|
|
231
|
+
fi
|
|
232
|
+
fi
|
|
233
|
+
|
|
234
|
+
if [ "$CLEAN_IMAGES" = true ]; then
|
|
235
|
+
echo "🗑️ Removing dangling images (untagged, not used by containers)..."
|
|
236
|
+
REMOVED=$(docker image prune -f 2>&1 | grep "Total reclaimed space" || echo "")
|
|
237
|
+
if [ -n "$REMOVED" ]; then
|
|
238
|
+
echo " $REMOVED"
|
|
239
|
+
else
|
|
240
|
+
echo " ✅ No dangling images to remove"
|
|
241
|
+
fi
|
|
242
|
+
fi
|
|
243
|
+
|
|
244
|
+
if [ "$CLEAN_VOLUMES" = true ]; then
|
|
245
|
+
echo "🗑️ Removing unused volumes (not attached to containers)..."
|
|
246
|
+
REMOVED=$(docker volume prune -f 2>&1 | grep "Total reclaimed space" || echo "")
|
|
247
|
+
if [ -n "$REMOVED" ]; then
|
|
248
|
+
echo " $REMOVED"
|
|
249
|
+
else
|
|
250
|
+
echo " ✅ No unused volumes to remove"
|
|
251
|
+
fi
|
|
252
|
+
fi
|
|
253
|
+
|
|
254
|
+
if [ "$CLEAN_NETWORKS" = true ]; then
|
|
255
|
+
echo "🗑️ Removing unused networks..."
|
|
256
|
+
REMOVED=$(docker network prune -f 2>&1 | grep "Total reclaimed space" || echo "")
|
|
257
|
+
if [ -n "$REMOVED" ]; then
|
|
258
|
+
echo " $REMOVED"
|
|
259
|
+
else
|
|
260
|
+
echo " ✅ No unused networks to remove"
|
|
261
|
+
fi
|
|
262
|
+
fi
|
|
263
|
+
|
|
264
|
+
if [ "$CLEAN_BUILD_CACHE" = true ]; then
|
|
265
|
+
echo "🗑️ Cleaning build cache..."
|
|
266
|
+
REMOVED=$(docker builder prune -f 2>&1 | grep "Total reclaimed space" || echo "")
|
|
267
|
+
if [ -n "$REMOVED" ]; then
|
|
268
|
+
echo " $REMOVED"
|
|
269
|
+
else
|
|
270
|
+
echo " ✅ No build cache to remove"
|
|
271
|
+
fi
|
|
272
|
+
fi
|
|
273
|
+
|
|
274
|
+
echo ""
|
|
275
|
+
echo "✅ Cleanup complete!"
|
|
276
|
+
echo ""
|
|
277
|
+
echo "📊 Final Docker disk usage:"
|
|
278
|
+
docker system df
|
|
279
|
+
echo ""
|
|
280
|
+
echo "💡 Tip: Run with --dry-run to preview what will be removed"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Docker
|
|
2
|
+
|
|
3
|
+
_Install and run [Docker](https://docs.docker.com/)_
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
# Amazon Linux 2
|
|
7
|
+
yum install -y wget
|
|
8
|
+
wget -O ~/docker-amazon.sh https://raw.githubusercontent.com/chiefmikey/configs/main/scripts/docker/install/docker-al2.sh
|
|
9
|
+
sudo chmod +x ~/docker-amazon.sh
|
|
10
|
+
sudo ~/docker-amazon.sh
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
# Docker Compose
|
|
14
|
+
|
|
15
|
+
_Install and run [Docker Compose](https://docs.docker.com/compose/)_
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
# Amazon Linux 2
|
|
19
|
+
yum install -y wget
|
|
20
|
+
wget -O ~/docker-compose-amazon.sh https://raw.githubusercontent.com/chiefmikey/configs/main/scripts/docker/install/docker-compose-al2.sh
|
|
21
|
+
sudo chmod +x ~/docker-compose-amazon.sh
|
|
22
|
+
sudo ~/docker-compose-amazon.sh
|
|
23
|
+
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/bin/sh
|
|
2
|
+
|
|
3
|
+
yum update -y
|
|
4
|
+
yum install -y git wget
|
|
5
|
+
mkdir -p /home/ec2-user/.docker/cli-plugins/
|
|
6
|
+
wget -O /home/ec2-user/.docker/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-linux-x86_64
|
|
7
|
+
chmod +x /home/ec2-user/.docker/cli-plugins/docker-compose
|
|
8
|
+
ln -s /home/ec2-user/.docker/cli-plugins/docker-compose /usr/bin/docker-compose
|
|
9
|
+
amazon-linux-extras install docker
|
|
10
|
+
usermod -a -G docker ec2-user
|
|
11
|
+
systemctl enable --now docker
|
|
12
|
+
chkconfig docker on
|
|
13
|
+
chmod 666 /var/run/docker.sock
|
|
14
|
+
docker compose -f /home/ec2-user/docker-compose.yaml pull
|
|
15
|
+
docker compose -f /home/ec2-user/docker-compose.yaml up -d
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
awsRegion="us-east-2"
|
|
4
|
+
awsSecretId="gh-sudo"
|
|
5
|
+
pat="$(aws secretsmanager --region ${awsRegion} get-secret-value --secret-id ${awsSecretId} | jq -r ".SecretString" | jq -r ".[\"$awsSecretId\"]")"
|
|
6
|
+
|
|
7
|
+
touch pat.txt
|
|
8
|
+
echo "${pat}" > pat.txt
|
|
9
|
+
|
|
10
|
+
gh auth login -p ssh --with-token < pat.txt
|
|
11
|
+
|
|
12
|
+
rm pat.txt
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
gh gist create [<filename>... | -] [flags]
|
|
2
|
+
Create a new GitHub gist with given contents.
|
|
3
|
+
|
|
4
|
+
Gists can be created from one or multiple files. Alternatively, pass "-" as file name to read from standard input.
|
|
5
|
+
|
|
6
|
+
By default, gists are secret; use '--public' to make publicly listed ones.
|
|
7
|
+
|
|
8
|
+
Options
|
|
9
|
+
-d, --desc <string>
|
|
10
|
+
A description for this gist
|
|
11
|
+
-f, --filename <string>
|
|
12
|
+
Provide a filename to be used when reading from standard input
|
|
13
|
+
-p, --public
|
|
14
|
+
List the gist publicly (default: secret)
|
|
15
|
+
-w, --web
|
|
16
|
+
Open the web browser with created gist
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
gh gist list [flags]
|
|
23
|
+
Options
|
|
24
|
+
-L, --limit <int>
|
|
25
|
+
Maximum number of gists to fetch
|
|
26
|
+
--public
|
|
27
|
+
Show only public gists
|
|
28
|
+
--secret
|
|
29
|
+
Show only secret gists
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gh gist delete {<id> | <url>}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
|
4
|
+
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
|
|
5
|
+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
|
6
|
+
sudo apt update
|
|
7
|
+
sudo apt install gh
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
input variables to delete secret
|
|
2
|
+
check repo if secret exists
|
|
3
|
+
have option to list repo secrets and choose which one to delete aka interactive
|
|
4
|
+
|
|
5
|
+
gh secret delete
|
|
6
|
+
gh secret delete <secret-name> [flags]
|
|
7
|
+
Delete a secret on one of the following levels:
|
|
8
|
+
|
|
9
|
+
repository (default): available to Actions runs or Dependabot in a repository
|
|
10
|
+
environment: available to Actions runs for a deployment environment in a repository
|
|
11
|
+
organization: available to Actions runs or Dependabot within an organization
|
|
12
|
+
user: available to Codespaces for your user
|
|
13
|
+
Options
|
|
14
|
+
-a, --app <string>
|
|
15
|
+
Delete a secret for a specific application: {actions|codespaces|dependabot}
|
|
16
|
+
-e, --env <string>
|
|
17
|
+
Delete a secret for an environment
|
|
18
|
+
-o, --org <string>
|
|
19
|
+
Delete a secret for an organization
|
|
20
|
+
-u, --user
|
|
21
|
+
Delete a secret for your user
|
|
22
|
+
Options inherited from parent commands
|
|
23
|
+
-R, --repo <[HOST/]OWNER/REPO>
|
|
24
|
+
Select another repository using the [HOST/]OWNER/REPO format
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
input variables to set secret
|
|
2
|
+
use list command to see if secret already exists
|
|
3
|
+
if it exists then delete it (confirm) and then create it to basically update it
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
gh secret set <secret-name> [flags]
|
|
8
|
+
|
|
9
|
+
# Repository is current directory
|
|
10
|
+
gh secret set SNYK_TOKEN --app actions --body "$SNYK_TOKEN"
|
|
11
|
+
|
|
12
|
+
Set a value for a secret on one of the following levels:
|
|
13
|
+
|
|
14
|
+
repository (default): available to Actions runs or Dependabot in a repository
|
|
15
|
+
environment: available to Actions runs for a deployment environment in a repository
|
|
16
|
+
organization: available to Actions runs or Dependabot within an organization
|
|
17
|
+
user: available to Codespaces for your user
|
|
18
|
+
Organization and user secrets can optionally be restricted to only be available to specific repositories.
|
|
19
|
+
|
|
20
|
+
Secret values are locally encrypted before being sent to GitHub.
|
|
21
|
+
|
|
22
|
+
-a, --app <string>
|
|
23
|
+
Set the application for a secret: {actions|codespaces|dependabot}
|
|
24
|
+
|
|
25
|
+
-b, --body <string>
|
|
26
|
+
The value for the secret (reads from standard input if not specified)
|
|
27
|
+
|
|
28
|
+
-e, --env <environment>
|
|
29
|
+
Set deployment environment secret
|
|
30
|
+
|
|
31
|
+
-f, --env-file <file>
|
|
32
|
+
Load secret names and values from a dotenv-formatted file
|
|
33
|
+
|
|
34
|
+
--no-store
|
|
35
|
+
Print the encrypted, base64-encoded value instead of storing it on Github
|
|
36
|
+
|
|
37
|
+
-o, --org <organization>
|
|
38
|
+
Set organization secret
|
|
39
|
+
|
|
40
|
+
-r, --repos <repositories>
|
|
41
|
+
List of repositories that can access an organization or user secret
|
|
42
|
+
|
|
43
|
+
-u, --user
|
|
44
|
+
Set a secret for your user
|
|
45
|
+
|
|
46
|
+
-v, --visibility <string>
|
|
47
|
+
Set visibility for an organization secret: {all|private|selected}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
gh secret list [flags]
|
|
53
|
+
List secrets on one of the following levels:
|
|
54
|
+
|
|
55
|
+
repository (default): available to Actions runs or Dependabot in a repository
|
|
56
|
+
environment: available to Actions runs for a deployment environment in a repository
|
|
57
|
+
organization: available to Actions runs or Dependabot within an organization
|
|
58
|
+
user: available to Codespaces for your user
|
|
59
|
+
Options
|
|
60
|
+
-a, --app <string>
|
|
61
|
+
List secrets for a specific application: {actions|codespaces|dependabot}
|
|
62
|
+
-e, --env <string>
|
|
63
|
+
List secrets for an environment
|
|
64
|
+
-o, --org <string>
|
|
65
|
+
List secrets for an organization
|
|
66
|
+
-u, --user
|
|
67
|
+
List a secret for your user
|
|
68
|
+
Options inherited from parent commands
|
|
69
|
+
-R, --repo <[HOST/]OWNER/REPO>
|
|
70
|
+
Select another repository using the [HOST/]OWNER/REPO format
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Git Auth
|
|
2
|
+
|
|
3
|
+
_Install and authenticate [Git](https://git-scm.com/)_
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
# Ubuntu
|
|
7
|
+
apt install -y wget
|
|
8
|
+
wget -O ~/git-auth-ubuntu.sh https://raw.githubusercontent.com/chiefmikey/configs/main/scripts/git/auth/ssh-mac.sh
|
|
9
|
+
sudo chmod +x ~/git-auth-ubuntu.sh
|
|
10
|
+
sudo ~/git-auth-ubuntu.sh
|
|
11
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
cd /home/ubuntu || exit
|
|
4
|
+
apt update -y
|
|
5
|
+
apt upgrade -y
|
|
6
|
+
apt install -y git jq awscli
|
|
7
|
+
export user="chiefmikey"
|
|
8
|
+
export email="wolfemikl@gmail.com"
|
|
9
|
+
export repo="configs"
|
|
10
|
+
export owner="chiefmikey"
|
|
11
|
+
export awsRegion="us-east-2"
|
|
12
|
+
export awsSecretId="git-auth"
|
|
13
|
+
export pw=$(sudo aws secretsmanager --region ${awsRegion} get-secret-value --secret-id ${awsSecretId} | jq -r ".SecretString" | jq -r ".${awsSecretId}")
|
|
14
|
+
sleep 10
|
|
15
|
+
git init
|
|
16
|
+
git config user.name ${user}
|
|
17
|
+
git config user.email ${email}
|
|
18
|
+
git remote add origin https://${user}:"${pw}"@github.com/${owner}/${repo}.git
|
|
19
|
+
git fetch origin main
|
|
20
|
+
git checkout main
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# check for existing key?
|
|
4
|
+
ls -al ~/.ssh
|
|
5
|
+
|
|
6
|
+
# generate new key
|
|
7
|
+
ssh-keygen -t ed25519 -C "wolfemikl@gmail.com"
|
|
8
|
+
# enter file name or blank for default
|
|
9
|
+
# gh-ssh
|
|
10
|
+
# enter password or blank for none
|
|
11
|
+
|
|
12
|
+
# start ssh agent in background
|
|
13
|
+
eval "$(ssh-agent -s)"
|
|
14
|
+
|
|
15
|
+
# check if ssh config already exists
|
|
16
|
+
open ~/.ssh/config
|
|
17
|
+
|
|
18
|
+
# create ssh config
|
|
19
|
+
touch ~/.ssh/config
|
|
20
|
+
|
|
21
|
+
# add to config
|
|
22
|
+
echo '
|
|
23
|
+
Host *
|
|
24
|
+
AddKeysToAgent yes
|
|
25
|
+
UseKeychain yes
|
|
26
|
+
IdentityFile ~/.ssh/id_ed25519
|
|
27
|
+
' >> ~/.ssh/config
|
|
28
|
+
|
|
29
|
+
# add to keychain
|
|
30
|
+
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
|
|
31
|
+
|
|
32
|
+
# if no password
|
|
33
|
+
ssh-add ~/.ssh/id_ed25519
|
|
34
|
+
|
|
35
|
+
# add key manually to github
|
|
36
|
+
|
|
37
|
+
# add key with gh cli
|
|
38
|
+
gh ssh-key add ~/.ssh/id_ed25519.pub --title "id_ed25519"
|
|
39
|
+
|
|
40
|
+
# gh cli confirmation for ssh
|
|
41
|
+
ssh -T git@github.com
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# deletes from remote? not sure
|
|
4
|
+
|
|
5
|
+
git remote update origin --prune
|
|
6
|
+
|
|
7
|
+
FORMAT="%(if:equals=[gone])%(upstream:track)%(then)%(refname:short)%(end)"
|
|
8
|
+
|
|
9
|
+
for branch in $(git branch --list --format ${FORMAT}); do
|
|
10
|
+
echo $branch
|
|
11
|
+
#[ "${branch}" != "" ] && git push origin --delete ${branch}
|
|
12
|
+
done
|
|
13
|
+
|
|
14
|
+
# other option
|
|
15
|
+
|
|
16
|
+
git branch --no-contains master --merged master | xargs git branch -d
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
while
|
|
4
|
+
[ "${STASH_IT}" != "y" ] &&
|
|
5
|
+
[ "${STASH_IT}" != "yes" ] &&
|
|
6
|
+
[ "${STASH_IT}" != "n" ] &&
|
|
7
|
+
[ "${STASH_IT}" != "no" ]; do
|
|
8
|
+
echo "Stash changes: (y/n)"
|
|
9
|
+
read STASH_IT
|
|
10
|
+
done
|
|
11
|
+
|
|
12
|
+
if [ "$STASH_IT" = "y" ] || [ "$STASH_IT" = "yes" ] ; then
|
|
13
|
+
git stash push --all --message "checkout"
|
|
14
|
+
git checkout "${@:1}"
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
#!/bin/bash
|
|
18
|
+
|
|
19
|
+
while
|
|
20
|
+
[ "${POP_IT}" != "y" ] &&
|
|
21
|
+
[ "${POP_IT}" != "yes" ] &&
|
|
22
|
+
[ "${POP_IT}" != "n" ] &&
|
|
23
|
+
[ "${POP_IT}" != "no" ]; do
|
|
24
|
+
echo "Pop stash on new branch: (y/n)"
|
|
25
|
+
read POP_IT
|
|
26
|
+
done
|
|
27
|
+
|
|
28
|
+
if [ "$POP_IT" = "y" ] || [ "$POP_IT" = "yes" ] ; then
|
|
29
|
+
STASH=$(git stash list | awk -F':' '{ print $1":"$3 }' | grep "checkout" | awk -F':' '{ print $1 }')
|
|
30
|
+
echo "$STASH"
|
|
31
|
+
git stash pop "${STASH}"
|
|
32
|
+
fi
|