blob: 98492cf12c146ff9d000143cdd94129a35248464 (
plain)
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
|
#!/bin/bash
###########################################################################
# @licence app begin@
# SPDX-License-Identifier: MPL-2.0
#
# Component Name: navigation
# Author: Philippe Colliot <philippe.colliot@mpsa.com>
#
# Copyright (C) 2013-2014, PCA Peugeot Citroen
#
# License:
# This Source Code Form is subject to the terms of the
# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
# this file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# @licence end@
###########################################################################
NAVIGATION_CORE=navigation-core
MAP_VIEWER=map-viewer
POI_SERVICE=poi-service
POI_CAM=poi-cam
NAVIGATION_CORE_CONFIGURATION=navigationcore-configuration
NAVIGATION_CORE_GUIDANCE=navigationcore-guidance
NAVIGATION_CORE_LOCATIONINPUT=navigationcore-locationinput
NAVIGATION_CORE_MAPMATCHEDPOSITION=navigationcore-mapmatchedposition
NAVIGATION_CORE_ROUTING=navigationcore-routing
NAVIGATION_CORE_SESSION=navigationcore-session
NAVIGATION_CORE_ENHANCEDPOSITION=navigationcore-enhancedposition
MAP_VIEWER_CONFIGURATION=mapviewer-configuration
MAP_VIEWER_MAPVIEWERCONTROL=mapviewer-mapviewercontrol
MAP_VIEWER_SESSION=mapviewer-session
POSITIONING=positioning
LOG_REPLAYER=log-replayer
GNSS_SERVICE=gnss-service
SENSORS_SERVICE=sensors-service
ENHANCED_POSITION_SERVICE=enhanced-position-service
NAVIT=navit
IVI_LAYER_MANAGER=ilm
WAYLAND_IVI_EXTENSION=wayland-ivi-extension
WESTON_IVI_SHELL=weston-ivi-shell
SCRIPT_DIR=$PWD
target_root=$PWD/..
target_bin=$PWD/../bin #by default
target_positioning=$PWD/../$POSITIONING #by default
target_ilm=$PWD/../$IVI_LAYER_MANAGER #by default
#--------------------------------------------------------------------------
# Compiler Flags
#--------------------------------------------------------------------------
# modify the following flags as needed:
NAVIT_FLAGS='-DDISABLE_QT=1 -DSAMPLE_MAP=0 -Dvehicle/null=1 -Dgraphics/qt_qpainter=0'
NAVIT_PLUGIN_FLAGS='-DWITH_DEBUG=OFF'
GNSS_SERVICE_FLAGS='-DWITH_DLT=OFF -DWITH_GPSD=OFF -DWITH_REPLAYER=ON -DWITH_TESTS=ON -DWITH_DEBUG=OFF'
SENSORS_SERVICE_FLAGS='-DWITH_DLT=OFF -DWITH_REPLAYER=ON -DWITH_IPHONE=OFF -DWITH_TESTS=ON -DWITH_DEBUG=OFF'
ENHANCED_POSITION_SERVICE_FLAGS='-DWITH_DLT=OFF -DWITH_GPSD=OFF -DWITH_REPLAYER=ON -DWITH_IPHONE=OFF -DWITH_TESTS=ON -DWITH_DEBUG=OFF'
LOG_REPLAYER_FLAGS='-DWITH_DLT=OFF -DWITH_TESTS=ON -DWITH_DEBUG=OFF'
#
# by default no ilm
lm=0
set-path()
{
TOP_DIR=$target_root
TOP_BIN_DIR=$target_bin
API_DIR=$TOP_DIR/../../api
GENERATED_API_DIR=$API_DIR/include
NAVIGATION_CORE_SRC_DIR=$TOP_DIR/$NAVIGATION_CORE
NAVIGATION_CORE_BIN_DIR=$TOP_BIN_DIR/$NAVIGATION_CORE
NAVIGATION_CORE_API_DIR=$TOP_DIR/../../api/$NAVIGATION_CORE
MAP_VIEWER_SRC_DIR=$TOP_DIR/$MAP_VIEWER
MAP_VIEWER_BIN_DIR=$TOP_BIN_DIR/$MAP_VIEWER
MAP_VIEWER_API_DIR=$TOP_DIR/../../api/$MAP_VIEWER
POI_SERVICE_API_DIR=$TOP_DIR/../../api/$POI_SERVICE
POI_CAM_SRC_DIR=$TOP_DIR/$POI_CAM
POI_CAM_BIN_DIR=$TOP_BIN_DIR/$POI_CAM
NAVIGATION_CORE_CONFIGURATION_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/configuration-plugin
NAVIGATION_CORE_CONFIGURATION_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_CONFIGURATION
NAVIGATION_CORE_GUIDANCE_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/guidance-plugin
NAVIGATION_CORE_GUIDANCE_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_GUIDANCE
NAVIGATION_CORE_LOCATIONINPUT_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/locationinput-plugin
NAVIGATION_CORE_LOCATIONINPUT_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_LOCATIONINPUT
NAVIGATION_CORE_MAPMATCHEDPOSITION_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/mapmatchedposition-plugin
NAVIGATION_CORE_MAPMATCHEDPOSITION_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_MAPMATCHEDPOSITION
NAVIGATION_CORE_ROUTING_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/routing-plugin
NAVIGATION_CORE_ROUTING_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_ROUTING
NAVIGATION_CORE_SESSION_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/session-plugin
NAVIGATION_CORE_SESSION_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_SESSION
NAVIGATION_CORE_ENHANCEDPOSITION_SRC_DIR=$NAVIGATION_CORE_SRC_DIR/enhancedposition-plugin
NAVIGATION_CORE_ENHANCEDPOSITION_BIN_DIR=$NAVIGATION_CORE_BIN_DIR/$NAVIGATION_CORE_ENHANCEDPOSITION
MAP_VIEWER_CONFIGURATION_SRC_DIR=$MAP_VIEWER_SRC_DIR/configuration-plugin
MAP_VIEWER_CONFIGURATION_BIN_DIR=$MAP_VIEWER_BIN_DIR/$MAP_VIEWER_CONFIGURATION
MAP_VIEWER_MAPVIEWERCONTROL_SRC_DIR=$MAP_VIEWER_SRC_DIR/mapviewercontrol-plugin
MAP_VIEWER_MAPVIEWERCONTROL_BIN_DIR=$MAP_VIEWER_BIN_DIR/$MAP_VIEWER_MAPVIEWERCONTROL
MAP_VIEWER_SESSION_SRC_DIR=$MAP_VIEWER_SRC_DIR/session-plugin
MAP_VIEWER_SESSION_BIN_DIR=$MAP_VIEWER_BIN_DIR/$MAP_VIEWER_SESSION
POSITIONING_SRC_DIR=$target_positioning
POSITIONING_BIN_DIR=$TOP_BIN_DIR/$POSITIONING
LOG_REPLAYER_SRC_DIR=$POSITIONING_SRC_DIR/$LOG_REPLAYER
LOG_REPLAYER_BIN_DIR=$POSITIONING_BIN_DIR/$LOG_REPLAYER
GNSS_SERVICE_SRC_DIR=$POSITIONING_SRC_DIR/$GNSS_SERVICE
GNSS_SERVICE_BIN_DIR=$POSITIONING_BIN_DIR/$GNSS_SERVICE
SENSORS_SERVICE_SRC_DIR=$POSITIONING_SRC_DIR/$SENSORS_SERVICE
SENSORS_SERVICE_BIN_DIR=$POSITIONING_BIN_DIR/$SENSORS_SERVICE
ENHANCED_POSITION_SERVICE_SRC_DIR=$POSITIONING_SRC_DIR/$ENHANCED_POSITION_SERVICE
ENHANCED_POSITION_SERVICE_BIN_DIR=$POSITIONING_BIN_DIR/$ENHANCED_POSITION_SERVICE
ENHANCED_POSITION_SERVICE_API_DIR=$POSITIONING_SRC_DIR/$ENHANCED_POSITION_SERVICE/api
ENHANCED_POSITION_SERVICE_GENERATED_API_DIR=$ENHANCED_POSITION_SERVICE_API_DIR/include
NAVIT_SRC_DIR=$TOP_DIR/$NAVIT
NAVIT_BIN_DIR=$TOP_BIN_DIR/$NAVIT
MAP_DIR=$TOP_DIR/map
IVI_LAYER_MANAGER_SRC_DIR=$target_ilm
IVI_LAYER_MANAGER_BIN_DIR=$TOP_BIN_DIR/$IVI_LAYER_MANAGER
WAYLAND_IVI_EXTENSION_SRC_DIR=$IVI_LAYER_MANAGER_SRC_DIR/$WAYLAND_IVI_EXTENSION
WAYLAND_IVI_EXTENSION_BIN_DIR=$IVI_LAYER_MANAGER_BIN_DIR/$WAYLAND_IVI_EXTENSION
WESTON_IVI_SHELL_SRC_DIR=$IVI_LAYER_MANAGER_SRC_DIR/$WESTON_IVI_SHELL
WESTON_IVI_SHELL_BIN_DIR=$IVI_LAYER_MANAGER_BIN_DIR/$WESTON_IVI_SHELL
}
usage() {
echo "Usage: ./build.sh [command]"
echo " or: ./build.sh [command] [paths]"
echo
echo "command:"
echo " make Build"
echo " makelm Build with layer manager"
echo " clean Clean the bin"
echo " src-clean Clean the cloned sources and the bin"
echo " clone Clone the sources"
echo " help Print Help"
echo "paths:"
echo "(used for remote build)"
echo " <target bin> Path of the binaries"
echo " <target positioning> Path of the positioning code"
echo " <target ilm> Path of the ilm code"
}
clone() {
echo ''
echo 'Clone/update version of additional sources if needed, get maps'
cd $TOP_DIR
cmake -Dpositioning_SRC_DIR=$target_positioning -Dlayer-management_SRC_DIR=$target_ilm $TOP_DIR
}
build() {
echo ''
echo 'Building navigation'
if [ ! -d "$NAVIT_SRC_DIR" ]; then
echo 'Do clone first'
exit 1
fi
cd $TOP_DIR
mkdir -p bin
cd $TOP_BIN_DIR
if [ $lm -eq 1 ]; then
echo ''
echo 'Building layer manager'
if [ -z $WLD ]; then
echo 'need to build QtWayland first'
echo 'see the README file for details'
exit 1
fi
cd $TOP_BIN_DIR
mkdir -p $IVI_LAYER_MANAGER
cd $IVI_LAYER_MANAGER_BIN_DIR
mkdir -p $WAYLAND_IVI_EXTENSION
cd $WAYLAND_IVI_EXTENSION_BIN_DIR
cp $SCRIPT_DIR/toolchain.cmake $WAYLAND_IVI_EXTENSION_SRC_DIR
cmake -DCMAKE_TOOLCHAIN_FILE=$WAYLAND_IVI_EXTENSION_SRC_DIR/toolchain.cmake $WAYLAND_IVI_EXTENSION_SRC_DIR
cmake -DCMAKE_TOOLCHAIN_FILE=$WAYLAND_IVI_EXTENSION_SRC_DIR/toolchain.cmake $WAYLAND_IVI_EXTENSION_SRC_DIR
make -j4
sudo make install
cd $IVI_LAYER_MANAGER_BIN_DIR
mkdir -p $WESTON_IVI_SHELL
cd $WESTON_IVI_SHELL_SRC_DIR
./autogen.sh --prefix=$WESTON_IVI_SHELL_BIN_DIR
make -j4
sudo make install
fi
# make navit first, because plugins need navit built stuff
echo ''
echo 'Building navit'
cd $TOP_BIN_DIR
mkdir -p $NAVIT
cd $NAVIT_BIN_DIR
cmake $NAVIT_FLAGS $NAVIT_SRC_DIR/navit && make
echo ''
echo 'Create maps xml files for navit'
cd $MAP_DIR
cmake -DNAVIT_MAPS_DIR=$NAVIT_BIN_DIR/navit/maps ./
echo 'Generate DBus include files for positioning'
cd $ENHANCED_POSITION_SERVICE_API_DIR
cmake .
echo ''
echo 'Building positioning'
cd $TOP_BIN_DIR
mkdir -p $POSITIONING
cd $POSITIONING_BIN_DIR
mkdir -p $GNSS_SERVICE
cd $GNSS_SERVICE_BIN_DIR
cmake $GNSS_SERVICE_FLAGS $GNSS_SERVICE_SRC_DIR && make
cd $POSITIONING_BIN_DIR
mkdir -p $SENSORS_SERVICE
cd $SENSORS_SERVICE_BIN_DIR
cmake $SENSORS_SERVICE_FLAGS $SENSORS_SERVICE_SRC_DIR && make
cd $POSITIONING_BIN_DIR
mkdir -p $LOG_REPLAYER
cd $LOG_REPLAYER_BIN_DIR
cmake $LOG_REPLAYER_FLAGS $LOG_REPLAYER_SRC_DIR && make
cd $POSITIONING_BIN_DIR
mkdir -p $ENHANCED_POSITION_SERVICE
cd $ENHANCED_POSITION_SERVICE_BIN_DIR
cmake $ENHANCED_POSITION_SERVICE_FLAGS $ENHANCED_POSITION_SERVICE_SRC_DIR && make
echo ''
echo 'Generate DBus include files for navigation, mapviewer and poiservice'
cd $API_DIR
mkdir -p include
cd $API_DIR/$NAVIGATION_CORE && cmake .
cd $API_DIR/$MAP_VIEWER && cmake .
cd $API_DIR/$POI_SERVICE && cmake .
echo ''
echo 'Building plugins'
cd $TOP_BIN_DIR
mkdir -p $NAVIGATION_CORE
cd $NAVIGATION_CORE_BIN_DIR
cmake -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIGATION_CORE_SRC_DIR
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_CONFIGURATION
cd $NAVIGATION_CORE_CONFIGURATION_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_CONFIGURATION_SRC_DIR && make
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_GUIDANCE
cd $NAVIGATION_CORE_GUIDANCE_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_GUIDANCE_SRC_DIR && make
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_LOCATIONINPUT
cd $NAVIGATION_CORE_LOCATIONINPUT_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_LOCATIONINPUT_SRC_DIR && make
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_MAPMATCHEDPOSITION
cd $NAVIGATION_CORE_MAPMATCHEDPOSITION_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_MAPMATCHEDPOSITION_SRC_DIR && make
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_ROUTING
cd $NAVIGATION_CORE_ROUTING_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_ROUTING_SRC_DIR && make
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_SESSION
cd $NAVIGATION_CORE_SESSION_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_SESSION_SRC_DIR && make
cd $NAVIGATION_CORE_BIN_DIR
mkdir -p $NAVIGATION_CORE_ENHANCEDPOSITION
cd $NAVIGATION_CORE_ENHANCEDPOSITION_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dpositioning_API=$ENHANCED_POSITION_SERVICE_GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $NAVIGATION_CORE_ENHANCEDPOSITION_SRC_DIR && make
cd $TOP_BIN_DIR
mkdir -p $MAP_VIEWER
cd $MAP_VIEWER_BIN_DIR
cmake -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $MAP_VIEWER_SRC_DIR
cd $MAP_VIEWER_BIN_DIR
mkdir -p $MAP_VIEWER_CONFIGURATION
cd $MAP_VIEWER_CONFIGURATION_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $MAP_VIEWER_CONFIGURATION_SRC_DIR && make
cd $MAP_VIEWER_BIN_DIR
mkdir -p $MAP_VIEWER_MAPVIEWERCONTROL
cd $MAP_VIEWER_MAPVIEWERCONTROL_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -DLM=$lm -Dlayer_management_INST=$target_ilm -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $MAP_VIEWER_MAPVIEWERCONTROL_SRC_DIR && make
cd $MAP_VIEWER_BIN_DIR
mkdir -p $MAP_VIEWER_SESSION
cd $MAP_VIEWER_SESSION_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $MAP_VIEWER_SESSION_SRC_DIR && make
cd $TOP_BIN_DIR
mkdir -p $POI_CAM
cd $POI_CAM_BIN_DIR
cmake -Wno-dev -C $NAVIT_BIN_DIR/cmake_plugin_settings.txt -Dgenerated_api_DIR=$GENERATED_API_DIR -Dnavit_SRC_DIR=$NAVIT_SRC_DIR $NAVIT_PLUGIN_FLAGS $POI_CAM_SRC_DIR && make
}
clean() {
echo 'delete' $TOP_BIN_DIR
if [ -d "$IVI_LAYER_MANAGER_BIN_DIR" ]; then
sudo rm -rf $IVI_LAYER_MANAGER_BIN_DIR
fi
rm -rf $TOP_BIN_DIR
}
src-clean() {
echo 'delete' $POSITIONING_SRC_DIR
rm -rf $POSITIONING_SRC_DIR
echo 'delete' $NAVIT_SRC_DIR
rm -rf $NAVIT_SRC_DIR
echo 'delete' $IVI_LAYER_MANAGER_SRC_DIR
rm -rf $IVI_LAYER_MANAGER_SRC_DIR
clean
}
set -e
if [ $# -ge 1 ]; then
if [ $1 = help ]; then
usage
elif [ $1 = make ]; then
if [ $# -eq 4 ]; then
#use for remote build
target_bin=$(readlink -f $2)
target_positioning=$(readlink -f $3)
target_ilm=$(readlink -f $4)
fi
set-path
build
elif [ $1 = makelm ]; then
lm=1
if [ $# -eq 4 ]; then
#use for remote build
target_bin=$(readlink -f $2)
target_positioning=$(readlink -f $3)
target_ilm=$(readlink -f $4)
fi
set-path
build
elif [ $1 = clean ]; then
set-path
clean
elif [ $1 = src-clean ]; then
if [ $# -eq 4 ]; then
#use for remote build
target_bin=$(readlink -f $2)
target_positioning=$(readlink -f $3)
target_ilm=$(readlink -f $4)
fi
set-path
src-clean
elif [ $1 = clone ]; then
if [ $# -eq 4 ]; then
#use for remote build
target_bin=$(readlink -f $2)
target_positioning=$(readlink -f $3)
target_ilm=$(readlink -f $4)
fi
set-path
clone
else
usage
fi
else
usage
fi
|