80 lines
2.4 KiB
Org Mode
80 lines
2.4 KiB
Org Mode
#+TITLE: Install
|
|
|
|
* Stow all modules
|
|
Basically get all folders excluding the '.git' and '.' folder, then just stow them.
|
|
#+BEGIN_SRC sh
|
|
folders=`find . -maxdepth 1 -type 'd' -not -name '.git' -not -name '.'`;
|
|
|
|
# Symlink profiles
|
|
for pkg in $folders; do
|
|
echo "Stowing " $pkg;
|
|
stow $pkg
|
|
done
|
|
#+END_SRC
|
|
* Emacs support
|
|
** Get all modules in Dotfiles
|
|
The main function used to retrieve all the stowable modules in the Dotfiles directory.
|
|
#+BEGIN_SRC elisp
|
|
(defun get-modules ()
|
|
(interactive)
|
|
(cdr
|
|
(reverse
|
|
(split-string
|
|
(shell-command-to-string "find . -maxdepth 1 -type 'd' -not -name '.git' -not -name '.'")
|
|
"\n"))))
|
|
#+END_SRC
|
|
** Stow module
|
|
Little elisp snippet to stow a specific module in the Dotfiles folder using ivy.
|
|
#+BEGIN_SRC elisp
|
|
(async-shell-command (format "stow %s" (completing-read "Stow module: " (get-modules) nil t)) "*stow-output*" "*stow-error*")
|
|
#+END_SRC
|
|
** Delete module
|
|
#+BEGIN_SRC elisp
|
|
(async-shell-command
|
|
(format "stow -D %s" (completing-read "Delete module: " (get-modules) nil t))
|
|
"*stow-output*" "*stow-error*")
|
|
#+END_SRC
|
|
* Generate user directories
|
|
This makes some useful directories that are used by the system and/or by me. I
|
|
split these into two sections so you can execute the ones you think are useful.
|
|
** System folders
|
|
#+BEGIN_SRC sh
|
|
mkdir ~/.local;
|
|
mkdir ~/.local/src;
|
|
mkdir ~/.local/bin;
|
|
|
|
mkdir ~/.config;
|
|
#+END_SRC
|
|
** User folders
|
|
Firstly the essentials for a good user experience™
|
|
#+BEGIN_SRC sh
|
|
mkdir ~/Downloads ~/Pictures ~/Music;
|
|
#+END_SRC
|
|
|
|
Then generate the other stuff that I use (mostly).
|
|
#+BEGIN_SRC sh
|
|
mkdir ~/Text;
|
|
mkdir ~/School;
|
|
mkdir ~/Code;
|
|
mkdir ~/Code/Learning;
|
|
mkdir ~/Code/Projects;
|
|
mkdir ~/Code/Templates;
|
|
#+END_SRC
|
|
* Clone templates
|
|
These are templates coded by me (MIT licensed) which are basically boilerplate
|
|
helpers for differing languages. They allow me to quickly start coding up
|
|
projects as they remove the hassle of setting the build system and source
|
|
directories up manually.
|
|
|
|
They're cloned into =~/Code/Templates= not only so you can hack on them as you
|
|
wish but also so you can generate templates even when offline just by copying
|
|
the template you want and removing/replacing the '.git' directory in it.
|
|
|
|
#+BEGIN_SRC sh
|
|
declare -a templates=("CTemplate" "CPPTemplate" "PythonTemplate"
|
|
"NodeTemplate" "ArduinoTemplate");
|
|
for template in ${templates[@]}; do
|
|
git clone https://github.com/odavep/$template ~/Code/Templates/$template;
|
|
done
|
|
#+END_SRC
|