This repository contains my personal dotfiles configuration - a collection of customization files used to personalize my development environment across different machines. It includes shell configurations, git settings, aliases, and various utility functions. The setup is automated through a bootstrap script and supports local customizations through .local files.
Key features:
- 🔧 Automated setup via bootstrap script
- 🎨 Customizable local configurations
- 🪝 Pre-commit hooks for code quality
- 🐳 Docker support for testing
- 📦 Easy installation and management
Inspired by the dotfiles setup by Ben Selby
git clone https://github.com/dmorand17/dotfiles.git
./bootstrapThe following files can be customized for local deployment by creating a version with .local extension:
- .aliases
- .exports
- .functions
e.g. .aliases.local
Save exports, aliases, functions, etc in a .extra file. An example is below
###
### Git credentials
###
GIT_AUTHOR_NAME="Your Name"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="email@example.com"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"
git config --global user.name "$GIT_AUTHOR_NAME"
We use pre-commit hooks to ensure code quality before commits. This includes shellcheck for shell script validation.
- Install pre-commit:
# Using pip
pip install pre-commit
# Or using Homebrew on macOS
brew install pre-commit- Install shellcheck:
# On Ubuntu/Debian
sudo apt-get install shellcheck
# On macOS
brew install shellcheck
# On Windows (via scoop)
scoop install shellcheck- Install the pre-commit hooks:
pre-commit install- (Optional) Run the hooks against all files:
pre-commit run --all-filesThe pre-commit configuration includes:
- shellcheck: Static analysis for shell scripts
To skip pre-commit hooks temporarily, use:
git commit -m "Your message" --no-verifyThe project includes a Makefile to simplify container management. Here are the available commands:
# Build the development container
make build
# Run the container interactively
make run
# Clean up containers and unused images
make clean
# Show all available commands
make helpWhen running the container, you can reload the shell if needed via exec bash.
Use the following command to clean up containers and prune unused images:
make cleanThis will remove all stopped containers and clean up unused images.