mirror of
https://github.com/SeriousBug/dotfiles
synced 2025-12-07 05:22:34 -06:00
Add --force-deploy and --skip-brew flags to setup script
Adds two new command-line flags to enhance setup script flexibility: - --force-deploy: Passes -f flag to dotter deploy for forced deployment - --skip-brew: Skips all Homebrew package installation steps 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
989fab7a18
commit
a40f25b734
38
setup.sh
38
setup.sh
|
|
@ -1,19 +1,40 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -eo pipefail
|
||||
|
||||
# Parse command line arguments
|
||||
RESET_CONFIG=false
|
||||
if [[ "$1" == "--reset" ]]; then
|
||||
FORCE_DEPLOY=false
|
||||
SKIP_BREW=false
|
||||
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
--reset)
|
||||
RESET_CONFIG=true
|
||||
echo "Resetting configuration (will re-prompt for all variables)..."
|
||||
fi
|
||||
;;
|
||||
--force-deploy)
|
||||
FORCE_DEPLOY=true
|
||||
echo "Force deployment mode enabled..."
|
||||
;;
|
||||
--skip-brew)
|
||||
SKIP_BREW=true
|
||||
echo "Skipping Homebrew package installation..."
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $arg"
|
||||
echo "Usage: $0 [--reset] [--force-deploy] [--skip-brew]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "Setting up dotfiles environment..."
|
||||
|
||||
# Detect OS
|
||||
OS="$(uname -s)"
|
||||
|
||||
if [[ "$SKIP_BREW" == false ]]; then
|
||||
# Check if Homebrew is installed
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Homebrew is not installed. Please install it first:"
|
||||
|
|
@ -75,6 +96,7 @@ if [[ "$OS" == "Darwin" ]]; then
|
|||
else
|
||||
echo "Skipping macOS-specific casks (not on macOS)"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set up GitHub CLI authentication
|
||||
if command -v gh &> /dev/null; then
|
||||
|
|
@ -153,17 +175,27 @@ EOF
|
|||
# Deploy dotfiles
|
||||
echo ""
|
||||
echo "Deploying dotfiles..."
|
||||
if [[ "$FORCE_DEPLOY" == true ]]; then
|
||||
if dotter deploy -f -v; then
|
||||
echo "✓ Dotfiles deployed successfully (forced)!"
|
||||
else
|
||||
echo "⚠ Dotter deployment failed."
|
||||
fi
|
||||
else
|
||||
if dotter deploy -v; then
|
||||
echo "✓ Dotfiles deployed successfully!"
|
||||
else
|
||||
echo "⚠ Dotter deployment failed. You may need to run 'dotter deploy -f' to force deployment."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "✓ Setup complete!"
|
||||
echo ""
|
||||
echo "Configuration saved to: $USER_VARS_FILE"
|
||||
echo "To reconfigure, run: ./setup.sh --reset"
|
||||
echo "To force deployment, run: ./setup.sh --force-deploy"
|
||||
echo "To skip Homebrew packages, run: ./setup.sh --skip-brew"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Consider setting fish as your default shell: chsh -s \$(which fish)"
|
||||
|
|
|
|||
Loading…
Reference in a new issue