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
./bootstrap
The 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-files
The pre-commit configuration includes:
- shellcheck: Static analysis for shell scripts
To skip pre-commit hooks temporarily, use:
git commit -m "Your message" --no-verify
The 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 help
When 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 clean
This will remove all stopped containers and clean up unused images.