This repository has been archived by the owner on Oct 25, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloadcore.sh
executable file
·99 lines (76 loc) · 2.47 KB
/
loadcore.sh
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
function _setConf(){
local varname="$1"
local varvalu="$2"
local location="$3"
local replace="$4"
local existing=`grep "${varname}|||" $location`
if [ "$existing" != "" ]; then
[ "$replace" = "" ] && echo "$varname already exists, not setting" && return 0;
# Replace (by removing existing)
tmp=`mktemp`
cp $location $tmp # backup purposes
grep -v "${varname}|||" $location > /tmp/loc_without
cp /tmp/loc_without $location;
fi
echo "${varname}|||${varvalu}" >> $location;
}
function _getConf(){
local varname="$1"
local location="$2"
local noprompt="$3"
if ! [ -e $location ]; then
echo "$location does not exist, creating..."
if ! [ "$location" != "$SHELL_UTILS" ]; then
mkdir -p `dirname $location`
touch $location
else
echo Please set SHELL_UTILS location
return 0
fi
fi
varvalu=`grep "${varname}|||" $location | sed -r 's/[^|]+\|\|\|(.*)/\1/'`
if [ "$varvalu" = "" ]; then
if [ "$noprompt" != "" ]; then
return 1; # return error
fi
echo "$varname is unset, please set:" && read varvalu
_setConf $varname $varvalu $location
fi
export $varname=$varvalu
}
function getVar(){
_getConf $1 $SHELL_UTILS_VARFILE $2
}
function getDir(){
_getConf $1 $SHELL_UTILS_DIRFILE $2
}
function detectShellUtils(){
export SHELL_UTILS_VARFILE=~/.config/ShellUtils/vars
export SHELL_UTILS_DIRFILE=~/.config/ShellUtils/dirs
unset SHELL_UTILS
getDir SHELL_UTILS "noprompt";
if [ "$SHELL_UTILS" = "" ]; then
# try set loc via zsh
loc=""
if [[ "`dirname $0:A`" =~ "/" ]]; then
loc="`dirname $0:A`"
else
# else try via bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
loc="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
fi
[ "$loc" = "" ] && echo "Could not resolve script path. Please specify path below" && read loc;
_setConf SHELL_UTILS $loc $SHELL_UTILS_DIRFILE
export SHELL_UTILS=$loc
unset loc
fi
}
detectShellUtils
. $SHELL_UTILS/core/load_modules.source
. $SHELL_UTILS/startup_hooks