@@ -4,69 +4,66 @@ set -e -o pipefail
4
4
5
5
# Workaround for Travis CI cookbook https://github.com/travis-ci/travis-ci/issues/4862,
6
6
# where $PATH will be extended with relative paths to the NPM binaries.
7
- PATH=` echo $PATH | sed -e ' s/:\.\/node_modules\/\.bin//' `
7
+ PATH=` echo ${ PATH} | sed -e ' s/:\.\/node_modules\/\.bin//' `
8
8
9
9
TUNNEL_FILE=" BrowserStackLocal-linux-x64.zip"
10
- TUNNEL_URL=" https://www.browserstack.com/browserstack-local/$TUNNEL_FILE "
10
+ TUNNEL_URL=" https://www.browserstack.com/browserstack-local/${ TUNNEL_FILE} "
11
11
TUNNEL_DIR=" /tmp/browserstack-tunnel"
12
- TUNNEL_LOG=" $LOGS_DIR /browserstack-tunnel.log"
12
+ TUNNEL_LOG=" ${ LOGS_DIR} /browserstack-tunnel.log"
13
13
14
- BROWSER_STACK_ACCESS_KEY=` echo $BROWSER_STACK_ACCESS_KEY | rev`
14
+ BROWSER_STACK_ACCESS_KEY=` echo ${ BROWSER_STACK_ACCESS_KEY} | rev`
15
15
16
16
# Cleanup and create the folder structure for the tunnel connector.
17
- rm -rf $TUNNEL_DIR $ BROWSER_PROVIDER_READY_FILE
18
- mkdir -p $TUNNEL_DIR
19
- touch $TUNNEL_LOG
17
+ rm -rf ${ TUNNEL_DIR} ${ BROWSER_PROVIDER_READY_FILE}
18
+ mkdir -p ${ TUNNEL_DIR}
19
+ touch ${ TUNNEL_LOG}
20
20
21
- cd $TUNNEL_DIR
21
+ cd ${ TUNNEL_DIR}
22
22
23
23
# Download the browserstack local binaries.
24
- curl $TUNNEL_URL -o $TUNNEL_FILE 2> /dev/null 1> /dev/null
24
+ curl ${ TUNNEL_URL} -o ${ TUNNEL_FILE} 2> /dev/null 1> /dev/null
25
25
26
26
# Extract the browserstack local binaries from the tarball.
27
27
mkdir -p browserstack-tunnel
28
- unzip -q $TUNNEL_FILE -d browserstack-tunnel
28
+ unzip -q ${ TUNNEL_FILE} -d browserstack-tunnel
29
29
30
30
# Cleanup the download directory.
31
- rm $TUNNEL_FILE
31
+ rm ${ TUNNEL_FILE}
32
32
33
33
ARGS=" "
34
34
35
35
# Set tunnel-id only on Travis, to make local testing easier.
36
- if [ ! -z " $TRAVIS_JOB_ID " ]; then
37
- ARGS=" $ARGS --local-identifier $TRAVIS_JOB_ID "
36
+ if [ ! -z " ${ TRAVIS_JOB_ID} " ]; then
37
+ ARGS=" ${ ARGS} --local-identifier ${ TRAVIS_JOB_ID} "
38
38
fi
39
39
40
- echo " Starting Browserstack Local in the background, logging into:"
41
- echo " $TUNNEL_LOG "
42
- echo " ---"
43
- echo " $ARGS "
40
+ echo " Starting Browserstack Local in the background, logging into: ${TUNNEL_LOG} "
44
41
45
42
# Extension to the BrowserStackLocal binaries, because those can't create a readyfile.
46
43
function create_ready_file {
47
44
48
45
# To be able to exit the tail properly we need to have a sub shell spawned, which is
49
46
# used to track the state of tail.
50
- { sleep 120; touch $BROWSER_PROVIDER_ERROR_FILE ; } &
47
+ { sleep 120; touch ${ BROWSER_PROVIDER_ERROR_FILE} ; } &
51
48
52
- TIMER_PID=$!
49
+ TIMER_PID=${ ! }
53
50
54
51
# Disown the background process, because we don't want to show any messages when killing
55
52
# the timer.
56
53
disown
57
54
58
55
# When the tail recognizes the `Ctrl-C` log message the BrowserStack Tunnel is up.
59
56
{
60
- tail -n0 -f $TUNNEL_LOG --pid $TIMER_PID | { sed ' /Ctrl/q' && kill -9 $TIMER_PID ; };
57
+ tail -n0 -f ${ TUNNEL_LOG} --pid ${ TIMER_PID} | { sed ' /Ctrl/q' && kill -9 ${ TIMER_PID} ; };
61
58
} & > /dev/null
62
59
63
60
echo
64
61
echo " BrowserStack Tunnel ready"
65
62
66
- touch $BROWSER_PROVIDER_READY_FILE
63
+ touch ${ BROWSER_PROVIDER_READY_FILE}
67
64
}
68
65
69
- browserstack-tunnel/BrowserStackLocal -k $BROWSER_STACK_ACCESS_KEY $ ARGS & >> $TUNNEL_LOG &
66
+ browserstack-tunnel/BrowserStackLocal -k ${ BROWSER_STACK_ACCESS_KEY} ${ ARGS} 2>&1 >> ${ TUNNEL_LOG} &
70
67
71
68
# Wait for the tunnel to be ready and create the readyfile with the Browserstack PID
72
69
create_ready_file &
0 commit comments