Add installation script
- ~/.config/shell/init_dofiles.sh "installs" the provided dotfiles when sourced in an interactive shell - see the README.md for instructions
This commit is contained in:
parent
c5ce823188
commit
a3ed4fbca6
2 changed files with 69 additions and 0 deletions
46
.config/shell/init_dotfiles.sh
Executable file
46
.config/shell/init_dotfiles.sh
Executable file
|
@ -0,0 +1,46 @@
|
|||
# This file initializes the ~/.dotfiles as a bare repository
|
||||
|
||||
|
||||
_command_exists() {
|
||||
command -v "$1" 1>/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
cd $HOME
|
||||
|
||||
|
||||
# Get the latest ~/.dotfiles, possibly replacing the old ones
|
||||
rm -rf "$HOME/.dotfiles" >/dev/null
|
||||
git clone --bare https://git.webartifex.biz/alexander/dotfiles.git "$HOME/.dotfiles"
|
||||
|
||||
# Distribute the dotfiles in $HOME
|
||||
git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME checkout --force
|
||||
git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME config --local status.showUntrackedFiles no
|
||||
|
||||
|
||||
if _command_exists zsh; then
|
||||
|
||||
# (Re-)Install oh-my-zsh
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
rm -rf $ZSH >/dev/null
|
||||
# Let's NOT use the main repository but our personal fork
|
||||
git clone --origin fork --branch forked https://git.webartifex.biz/alexander/oh-my-zsh.git $ZSH
|
||||
cd $ZSH
|
||||
git remote add origin https://github.com/ohmyzsh/ohmyzsh.git
|
||||
cd $HOME
|
||||
|
||||
# (Re-)Install zplug
|
||||
export ZPLUG_HOME="$HOME/.zplug"
|
||||
rm -rf $ZPLUG_HOME >/dev/null
|
||||
git clone https://github.com/zplug/zplug $ZPLUG_HOME
|
||||
|
||||
# Set up all the zplug plugins (-i so that the new ~/.zshrc is sourced)
|
||||
zsh -i -c "zplug install"
|
||||
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
echo "Probably it's a good idea to restart the shell"
|
||||
echo "Make sure to start bash or zsh as a login shell the next time"
|
||||
echo
|
23
README.md
23
README.md
|
@ -1,3 +1,26 @@
|
|||
# Dotfiles
|
||||
|
||||
This repository contains useful (config) files that I use on my machines.
|
||||
|
||||
|
||||
## Initialization
|
||||
|
||||
On a freshly set up machine, run:
|
||||
|
||||
```bash
|
||||
curl https://gitlab.webartifex.biz/alexander/dotfiles/-/raw/main/.config/shell/init_dotfiles.sh \
|
||||
> /tmp/init_dotfiles.sh \
|
||||
&& source /tmp/init_dotfiles.sh
|
||||
```
|
||||
|
||||
This gives you a local copy of the latest version of this repository
|
||||
(located in `~/.dotfiles`)
|
||||
and initializes all the dotfiles provided here on the system.
|
||||
Further, `zsh` is set up
|
||||
with [`oh-my-zsh`](https://ohmyz.sh/) and [`zplug`](https://github.com/zplug/zplug)
|
||||
if it is installed.
|
||||
|
||||
**Note**: Log out and in again so that `bash` and `zsh` run as *login* shells.
|
||||
Otherwise, `~/.profile` is probably *not* sourced.
|
||||
|
||||
**Important**: Don't forget to back up your current dotfiles!
|
||||
|
|
Loading…
Reference in a new issue