-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshell-includes.sh
More file actions
60 lines (54 loc) · 1.95 KB
/
shell-includes.sh
File metadata and controls
60 lines (54 loc) · 1.95 KB
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
#===============================================================================
# NAME
# shell-includes.sh - Meta to file for all libraries in the project
#
# SYNOPSIS
# . shell-includes.sh
#
# DESCRIPTION
#
# BUGS
# https://github.com/dracorp/shell-includes/issues
#
# COPYRIGHT AND LICENSE
# Copyright (C) 2010-2013 Victor Engmark
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
#===============================================================================
if [[ -z "$BASH" ]]; then
return 1
fi
[[ -n "$LIB_SOURCE_SH" ]] && return
LIB_SOURCE_SH=1
get_sh_directory() {
local SOURCE DIR
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" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
echo $DIR
}
LIBRARY_LOCALIZATION=$(get_sh_directory)
LIBRARY=${LIBRARY:-$LIBRARY_LOCALIZATION}
for lib in "$LIBRARY/"*.sh; do
if [[ "${lib##*/}" = "${BASH_SOURCE[0]##*/}" ]]; then
continue
fi
source "$lib"
done
unset LIBRARY LIBRARY_LOCALIZATION