Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Setup via ansible 🤖 Requires 2.15.5+ and tested on macOS Ventura 13.6

zsh

⚠️ Critical Issues (Refactoring in Progress)

This playbook has known safety issues:

  • .gitconfig is symlinked — replaces existing git config with no backup on work machines
  • .zshrc is symlinked with no escape hatch — local customisations are awkward
  • .oh-my-zsh is symlinked — updates modify the repository, not a local install
  • No backup of existing dotfiles before overwriting

Status: Refactoring is underway following a TDD strategy. See tests/README.md for the test-driven redesign plan.

For now: Test this carefully in a VM or isolated user account before running on your main machine.

Testing the Refactoring

To run the test suite during refactoring:

# Layer 2: Molecule tests (requires Docker)
pip install molecule ansible-core molecule-docker
molecule test

For details, see tests/README.md.

Installation

  1. Clone this repo and run make all from inside the dotfiles directory

    git clone git@github.com:ellaqezi/dotfiles.git
    # remember to set NAME and EMAIL below
    make -C dotfiles all [NAME=<github-user> EMAIL=<github-email>]
    

    The Makefile instructs you on what it requires e.g. NAME, EMAIL, Password (refers to your SUDO password)

Step-by-step

  1. Edit the templates/.gitconfig file with your own user.name and user.email, and move it to home/.gitconfig

    [user]
    	name = ellaqezi 
    	email = ellaqezi@gmail.com
    
  2. [OPTIONAL] Install pip, if not yet installed on the machine

    sudo easy_install pip
    
  3. [OPTIONAL] Install ansible, if not yet installed on the machine

    sudo pip install ansible
    
    # [Ubuntu]
    sudo pip install --prefix /usr/local ansible
    
  4. Run the playbook to setup dotfiles, provide become i.e. SUDO password

    cd ansible/
    ansible-playbook setup-dotfiles.yml --ask-become-pass
    
    # ... OR when ansible/hosts is not yet symlinked into place
    ansible-playbook -i hosts setup-dotfiles.yml --ask-become-pass 
    

    Note: become i.e. SUDO password is required to ensure docker-py is installed

References

  1. Ansible | installation
  2. Ansible | tips n tricks
  3. Homebrew
  4. Oh my zsh
  5. Powerline fonts
  6. Spaceship prompt
  7. ansible/ansible#51513
  8. ansible/ansible#54347

About

dotfiles setup via ansible 🤖

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages