technomancy / emacs-starter-kit

[ARCHIVED] this is ancient history
GNU General Public License v3.0
2.86k stars 887 forks source link

Bootstrap #78

Closed kurtharriger closed 13 years ago

kurtharriger commented 13 years ago

I replaced the init.el script with something more generic that loads each file in the init.d folder sorta like the like how the linux boot process executes each file in rc?.d folders. This allows unrelated customizations to be placed in separate files and more easily shared, disabled, overridden, or excluded from source control. To control the order of scripts when/if necessary the files are prefixed with numbers like the init process on linux.

I did see that there was system and user specific folders, which is what gave me the idea for this, but I also wanted augment the starter kit with my configuration and share on github without it being system or user specific.

The first script run will look for subdirectories so that all the load-paths can be setup before running additional init scripts. This also allows users to override existing scripts by creating a 01-overrides folder to replace existing scripts if desired.

I thought about adding the concept of a dependency list rather than numeric prefixes to control the order of load-paths and dependencies, but for starters I'm a bit new to elisp and figured that would require more effort and secondly because I felt like that would begin to duplicate elpa and I wanted to avoid unnecessary complexity. Some personalizations should not be packages and I wanted to make it as easy as possible for newbies to drop in their own customizations without modifying the init.el file making future merges more difficult.

technomancy commented 13 years ago

Thanks, but I don't think this really meshes with the direction I'm going in version 2 of the starter kit; rather than being a set of dotfiles, version 2 is a set of packages that are installed into dotfiles that are structured however the user likes. Maybe this could be implemented as its own package.