]> gitweb.fluxo.info Git - rhatto/dotfiles.git/commitdiff
Cleaning up metadot code
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 27 Dec 2013 16:47:22 +0000 (14:47 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 27 Dec 2013 16:47:22 +0000 (14:47 -0200)
README.mdwn
metadot [deleted file]
modules/profile/profile.dot.link

index 901c8bebf3669de61e0d0327535ba385ffbc048e..9d4cb0a3fe25bae1ce82782fa5876e5c88452d5a 100644 (file)
@@ -1,94 +1,5 @@
-Metadot: modular dotfile management system
-==========================================
+Rhatto's dotfiles bundle
+========================
 
-Metadot allows you to easilly manage and reuse existing dotfiles repositories
-by simply cloning then to your `~/.dotfiles/modules` and renaming a few files.
-
-By being modular, it's possible to create modules for specific applications
-(vim, mutt, emcas, git, etc). By using git submodules, one can even create her
-own dotfile bundle.
-
-Inspired by [holman does dotfiles](https://github.com/holman/dotfiles) and many
-other initiatives but with a modular design to ease dotfile sharing as the
-`metadot` code is split from the dotfile folder.
-
-Instalation
------------
-
-Get the code:
-
-    git clone --recursive git://git.sarava.org/metadot.git
-
-Save the metadot repository anywhere but make sure it's available in your `$PATH`.
-Then get some modules. You can get the whole standard module bundle with:
-
-    git clone --recursive git://git.sarava.org/rhatto/dotfiles.git ~/.dotfiles
-
-This bundle will hardly suit all your needs. You can fetch individual modules or even
-start your own bundle:
-
-    mkdir -p ~/.dotfiles/modules
-    git clone --recursive git://git.sarava.org/rhatto/dotfiles/vim.git ~/.dotfiles/modules/vim
-
-Usage
------
-
-List existing modules:
-
-    metadot ls
-
-Load a module:
-
-    metadot load <module>
-
-Load all modules:
-
-    metadot load --all
-
-Update a module bundle:
-
-    metadot update
-
-Backups are made whenever a module is loaded.
-
-Layout
-------
-
-- ~/.dotfiles: where all dotfiles modules are stored
-- ~/.backups: backups of old config files
-- ~/.custom: some modules use this folder where custom configuration can override default parameters
-
-Module format
--------------
-
-Modules rest at ~/.dotfiles/modules and can be git submodules. File format is:
-
-    [path/]<name>[.dot][.link]
-
-Which means files
-
-- with a .link extension are linked at $HOME.
-- with a .dot.link extension are converted to a dotfile: vimrc.dot.link is linked as ~/.vimrc.
-- with other extensions are ignored.
-
-Also,
-
-- file structure is preserved: file apps/scripts.link is linked as $HOME/apps/scripts.
-- nested structures are allowed: config.dot/awesome.link is linked as $HOME/.config/awesome
-
-TODO
-----
-
-- Split: metadot, dotfiles and modules should be separate repositories.
-- Profile: automatic $PATH inclusion for installed script repositories.
-- Check if module is correctly installed.
-- Track loaded modules.
-- Module descriptions and dependencies.
-- Module unloading and restoration.
-- Integration with scripts project.
-- More file types:
-  - .sample: copied if no origin file exists
-  - .sh: added to the profile
-  - .mkdir: are simply created
-  - .cp: are copied
-  - .template: are copied and transformed according to environment or config variables
+This is the bundle repository for rhatto's dotfiles.
+More information at https://git.sarava.org/?p=metadot.git
diff --git a/metadot b/metadot
deleted file mode 100755 (executable)
index 47af6ac..0000000
--- a/metadot
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/bin/bash
-#
-# metadot: a dotfile management system
-#
-
-# Parameters
-OPT="$1"
-DATE="`date +%Y%m%d%I%M%S`"
-BASENAME="`basename $0`"
-DOT="$HOME/.dotfiles"
-MODULES="$DOT/modules"
-BACKUPS="$HOME/.backups/$DATE"
-
-# Backup a file
-function metadot_backup {
-  local file="$HOME/$1"
-  
-  if [ -e "$file" ] || [ -h "$file" ]; then
-    local folder="$BACKUPS/`dirname $1`"
-
-    #echo "Backing up `basename $1`..."
-    mkdir -p $folder
-    mv $file $folder
-  fi
-}
-
-# Find contents of a module
-function metadot_find {
-  local module="$1"
-  ( cd $MODULES/$module && find -name '*.link' -or -name '*.dot.link' ) | sed -e 's|./||'
-}
-
-# Load a module
-function metadot_load {
-  local module="$1"
-  local destname
-  local dirname
-
-  if [ -d "$MODULES/$module" ]; then
-
-    echo "Loading module $module..."
-
-    for file in `metadot_find $module`; do
-      echo "Processing $file..."
-
-      # Get the dirname, replacing string.dot with .string
-      dirname="`echo $file | sed -e 's|\([^/]*\).dot/|.\1/|g'`"
-      dirname="`dirname $dirname`"
-
-      if echo $file | grep -q '.dot.link'; then
-        destname=".`basename $file .dot.link`"
-      else
-        destname="`basename $file .link`"
-      fi
-
-      if [ "$dirname" != "." ]; then
-        #echo "Creating $HOME/$dirname..."
-        mkdir -p $HOME/$dirname
-      else
-        dirname=""
-      fi
-
-      metadot_backup "$dirname/$destname"
-
-      #echo "Installing symlink $dirname/$destname..."
-      ln -s $MODULES/$module/$file $HOME/$dirname/$destname
-
-    done
-  else
-    echo "No such module $module"
-  fi
-}
-
-# Parsing.
-if [ -z "$OPT" ]; then
-  echo "usage: $BASENAME <option> [arguments]"
-  exit 1
-elif [ "$OPT" == "ls" ]; then
-  ls -1 $MODULES
-elif [ "$OPT" == "version" ]; then
-  ( cd $DOT && git log -n 1 )
-elif [ "$OPT" == "update" ]; then
-  if [ -d "$DOT/.git" ]; then
-    ( cd $DOT && git pull origin master && git submodule update --init )
-  fi
-elif [ "$OPT" == "backup" ]; then
-  shift
-  metadot_backup $1
-elif [ "$OPT" == "load" ]; then
-  shift
-
-  if [ -z "$1" ]; then
-    echo "usage: $BASENAME load [module(s)|--all]"
-  fi
-
-  if [ "$1" == "--all" ]; then
-    modules="`ls $MODULES`"
-  else
-    modules="$*"
-  fi
-
-  for module in $modules; do
-    metadot_load $module
-  done
-  echo "Backups saved at $BACKUPS."
-fi
index 5ef25dfc25ab5ac19b673b3b409fe59bc235a1f1..cad7fd12d7abd9ccaf1e45cfcaecaae5242db27c 100644 (file)
@@ -17,7 +17,7 @@ fi
 
 # Set PATH
 PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
-export PATH=$PATH:$HOME/.dotfiles:$HOME/apps/scripts:$HOME/apps/brweather/brweather
+export PATH=$PATH:$HOME/apps/metadot:$HOME/apps/scripts:$HOME/apps/brweather/brweather
 
 # See http://www.caliban.org/bash/#bashtips
 export CDPATH=".:~:~/code:~/data:~/file:/var/www/data"