-
Notifications
You must be signed in to change notification settings - Fork 0
/
bootstrap
58 lines (54 loc) · 1.45 KB
/
bootstrap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Source this from bash_profile to bootstrap dottle
if [[ "$ZSH_NAME" == "zsh" ]]; then
export DOTTLE_HOME=`dirname ${(%):-%x}`
else
export DOTTLE_HOME=`dirname $BASH_SOURCE`
fi
function dottle_padd() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
export PATH="${PATH:+"$PATH:"}$1"
fi
}
function dottle() {
if [[ -z "$1" ]]; then
$DOTTLE_HOME/bin/commands/dottle-help dottle
elif [[ "$1" == "cd" ]]; then
if [[ -z "$2" ]]; then
cd $DOTTLE_HOME
elif [[ -d "$DOTTLE_HOME/topics/$2" ]]; then
cd "$DOTTLE_HOME/topics/$2"
else
echo "No such repository: $2"
fi
elif [[ "$1" == "init" ]]; then
local topic=$2
export TOPIC_PATH="$DOTTLE_HOME/topics/$topic"
if [[ -d "$TOPIC_PATH" ]]; then
# Add a topic's bin directory to the path
if [[ -d $TOPIC_PATH/bin ]]; then
dottle_padd $TOPIC_PATH/bin
fi
# Initialize the topic
if [[ -f $TOPIC_PATH/init ]]; then
source $TOPIC_PATH/init
fi
# Initialize the topic platform-specific
local platform=`uname | tr '[A-Z]' '[a-z]'`
if [[ $platform == "darwin" ]]; then
platform=osx
fi
if [[ -f $TOPIC_PATH/init-$platform ]]; then
source $TOPIC_PATH/init-$platform
fi
fi
unset TOPIC_PATH
else
COMMAND_SCRIPT=$DOTTLE_HOME/bin/commands/dottle-$1
$COMMAND_SCRIPT ${*:2}
fi
}
export -f dottle
for topic in $(dottle list using)
do
dottle init $topic
done