diff options
author | Jacob Janzen <jjanzenn@proton.me> | 2024-08-08 20:07:26 -0500 |
---|---|---|
committer | Jacob Janzen <jjanzenn@proton.me> | 2024-08-08 20:07:26 -0500 |
commit | f2d1dddbd590db4b3aa2837108d914b701f93bfb (patch) | |
tree | 61f2f9d788bcfc68c911148ecfd2ea41e61d2d14 /index.org | |
parent | 956b8fb71d2da727d2b92643f59cfe6c0ca0ce8b (diff) |
update index.org
Diffstat (limited to 'index.org')
-rw-r--r-- | index.org | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/index.org b/index.org deleted file mode 100644 index 77fb6db..0000000 --- a/index.org +++ /dev/null @@ -1,107 +0,0 @@ -#+title: Dotfiles =/= - -This page is the home of my dotfiles. They are written using literate programming in Emacs Org-Mode. The =install= script installs the dotfiles in their correct places and installs itself as an executable called =update-home= on the path to allow myself to run the script without having the repository downloaded on my system. - -* Directories -- [[./.config/][.config/]] -- [[./.local/][.local/]] -- [[./.ssh/][.ssh/]] - -* Files -- [[./clang-format.org][.clang-format]] -- [[./gitconfig.org][.gitconfig]] -- [[./profile.org][.profile]] -- [[./zshrc.org][.zshrc]] -- [[./wallpaper.png][.wallpaper]] - -* Install Script -It can be run as =./install=, so make it explicit what binary to run it with (POSIX shell). -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - #!/bin/sh -#+end_src - -Save the old log file. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - mv ~/.update-home.log ~/.update-home.log.old -#+end_src - -Install the dotfiles repository at =~/.dotfiles= if it doesn't already exist. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - if ! test -d ~/.dotfiles; then - echo Installing dotfiles... - git clone git@git.sr.ht:~jjanzen/.dotfiles ~/.dotfiles >> ~/.update-home.log - fi -#+end_src - -POSIX shell doesn't have =pushd= and =popd=. We do it manually by saving the current path before moving to =~/.dotfiles=. Exit if the =cd= call fails (it shouldn't). -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - CWD=$(pwd) - cd ~/.dotfiles || exit -#+end_src - -Stash any existing changes before moving to the main branch and pulling any new changes from the remote. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - { - git stash - git checkout main - git pull --rebase - } >> ~/.update-home.log -#+end_src - -If the =update-home= executable has changed, replace it and bootstrap into the new one. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - if ! diff ~/.dotfiles/install ~/.local/bin/update-home >> ~/.update-home.log; then - cp ~/.dotfiles/install ~/.local/bin/update-home || exit 1 - echo Changes have been made to the install script. - echo Running the new install script. - ~/.local/bin/update-home - exit - fi -#+end_src - -Extract each configuration file from its literate =.org= file into its correct location by running =org-babel-tangle= on each =.org= file. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - echo Installing configuration files... - find -- . -type f -name "*.org" | while read -r file; do - emacs --batch "${file}" -f package-initialize --eval '(org-babel-tangle)' >> ~/.update-home.log - done -#+end_src - -Install the [[./wallpaper.png][wallpaper]] file. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - echo Installing wallpaper... - cp wallpaper.png ~/.wallpaper -#+end_src - -Install any missing fonts by extracting the corresponding =tar.gz= archive. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - fonts_changed=false - if ! test -d ~/.local/share/fonts/ComputerModern; then - echo Computer Modern font missing. Installing... - tar xf ~/.dotfiles/local/share/fonts/ComputerModern.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true - fi - if ! test -f ~/.local/share/fonts/NFM.ttf; then - echo Nerd Font Mono font missing. Installing... - tar xf ~/.dotfiles/local/share/fonts/NFM.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true - fi - if ! test -d ~/.local/share/fonts/SauceCodePro; then - echo Source Code Pro Nerd Font missing. Installing... - tar xf ~/.dotfiles/local/share/fonts/SauceCodePro.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log - fonts_changed=true - fi -#+end_src - -If any missing fonts were installed, update the font cache. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - if [ $fonts_changed = true ]; then - echo Updating the font cache... - fc-cache -f >> ~/.update-home.log - fi -#+end_src - -Move the user back to where they came from. -#+begin_src sh :tangle ~/.dotfiles/install :mkdirp yes - cd "${CWD}" || exit -#+end_src |