This should work on Windows (wsl2), macOS, and Linux (any distro).
This automatically installs and configures the following:
- brew
- bourne shell (dash or busybox)
- pyenv
- python
- zsh
- oh-my-zsh
- ansible
- vim
- all the packages listed in brewfile and brewfile-linux or brewfile-mac
- all the aliases and functions listed in sh_profile_custom
curl -L https://raw.githubusercontent.com/JtMotoX/dotfiles/main/setup.sh | sh -s -- --checkout "main"
OR
wget -O - https://raw.githubusercontent.com/JtMotoX/dotfiles/main/setup.sh | sh -s -- --checkout "main"
-
Install git
-
Run
git -C ~ clone https://github.com/JtMotoX/dotfiles.git
-
Run
~/dotfiles/setup.sh
Spin up a container and execute ~/dotfiles/setup.sh
Alpine:
docker run --rm -it -v "$(pwd):/dotfiles:ro" alpine sh -c "apk add --no-cache sudo && adduser -D myuser -u $(id -u) -g $(id -g) -s \$(command -v ash) && echo 'myuser ALL=(ALL) NOPASSWD: ALL' >/etc/sudoers.d/myuser && ln -s /dotfiles /home/myuser/dotfiles && echo 'Ready for testing' && su - myuser"
Ubuntu:
docker run --rm -it -v "$(pwd):/dotfiles:ro" ubuntu sh -c "apt-get update && apt-get install -y sudo && useradd -m myuser -u $(id -u) -g $(id -g) -s \$(command -v bash) && echo 'myuser ALL=(ALL) NOPASSWD: ALL' >/etc/sudoers.d/myuser && ln -s /dotfiles /home/myuser/dotfiles && echo 'Ready for testing' && su - myuser"
Arch:
docker run --rm -it -v "$(pwd):/dotfiles:ro" archlinux sh -c "pacman -Syu --noconfirm --needed sudo && if ! getent group $(id -g) >/dev/null 2>&1; then groupadd -g $(id -g) mygroup; fi && useradd -m -u $(id -u) -g $(id -g) -N -s \$(command -v bash) myuser && echo 'myuser ALL=(ALL) NOPASSWD: ALL' >/etc/sudoers.d/myuser && ln -s /dotfiles /home/myuser/dotfiles && echo 'Ready for testing' && su - myuser"
Alma:
docker run --rm -it -v "$(pwd):/dotfiles:ro" almalinux sh -c "yum install -y sudo && sed -i -E 's/^((UID|GID)_MIN\s*).*$/\11/' /etc/login.defs && if ! getent group $(id -g) >/dev/null 2>&1; then groupadd -g $(id -g) mygroup; fi && useradd -m -u $(id -u) -g $(id -g) -N -s \$(command -v bash) myuser && echo 'myuser ALL=(ALL) NOPASSWD: ALL' >/etc/sudoers.d/myuser && chmod 0440 /etc/sudoers.d/myuser && ln -s /dotfiles /home/myuser/dotfiles && echo 'Ready for testing' && su - myuser"