summaryrefslogtreecommitdiff
path: root/share/rcm.sh.in
diff options
context:
space:
mode:
authorGravatar Pablo Olmos de Aguilera Corradini and Mike Burns <pablo@glatelier.org>2013-10-27 17:16:30 -0300
committerGravatar Mike Burns <mike@mike-burns.com>2014-02-18 16:57:01 +0100
commit3700be9ce6802653df30c413179d93316bf0b291 (patch)
tree5e78da946c28e12b4a5fb760779d8e8689c02540 /share/rcm.sh.in
parent83c4875e23bb7595689ddd228a9825264b15f318 (diff)
Force some directories to be symlinks
Typically a directory structure is copied instead of symlinked, while files are symlinked. However, some cases require symlinked dirs: git submodules, vim plugins, and so on. This introduces a `SYMLINK_DIRS` option for rcrc(5) that takes a space-separated list of "exclude patterns". Any directory matching these patterns is symlinked. This also introduces a `-S` argument for lsrc(1), rcup(1), and rcdn(1). This argument takes a pattern, for one-off directory symlinking. It can be repeated. This also introduces `-S` and `-s` for mkrc(1). `-S` will re-install the files as symlinks, and `-s` will not. This does work with `-C`, though perhaps unintuitively - we don't know what the user means in this case. However, it will not crash. Bug: `-s` does not work right if `SYMLINK_DIRS` is set. Bug #36 addresses this.
Diffstat (limited to 'share/rcm.sh.in')
-rw-r--r--share/rcm.sh.in8
1 files changed, 7 insertions, 1 deletions
diff --git a/share/rcm.sh.in b/share/rcm.sh.in
index c9a98b3..f4ee212 100644
--- a/share/rcm.sh.in
+++ b/share/rcm.sh.in
@@ -10,7 +10,7 @@ ERROR=echo_error
VERBOSE=:
MKDIR=mkdir
LN="ln -s"
-CP=cp
+CP="cp -R"
RM=rm
DEFAULT_DOTFILES_DIR=$HOME/.dotfiles
MV=mv
@@ -117,6 +117,12 @@ run_hooks() {
fi
}
+de_dot() {
+ $DEBUG "de_dot $1"
+ $DEBUG " with DEST_DIR: $DEST_DIR"
+ echo $1 | sed -e "s|$DEST_DIR/||" | sed -e 's/^\.//'
+}
+
: ${RCRC:=$HOME/.rcrc}
if [ -r "$RCRC" ]; then