Skip to content

iangabrielsanchez/dev-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Development Environment Setup

A comprehensive macOS development environment setup script with beautiful logging and automatic configuration backup.

Note: This is just me geeking out and automating my entire dev setup because I got tired of manually configuring everything every time I set up a new machine. Feel free to fork it and make it your own! 🤓

macOS Zsh Homebrew

✨ Features

  • 🎨 Beautiful colored logging with emojis and status indicators
  • 🛡️ Automatic config backup before overwriting existing files
  • 🔐 Complete SSH & GPG setup for GitHub authentication
  • 📦 Essential development tools installation via Homebrew
  • ⚙️ Git configuration with professional defaults
  • 🎯 GUI applications for productivity and development
  • 👤 User-agnostic - works for any macOS user automatically

🛠 What Gets Installed

CLI Tools

  • git - Version control system
  • gh - GitHub CLI
  • nano - Text editor
  • fnm - Fast Node Manager
  • jq - JSON processor
  • tree - Directory structure visualization
  • htop - Interactive process viewer
  • wget & curl - Download utilities
  • pinentry-mac - GPG passphrase entry for macOS

GUI Applications

Development Setup

🚀 Quick Start

  1. Clone the repository:

    git clone https://github.com/your-username/dev-config.git
    cd dev-config
  2. Make the script executable:

    chmod +x preconfigure.sh
  3. Run the setup:

    ./preconfigure.sh
  4. Follow the prompts for Git username/email and GitHub authentication

📁 Configuration Files

File Description
.aliases Custom shell aliases for Git shortcuts
.zshrc Zsh configuration with plugins and PATH setup
.p10k.zsh Powerlevel10k theme configuration
.nano/ Nano syntax highlighting files
WindowProfile.json iTerm2 window profile configuration (not used by script)

🎨 Git Aliases Included

  • teka - Quick commit with 'WIP' message ("teka" means "wait" in Tagalog - useful when quickly switching branches)
  • game - Soft reset to previous commit (Filipino slang for "okay, I'm ready to get back to it")
  • pahabol - Amend last commit without editing message ("pahabol" means "to catch up" in Tagalog)
  • gpr - Checkout GitHub pull request
  • a - Edit and reload aliases

Note: The first three aliases reflect Filipino expressions that capture common Git workflows in a culturally meaningful way.

🔧 Git Configuration

The script sets up Git with these professional defaults:

[core]
    autocrlf = false
    excludesfile = ~/.gitignore
    eol = lf
    ignorecase = false
    editor = nano

[pull]
    ff = only

[push]
    autoSetupRemote = true

[commit]
    gpgsign = true

🛡️ Security Features

  • SSH key generation with ed25519 encryption
  • GPG key setup for commit signing
  • Automatic key addition to GitHub
  • Secure passphrase handling with pinentry-mac
  • Config file backup before modifications

📋 Prerequisites

🎯 Post-Installation

After running the script:

  1. Restart your terminal to apply Zsh changes
  2. Configure Powerlevel10k by running p10k configure
  3. Verify GitHub authentication with gh auth status
  4. Test Git signing with a commit

🔄 Backup & Recovery

The script automatically backs up existing configuration files to:

~/.config-backup-YYYYMMDD-HHMMSS/

To restore previous configs:

cp ~/.config-backup-*/filename ~/.filename

🎨 Sample Output

🚀 [STEP] Installing CLI tools...
ℹ️  [INFO] Installing git...
✅ [SUCCESS] git installed successfully
ℹ️  [INFO] Installing gh...
✅ [SUCCESS] gh installed successfully

🚀 [STEP] Setting up GitHub CLI...
ℹ️  [INFO] Starting GitHub CLI authentication...
✅ [SUCCESS] GitHub CLI authenticated successfully

🚀 [STEP] Configuring Git...
ℹ️  [INFO] Setting up Git configuration...
✅ [SUCCESS] Git configured with comprehensive settings

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test the setup script
  5. Submit a pull request

📄 License

This project is open source and available under the MIT License.

🙏 Acknowledgments


Made with ❤️ for developers who love beautiful, automated setups

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors