-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconfigure
More file actions
executable file
·156 lines (147 loc) · 5.68 KB
/
configure
File metadata and controls
executable file
·156 lines (147 loc) · 5.68 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
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
#!/bin/bash
# go https://github.com/niess/python-appimage/releases for the list
JSON_SEARCH=json-search
YQ_ARG=''
CURL_LD='-lcurl'
CURL_CFLAGS=''
SED_ALIAS=''
JSON_C_CFLAGS='-I/usr/include/json-c/'
JSON_C_LDFLAGS='-ljson-c'
JSON_C_RULE=''
HAVE_RECOMPILE_JSON_C=0
LD_CURLLIB_PATH=''
LD_JSONCLIB_PATH=''
API_VERSION=main
SDK_VERSION=0xC061AC
CLI_NAME=oapi-cli
FUNCTION_SUFFIX=Request
FROM_PATH=0
SDK_NAME='osc-sdk'
FUNCLIST_ARG=''
API_SCRIPT='curl -s https://raw.githubusercontent.com/outscale/osc-api-deploy/$(API_VERSION)/outscale-c.yaml | yq $(YQ_ARG) > osc-api.json'
DEBUG_MODE=0
inc=1
for arg in $@; do
if [ "--help" = $arg ]; then
cat <<EOF
./configure:
--help like seriously ?
--compile-json-c compile json-c
--wget-json-search wget json-search.Appimage
--gnu-sed-alias use gsed for sed
--cli-name=Name set cli name, default: oapi-cli
--sdk-name=name set sdk Name, default: osc-sdk
--debug-mode enable debug in cognac (output on stderr)
--function-suffix=suffix suffix used to identify functions in components. Default: Request
--funclist-arg=arg arguments to pass to funclist
--from-path Uses paths instead of component suffixes for function generation
--api-script=script how to generate osc-api.json
--yq-go use go version of yq, that use diferents arguments
--curl-path=PATH path to curl source root
--sdk-version sdk-version to generate (format 0xMajMajMinMinPatchPatch(0x000302))
--target-api=VERSION choose a version, 'main' is the default
--curl-install-path=PATH path to curl installed root
--list-api-versions list-api-versions on github
EOF
exit 0
fi
if [ "--wget-json-search" = $( echo "$arg" | cut -d '=' -f 1) ]; then
rm json-search-x86_64.AppImage
wget https://github.com/cosmo-ray/json-search/releases/download/0.3.1/json-search-x86_64.AppImage
chmod +x json-search-x86_64.AppImage
JSON_SEARCH="./json-search-x86_64.AppImage"
elif [ "--list-api-versions" = $arg ]; then
curl -s https://api.github.com/repos/outscale/osc-api/tags | $JSON_SEARCH -R name
exit 0
elif [ "--compile-json-c" = $arg ]; then
CMAKE=cmake
git clone https://github.com/cosmo-ray/json-c.git -b color
mkdir json-c-build
cd json-c-build
cmake3 --help 2>&1 > /dev/null
if [ $? == 0 ]; then
CMAKE=cmake3
fi
$CMAKE ../json-c/
make
cd -
JSON_C_CFLAGS='-I./json-c -I./json-c-build'
JSON_C_RULE='./json-c-build/libjson-c.a'
JSON_C_LDFLAGS='./json-c-build/libjson-c.a'
LD_JSONCLIB_PATH="./json-c-build"
HAVE_RECOMPILE_JSON_C=1
elif [ "--yq-go" = $arg ]; then
YQ_ARG="-o json"
elif [ "--function-suffix" = $( echo "$arg" | cut -d '=' -f 1) ]; then
FUNCTION_SUFFIX=$( echo $arg | cut -f 2 -d '=' )
elif [ "--funclist-arg" = $( echo "$arg" | cut -d '=' -f 1) ]; then
FUNCLIST_ARG=$( echo $arg | cut -f 2 -d '=' )
elif [ "--gnu-sed-alias" = $arg ]; then
SED_ALIAS="'alias sed=gsed'"
elif [ "--debug-mode" = $arg ]; then
DEBUG_MODE=1
elif [ "--from-path" = $arg ]; then
FROM_PATH=1
elif [ "--target-api" = $( echo "$arg" | cut -d '=' -f 1) ]; then
API_VERSION=v$( echo $arg | cut -f 2 -d '=' )
API_SCRIPT='curl -s https://raw.githubusercontent.com/outscale/osc-api-deploy/v$(API_VERSION)/outscale-c.yaml | yq $(YQ_ARG) > osc-api.json'
elif [ "--cli-name" = $( echo "$arg" | cut -d '=' -f 1) ]; then
CLI_NAME=$( echo $arg | cut -f 2 -d '=' )
elif [ "--api-script" = $( echo "$arg" | cut -d '=' -f 1) ]; then
API_SCRIPT="$( echo ${!inc} | cut -f 2 -d '=' )"
elif [ "--sdk-name" = $( echo "$arg" | cut -d '=' -f 1) ]; then
SDK_NAME="$( echo ${!inc} | cut -f 2 -d '=' )"
elif [ "--sdk-version" = $( echo "$arg" | cut -d '=' -f 1) ]; then
SDK_VERSION=$( echo $arg | cut -f 2 -d '=' )
elif [ "--curl-path" = $( echo "$arg" | cut -d '=' -f 1) ]; then
CURL_PATH=$( echo $arg | cut -f 2 -d '=' )
LD_CURLLIB_PATH="$CURL_PATH/lib/.libs/"
CURL_LD="-lcurl -L$CURL_PATH/lib/.libs/"
CURL_CFLAGS="-I$CURL_PATH/include/"
elif [ "--curl-install-path" = $( echo "$arg" | cut -d '=' -f 1) ]; then
CURL_PATH=$( echo $arg | cut -f 2 -d '=' )
LD_CURLLIB_PATH="$CURL_PATH/lib/"
CURL_LD="-lcurl -L$CURL_PATH/lib/"
CURL_CFLAGS="-I$CURL_PATH/include/"
fi
inc=$(($inc+1))
done
if [ $HAVE_RECOMPILE_JSON_C == 0 ]; then
pkg-config --help > /dev/null
if [ $? == 0 ]; then
JSON_C_CFLAGS=$(pkg-config --cflags json-c)
if [ $? -ne 0 ]; then
echo "[ERROR] json-c not found, you can use --compile-json-c" 1>&2
exit 1
fi
else
echo "[WARNING] pkg-config not found, use '-I/usr/include/json-c/' as default value"
fi
fi
echo JSON_SEARCH=$JSON_SEARCH > config.mk
echo LD_LIB_PATH="$LD_CURLLIB_PATH:$LD_JSONCLIB_PATH" >> config.mk
echo YQ_ARG=$YQ_ARG >> config.mk
echo CURL_LD=$CURL_LD >> config.mk
echo CURL_CFLAGS=$CURL_CFLAGS >> config.mk
echo SED_ALIAS=$SED_ALIAS >> config.mk
echo JSON_C_LDFLAGS=$JSON_C_LDFLAGS >> config.mk
echo JSON_C_CFLAGS=$JSON_C_CFLAGS >> config.mk
echo JSON_C_RULE=$JSON_C_RULE >> config.mk
echo API_VERSION=$( echo $API_VERSION | cut -f 2 -d 'v' ) >> config.mk
echo CLI_NAME=$CLI_NAME >> config.mk
if [[ "$FROM_PATH" == "1" ]]; then
FUNCLIST_ARG="--from-path $FUNCLIST_ARG"
FUNCTION_SUFFIX=""
fi
echo FUNCTION_SUFFIX=$FUNCTION_SUFFIX >> config.mk
if [[ "$FUNCTION_SUFFIX" != "Request" && "$FUNCTION_SUFFIX" != "" ]]; then
FUNCLIST_ARG="--func-suffix $FUNCTION_SUFFIX $FUNCLIST_ARG"
fi
echo SDK_NAME=$SDK_NAME >> config.mk
echo FUNCLIST_ARG=$FUNCLIST_ARG >> config.mk
echo DEBUG_MODE=$DEBUG_MODE >> config.mk
echo FROM_PATH=$FROM_PATH >> config.mk
echo -e "osc-api.json:: config.sh\n\t$API_SCRIPT" >> config.mk
echo $SDK_VERSION > sdk-version
echo "config done:"
cat config.mk