-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathbashrc
More file actions
127 lines (101 loc) · 2.76 KB
/
bashrc
File metadata and controls
127 lines (101 loc) · 2.76 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
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/env bash
#####################
# tag:configuration[]
# Keycloak
# https://stackoverflow.com/a/303628320 (about readonly keyword)
readonly KEYCLOAK_3_VERSION=3.4.3.Final
readonly KEYCLOAK_4_VERSION=4.8.3.Final
# https://stackoverflow.com/a/35006505 (about BASH_SOURCE variable)
export KEYCLOAK_LAB=`cd "$(dirname "$BASH_SOURCE")/.."; pwd`
export KEYCLOAK_HOME=$KEYCLOAK_LAB/keycloak-bin # <- must be relative to $KEYCLOAK_LAB!
export KEYCLOAK_PORT_OFFSET=100
export PATH=$KEYCLOAK_HOME/bin:$PATH
# UAA
export UAA_HOME=$KEYCLOAK_LAB/uaa # <- must be relative to $KEYCLOAK_LAB!
export UAA_REPO=https://github.com/cloudfoundry/uaa
export UAA_VERSION=4.28.0
# end:configuration[]
#####################
##########################
# tag:keycloak-functions[]
keycloak-lab() {
cd $KEYCLOAK_LAB
}
keycloak-use() {
pushd $KEYCLOAK_LAB &> /dev/null
case $1 in
3|4)
rm -f keycloak-bin
[ "$1" = "3" ] && \
ln -s keycloak-$KEYCLOAK_3_VERSION keycloak-bin || \
ln -s keycloak-$KEYCLOAK_4_VERSION keycloak-bin
export KEYCLOAK_VERSION=`keycloak-version`
;;
*) echo "Use 3 or 4!";;
esac
popd &> /dev/null
}
keycloak-start() {
$KEYCLOAK_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=$KEYCLOAK_PORT_OFFSET
}
keycloak-version() {
readlink $KEYCLOAK_LAB/keycloak-bin | cut -d- -f2
}
keycloak-install() {
local dir=keycloak-$KEYCLOAK_VERSION
local installer=keycloak-$KEYCLOAK_VERSION.tar.gz
pushd $KEYCLOAK_LAB &> /dev/null
rm -rf $dir
[ -f $installer ] && {
tar xvfz $installer &> /dev/null && \
echo "Keycloak $installer installed!" || \
echo "Fail to install $installer"
} || echo "$installer not found!"
popd &> /dev/null
}
# end:keycloak-functions[]
##########################
#####################
# tag:uaa-functions[]
uaa-install() {
local installer=uaa.tar.gz
local ret=0
pushd $KEYCLOAK_LAB &> /dev/null
echo "Removing old UAA installation ..."
rm -rf uaa
if [ ! -f $installer ]
then
echo "Cloning $UAA_REPO ..."
git clone $UAA_REPO &> /dev/null && {
echo "Creating $installer ..."
tar cvf $installer uaa/ &> /dev/null || ret=$?
} || ret=$?
fi
if [ $ret = 0 ]
then
[ -d uaa ] || {
echo "Extracting $installer ..."
tar xvf $installer &> /dev/null || ret=$?
}
echo "Configuring to use version $UAA_VERSION ..."
cd uaa
git checkout $UAA_VERSION &> /dev/null
fi
popd &> /dev/null
return $ret
}
uaa-start() {
if [ -d $UAA_HOME ]
then
pushd $UAA_HOME &> /dev/null
./gradlew run
popd &> /dev/null
else
echo "UAA is not installed in $UAA_HOME!"
return 1
fi
}
# end:uaa-functions[]
#####################
[ -L $KEYCLOAK_LAB/keycloak-bin ] || keycloak-use 3
export KEYCLOAK_VERSION=`keycloak-version`