- Add common aliases, exports, and functions - Add shell completions and prompt configuration - Add sync utilities for cross-shell compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
84 lines
2.4 KiB
Plaintext
84 lines
2.4 KiB
Plaintext
# Dotfiles Auto-Sync Configuration
|
|
# This file is sourced by shell configurations to enable automatic syncing
|
|
|
|
# Function to run dotfiles sync
|
|
dotfiles_sync() {
|
|
if [[ -x "$HOME/.dotfiles/sync.sh" ]]; then
|
|
"$HOME/.dotfiles/sync.sh" --background
|
|
fi
|
|
}
|
|
|
|
# Function to enable/disable sync
|
|
dotfiles_sync_enable() {
|
|
echo "true" > "$HOME/.dotfiles/.sync_enabled"
|
|
echo "✅ Dotfiles auto-sync enabled"
|
|
}
|
|
|
|
dotfiles_sync_disable() {
|
|
echo "false" > "$HOME/.dotfiles/.sync_enabled"
|
|
echo "❌ Dotfiles auto-sync disabled"
|
|
}
|
|
|
|
# Function to manually trigger sync
|
|
dotfiles_sync_now() {
|
|
if [[ -x "$HOME/.dotfiles/sync.sh" ]]; then
|
|
"$HOME/.dotfiles/sync.sh" --manual
|
|
else
|
|
echo "❌ Sync script not found or not executable"
|
|
fi
|
|
}
|
|
|
|
# Function to force sync (ignores timing)
|
|
dotfiles_sync_force() {
|
|
if [[ -x "$HOME/.dotfiles/sync.sh" ]]; then
|
|
"$HOME/.dotfiles/sync.sh" --force
|
|
else
|
|
echo "❌ Sync script not found or not executable"
|
|
fi
|
|
}
|
|
|
|
# Function to show sync status
|
|
dotfiles_sync_status() {
|
|
local sync_enabled_file="$HOME/.dotfiles/.sync_enabled"
|
|
local last_sync_file="$HOME/.dotfiles/.last_sync"
|
|
local sync_log="$HOME/.dotfiles/.sync.log"
|
|
|
|
echo "🔧 Dotfiles Sync Status:"
|
|
|
|
if [[ -f "$sync_enabled_file" ]]; then
|
|
local enabled=$(cat "$sync_enabled_file")
|
|
if [[ "$enabled" == "true" ]]; then
|
|
echo " Status: ✅ Enabled"
|
|
else
|
|
echo " Status: ❌ Disabled"
|
|
fi
|
|
else
|
|
echo " Status: ✅ Enabled (default)"
|
|
fi
|
|
|
|
if [[ -f "$last_sync_file" ]]; then
|
|
local last_sync=$(cat "$last_sync_file")
|
|
local last_sync_date=$(date -d "@$last_sync" 2>/dev/null || echo "Unknown")
|
|
echo " Last sync: $last_sync_date"
|
|
else
|
|
echo " Last sync: Never"
|
|
fi
|
|
|
|
if [[ -f "$sync_log" ]]; then
|
|
echo " Recent activity:"
|
|
tail -3 "$sync_log" | sed 's/^/ /'
|
|
fi
|
|
}
|
|
|
|
# Auto-sync on shell startup (only for interactive shells)
|
|
if [[ $- == *i* ]] && [[ -n "$HOME" ]] && [[ -d "$HOME/.dotfiles" ]]; then
|
|
dotfiles_sync
|
|
|
|
# Also check for updates periodically (background, no output)
|
|
if [[ -f "$HOME/.dotfiles/lib/update_checker.sh" ]]; then
|
|
(
|
|
source "$HOME/.dotfiles/lib/update_checker.sh"
|
|
check_for_updates false false >/dev/null 2>&1 &
|
|
)
|
|
fi
|
|
fi |