feat: add user scripts (backup-menu, ssh-pick, proj) and backup reminder

This commit is contained in:
Dmitry
2026-05-13 19:39:32 +03:00
parent 28914ea128
commit babe53d929
5 changed files with 183 additions and 8 deletions
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# ssh-pick — выбрать SSH-хост через fzf
set -euo pipefail
SSH_CONFIG_DIR="${HOME}/.ssh/config.d"
SSH_CONFIG="${HOME}/.ssh/config"
_list_hosts() {
local configs=()
if [[ -d "$SSH_CONFIG_DIR" ]]; then
configs=("$SSH_CONFIG_DIR"/*.conf)
fi
[[ -f "$SSH_CONFIG" ]] && configs+=("$SSH_CONFIG")
for f in "${configs[@]}"; do
[[ -f "$f" ]] || continue
awk '/^Host [^*]/{
sub(/^Host /, "")
n = split($0, hosts, " ")
for (i = 1; i <= n; i++) print hosts[i]
}' "$f"
done | sort -u
}
main() {
if ! command -v fzf &>/dev/null; then
echo "fzf not found"
exit 1
fi
local hosts
hosts=$(_list_hosts)
if [[ -z "$hosts" ]]; then
echo "No SSH hosts found"
exit 1
fi
local selected
selected=$(echo "$hosts" | fzf \
--prompt "ssh > " \
--header "Enter — подключиться | Ctrl-C — выйти" \
--height=40% \
--reverse) || exit 0
echo "▶ ssh $selected"
exec ssh "$selected"
}
main "$@"