Initial commit: Complete macOS dotfiles system
🖖 Features: - Master 'engage' script for one-command setup - 120+ CLI tools via Homebrew - 40+ Applications (casks + MAS apps) - Complete macOS system configuration - Security hardening and privacy settings - Obsidian knowledge vault setup - Comprehensive backup strategies - Automated symlink management Live long and prosper\! 🚀 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Custom Scripts
|
||||
|
||||
This directory contains custom scripts that will be symlinked to `~/bin`.
|
||||
|
||||
## Setup
|
||||
|
||||
1. The symlink script will link all scripts from this directory to `~/bin`
|
||||
2. Make sure `~/bin` is in your PATH (add to `.zshrc`):
|
||||
```bash
|
||||
export PATH="$HOME/bin:$PATH"
|
||||
```
|
||||
|
||||
## Adding New Scripts
|
||||
|
||||
1. Create your script in `~/dotfiles/bin/`
|
||||
2. Make it executable: `chmod +x script_name`
|
||||
3. Run the symlink script to link it to `~/bin`
|
||||
|
||||
## Script Guidelines
|
||||
|
||||
- Start with proper shebang: `#!/usr/bin/env bash` or `#!/usr/bin/env zsh`
|
||||
- Add help/usage information
|
||||
- Use meaningful names
|
||||
- Document what the script does
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
# Quick backup of important dotfiles
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DOTFILES_DIR="$HOME/dotfiles"
|
||||
BACKUP_DIR="$DOTFILES_DIR/backups"
|
||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${GREEN}Backing up dotfiles...${NC}"
|
||||
|
||||
# Create backup directory
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Files to backup
|
||||
files=(
|
||||
"$HOME/.zshrc"
|
||||
"$HOME/.gitconfig"
|
||||
"$HOME/.vimrc"
|
||||
"$HOME/.ssh/config"
|
||||
"$HOME/.config/karabiner/karabiner.json"
|
||||
)
|
||||
|
||||
# Create tarball
|
||||
tar_file="$BACKUP_DIR/dotfiles_backup_${TIMESTAMP}.tar.gz"
|
||||
|
||||
for file in "${files[@]}"; do
|
||||
if [ -f "$file" ]; then
|
||||
echo -e "${YELLOW}Adding: $file${NC}"
|
||||
fi
|
||||
done
|
||||
|
||||
tar -czf "$tar_file" \
|
||||
--exclude="*.log" \
|
||||
--exclude=".git" \
|
||||
"${files[@]}" 2>/dev/null || true
|
||||
|
||||
echo -e "${GREEN}Backup created: $tar_file${NC}"
|
||||
|
||||
# Keep only last 10 backups
|
||||
cd "$BACKUP_DIR"
|
||||
ls -t dotfiles_backup_*.tar.gz | tail -n +11 | xargs -r rm
|
||||
|
||||
echo -e "${GREEN}Done!${NC}"
|
||||
Executable
+71
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check for changes in application configurations
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${GREEN}Checking application configuration changes...${NC}\n"
|
||||
|
||||
# Function to check if file has changed
|
||||
check_config() {
|
||||
local app_name="$1"
|
||||
local source_path="$2"
|
||||
local backup_path="$3"
|
||||
|
||||
if [ ! -e "$source_path" ]; then
|
||||
echo -e "${RED}✗ $app_name: Source not found${NC}"
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -e "$backup_path" ]; then
|
||||
echo -e "${YELLOW}⚠ $app_name: No backup exists${NC}"
|
||||
return
|
||||
fi
|
||||
|
||||
if diff -q "$source_path" "$backup_path" >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ $app_name: Up to date${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ $app_name: Has changes${NC}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check each application
|
||||
echo "Checking configurations..."
|
||||
|
||||
# NPM
|
||||
if [ -f ~/.npmrc ] && [ -f ~/dotfiles/.npmrc ]; then
|
||||
check_config "NPM config" ~/.npmrc ~/dotfiles/.npmrc
|
||||
fi
|
||||
|
||||
# SSH
|
||||
if [ -f ~/.ssh/config ]; then
|
||||
echo -e "${YELLOW}! SSH config: Manual check required (contains sensitive data)${NC}"
|
||||
fi
|
||||
|
||||
# LaunchBar
|
||||
if [ -d "$HOME/Library/Application Support/LaunchBar" ]; then
|
||||
# Check if backup exists
|
||||
if [ -d "$HOME/dotfiles/macos-apps/LaunchBar" ]; then
|
||||
echo -e "${YELLOW}! LaunchBar: Run backup script to check for changes${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ LaunchBar: No backup exists${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Hazel
|
||||
if [ -f "$HOME/Library/Application Support/Hazel/hazelrules.db" ]; then
|
||||
check_config "Hazel rules" \
|
||||
"$HOME/Library/Application Support/Hazel/hazelrules.db" \
|
||||
"$HOME/dotfiles/macos-apps/Hazel/hazelrules.db"
|
||||
fi
|
||||
|
||||
# Git config
|
||||
check_config "Git config" ~/.gitconfig ~/dotfiles/git/.gitconfig
|
||||
|
||||
echo -e "\n${GREEN}Check complete!${NC}"
|
||||
echo -e "To backup changed configs, run: ${YELLOW}~/dotfiles/macos-apps/backup-app-configs.sh${NC}"
|
||||
Reference in New Issue
Block a user