Skip to content

mcclayton/MacSetup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

299 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

 __  __              ____       _
|  \/  | __ _  ___  / ___|  ___| |_ _   _ _ __
| |\/| |/ _` |/ __| \___ \ / _ \ __| | | | '_ \
| |  | | (_| | (__   ___) |  __/ |_| |_| | |_) |
|_|  |_|\__,_|\___| |____/ \___|\__|\__,_| .__/
                                        |_|

CI

๐Ÿš€ Complete Automated Mac Development Environment Setup ๐Ÿš€

About

This repository contains an install script which, when run, will completely set up a Macintosh machine configured to Michael Clayton's preferred and opinionated development environment. It will configure and install dot files, applications, packages, et cetera.

The script is designed to be interactive so users can still pick and choose what they want to install/configure, however, you may still want to look through individual Dot Files and pick/choose what you want at a more granular level.

This script is designed to be safe and can be run multiple times.

Usage

Simply run the installer via the command:

$ ./start.sh

This will present the user with a choice to run the installer in one of two modes.

โ•ญโ”€ Choose Execution Environment: โ”€โ•ฎ
โ”‚  > Sandbox (Docker)             โ”‚
โ”‚    Current Machine              โ”‚
โ”‚    Quit                         โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Interactive terminals use Bash-native arrow-key menus. Non-interactive runs, including CI and piped Docker smoke tests, fall back to numeric prompts so the installer remains scriptable and portable.

  1. Sandbox Environment Installation/Setup changes are made in a dockerized sandbox environment and will not affect the current actual machine. The sandbox can run either an old Vim compatibility profile or a modern Vim + Node profile so Vim plugin fallback and full IDE flows can both be tested.
  2. Current Machine Installation/Setup changes made in this environment will modify and affect the current actual machine.

Quick Reference

Command Purpose
./start.sh Open the main installer entrypoint and choose Sandbox or Current Machine mode.
./diff.sh Compare repo-managed config against the current machine to inspect drift.
./test.sh Run local shell, helper, and isolated installer checks.
./test.sh docker Run Docker-backed installer smoke checks.

Repository Layout

  • bin/ contains the implementation scripts behind the root command wrappers.
  • lib/macsetup/ contains the installer framework: shared constants, helpers, logging, prompts, backups, and application configuration helpers.
  • sections/ contains the ordered installation sections that call into the framework.
  • config/ contains desired machine configuration such as dotfiles, Git config, VSCode settings, terminal preferences, app preferences, and asdf tool versions.
  • assets/ contains copied/static payloads such as fonts, wallpapers, Vim runtime files, the Aerial screensaver, splash images, and demo media.

Testing

Run the local shell and installer checks with:

$ ./test.sh

Docker-backed smoke checks are also available through ./test.sh docker.

Demo

Demo

About

Complete Automated Mac Development Environment Setup ๐Ÿš€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors