-
Notifications
You must be signed in to change notification settings - Fork 1
/
configure
executable file
·120 lines (114 loc) · 4.17 KB
/
configure
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
#!/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=master
SDK_VERSION=0xC061AC
CLI_NAME=oapi-cli
API_SCRIPT='curl -s https://raw.githubusercontent.com/outscale/osc-api/$(API_VERSION)/outscale.yaml | yq $(YQ_ARG) > osc-api.json'
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
--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, 'master' 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 [ "--gnu-sed-alias" = $arg ]; then
SED_ALIAS="'alias sed=gsed'"
elif [ "--target-api" = $( echo "$arg" | cut -d '=' -f 1) ]; then
API_VERSION=$( echo $arg | cut -f 2 -d '=' )
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-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=$API_VERSION >> config.mk
echo CLI_NAME=$CLI_NAME >> 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