forked from graphhopper/directions-api-clients
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate.sh
executable file
·113 lines (100 loc) · 2.57 KB
/
create.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash
SPEC=swagger.json
# SPEC=https://graphhopper.com/api/1/swagger.json
DIR=.
VERSION=0.11-SNAPSHOT
# it is necessary to use the master snapshot to create a proper R and C# client
SW_VERSION=master-2018-01-22
#SW_VERSION=2.2.3
FILE=swagger-codegen-cli-$SW_VERSION.jar
NAME=directions-api-client
GROUP=com.graphhopper
if [[ ! -s $FILE ]]; then
wget https://graphhopper.com/public/misc/$FILE -O $FILE
if [[ ! -s $FILE ]]; then
wget http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/$SW_VERSION/$FILE -O $FILE
if [[ ! -s $FILE ]]; then
curl http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/$SW_VERSION/$FILE -O $FILE
fi
fi
fi
file_size_kb=$(du -k "$FILE" | cut -f1)
if [[ $file_size_kb -lt 1000 ]]; then
echo corrupt file $FILE, remove it, ensure host exists and try again
exit
fi
function create {
LANG=$1
CONFIG=""
ADD_PARAMS=""
case "$LANG" in
java)
PKG="com.graphhopper.directions.api.client"
CONFIG="--artifact-version $VERSION --api-package $PKG.api --invoker-package $PKG --model-package $PKG.model --artifact-id $NAME --group-id $GROUP --library okhttp-gson -DhideGenerationTimestamp=true"
;;
ruby)
CONFIG="-DgemName=$NAME -DmoduleName=GraphHopperClient -DgemVersion=$VERSION"
;;
go)
# CONFIG="-t modules/swagger-codegen/src/main/resources/go"
ADD_PARAMS="-DpackageName=graphhopper"
;;
swift)
CONFIG="-DprojectName=GraphHopper"
;;
javascript)
CONFIG="-t modules/swagger-codegen/src/main/resources/Javascript"
;;
haskell)
;;
r)
ADD_PARAMS="-DpackageName=GraphHopper"
;;
php)
CONFIG="--artifact-version $VERSION --git-repo-id $NAME --git-user-id graphhopper --api-package $NAME"
;;
*)
;;
esac
# for now keep directory to keep it simple
# if [[ $LANG = "java" ]]; then
# mv $DIR/$LANG/pom.xml /tmp/
# rm -rf $DIR/$LANG && mkdir $DIR/$LANG
# mv /tmp/pom.xml $DIR/$LANG/
# else
# rm -rf $DIR/$LANG
# fi
# echo "create $LANG, config: $CONFIG, additional params: $ADD_PARAMS"
SH="java -jar $FILE generate -i $SPEC -l $LANG $CONFIG -o $DIR/$LANG $ADD_PARAMS"
echo $SH
$SH
}
LANG=$1
if [[ "$LANG" != "" ]]; then
create $LANG
exit 0
else
echo "creating all"
# the JS client is just too large and not recommended so use nodejs-server
# create javascript -> nodejs-server
create clojure
create csharp
create dart
create go
create haskell
create kotlin
create java
create nodejs-server
create objc
create perl
create php
create python
create qt5cpp
create r
create ruby
create rust
create scala
create sinatra
create swift
create tizen
fi