makeclient.sh 6.3 KB
Newer Older
L
lihui 已提交
1 2
#!/bin/bash
#
L
lihui 已提交
3
# Generate tar.gz package for linux client in all os system
L
lihui 已提交
4
set -e
L
lihui 已提交
5
#set -x
L
lihui 已提交
6 7 8 9 10

curr_dir=$(pwd)
compile_dir=$1
version=$2
build_time=$3
L
lihui 已提交
11 12 13 14
cpuType=$4
osType=$5
verMode=$6
verType=$7
L
lihui 已提交
15
pagMode=$8
L
lihui 已提交
16

Z
change  
zyyang 已提交
17
productName="TDengine"
Z
change  
zyyang 已提交
18 19 20 21
clientName="taos"
configFile="taos.cfg"
tarName="taos.tar.gz"

S
slguan 已提交
22
if [ "$osType" != "Darwin" ]; then
23 24
  script_dir="$(dirname $(readlink -f $0))"
  top_dir="$(readlink -f ${script_dir}/../..)"
S
slguan 已提交
25
else
26 27 28 29
  script_dir=$(dirname $0)
  cd ${script_dir}
  script_dir="$(pwd)"
  top_dir=${script_dir}/../..
S
slguan 已提交
30
fi
L
lihui 已提交
31 32 33 34 35 36

# create compressed install file.
build_dir="${compile_dir}/build"
code_dir="${top_dir}/src"
release_dir="${top_dir}/release"

L
lihui 已提交
37
#package_name='linux'
S
slguan 已提交
38 39

if [ "$verMode" == "cluster" ]; then
40
  install_dir="${release_dir}/${productName}-enterprise-client-${version}"
S
slguan 已提交
41
else
42
  install_dir="${release_dir}/${productName}-client-${version}"
S
slguan 已提交
43
fi
L
lihui 已提交
44 45

# Directories and files.
S
slguan 已提交
46
if [ "$osType" != "Darwin" ]; then
L
lihui 已提交
47
  if [ "$pagMode" == "lite" ]; then
Z
change  
zyyang 已提交
48 49
    strip ${build_dir}/bin/${clientName}
    bin_files="${build_dir}/bin/${clientName} \
50
        ${script_dir}/remove_client.sh"
51
  else
Z
change  
zyyang 已提交
52
    bin_files="${build_dir}/bin/${clientName} \
53
        ${script_dir}/remove_client.sh \
54
        ${script_dir}/set_core.sh \
55
        ${script_dir}/get_client.sh"
L
lihui 已提交
56 57
  fi
  lib_files="${build_dir}/lib/libtaos.so.${version}"
S
slguan 已提交
58
else
Z
change  
zyyang 已提交
59
  bin_files="${build_dir}/bin/${clientName} ${script_dir}/remove_client.sh"
L
lihui 已提交
60
  lib_files="${build_dir}/lib/libtaos.${version}.dylib"
S
slguan 已提交
61 62
fi

63
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taosdef.h ${code_dir}/inc/taoserror.h"
64 65 66 67 68
if [ "$verMode" == "cluster" ]; then
  cfg_dir="${top_dir}/../enterprise/packaging/cfg"
else
  cfg_dir="${top_dir}/packaging/cfg"
fi
S
slguan 已提交
69

L
lihui 已提交
70 71 72 73 74
install_files="${script_dir}/install_client.sh"

# make directories.
mkdir -p ${install_dir}
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
Z
change  
zyyang 已提交
75
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/${configFile} ${install_dir}/cfg/${configFile}
L
lihui 已提交
76 77
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/*

78
if [ -f ${build_dir}/bin/jemalloc-config ]; then
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
  mkdir -p ${install_dir}/jemalloc/{bin,lib,lib/pkgconfig,include/jemalloc,share/doc/jemalloc,share/man/man3}
  cp ${build_dir}/bin/jemalloc-config ${install_dir}/jemalloc/bin
  if [ -f ${build_dir}/bin/jemalloc.sh ]; then
    cp ${build_dir}/bin/jemalloc.sh ${install_dir}/jemalloc/bin
  fi
  if [ -f ${build_dir}/bin/jeprof ]; then
    cp ${build_dir}/bin/jeprof ${install_dir}/jemalloc/bin
  fi
  if [ -f ${build_dir}/include/jemalloc/jemalloc.h ]; then
    cp ${build_dir}/include/jemalloc/jemalloc.h ${install_dir}/jemalloc/include/jemalloc
  fi
  if [ -f ${build_dir}/lib/libjemalloc.so.2 ]; then
    cp ${build_dir}/lib/libjemalloc.so.2 ${install_dir}/jemalloc/lib
    ln -sf libjemalloc.so.2 ${install_dir}/jemalloc/lib/libjemalloc.so
  fi
  if [ -f ${build_dir}/lib/libjemalloc.a ]; then
    cp ${build_dir}/lib/libjemalloc.a ${install_dir}/jemalloc/lib
  fi
  if [ -f ${build_dir}/lib/libjemalloc_pic.a ]; then
    cp ${build_dir}/lib/libjemalloc_pic.a ${install_dir}/jemalloc/lib
  fi
  if [ -f ${build_dir}/lib/pkgconfig/jemalloc.pc ]; then
    cp ${build_dir}/lib/pkgconfig/jemalloc.pc ${install_dir}/jemalloc/lib/pkgconfig
  fi
  if [ -f ${build_dir}/share/doc/jemalloc/jemalloc.html ]; then
    cp ${build_dir}/share/doc/jemalloc/jemalloc.html ${install_dir}/jemalloc/share/doc/jemalloc
  fi
  if [ -f ${build_dir}/share/man/man3/jemalloc.3 ]; then
    cp ${build_dir}/share/man/man3/jemalloc.3 ${install_dir}/jemalloc/share/man/man3
  fi
109 110
fi

L
lihui 已提交
111
cd ${install_dir}
S
slguan 已提交
112 113

if [ "$osType" != "Darwin" ]; then
114
  tar -zcv -f ${tarName} * --remove-files || :
S
slguan 已提交
115
else
116 117 118 119
  tar -zcv -f ${tarName} * || :
  mv ${tarName} ..
  rm -rf ./*
  mv ../${tarName} .
S
slguan 已提交
120
fi
L
lihui 已提交
121 122

cd ${curr_dir}
S
slguan 已提交
123 124
cp ${install_files} ${install_dir}
if [ "$osType" == "Darwin" ]; then
125 126
  sed 's/osType=Linux/osType=Darwin/g' ${install_dir}/install_client.sh >>install_client_temp.sh
  mv install_client_temp.sh ${install_dir}/install_client.sh
S
slguan 已提交
127
fi
L
lihui 已提交
128
if [ "$pagMode" == "lite" ]; then
129 130
  sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install_client.sh >>install_client_temp.sh
  mv install_client_temp.sh ${install_dir}/install_client.sh
L
lihui 已提交
131
fi
S
slguan 已提交
132
chmod a+x ${install_dir}/install_client.sh
L
lihui 已提交
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
if [[ $productName == "TDengine" ]]; then
  # Copy example code
  mkdir -p ${install_dir}/examples
  examples_dir="${top_dir}/examples"
  cp -r ${examples_dir}/c ${install_dir}/examples
  if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
    cp -r ${examples_dir}/JDBC ${install_dir}/examples
    cp -r ${examples_dir}/matlab ${install_dir}/examples
    cp -r ${examples_dir}/python ${install_dir}/examples
    cp -r ${examples_dir}/R ${install_dir}/examples
    cp -r ${examples_dir}/go ${install_dir}/examples
    cp -r ${examples_dir}/nodejs ${install_dir}/examples
    cp -r ${examples_dir}/C# ${install_dir}/examples
  fi

  # Copy connector
  connector_dir="${code_dir}/connector"
  mkdir -p ${install_dir}/connector
  if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
    if [ "$osType" != "Darwin" ]; then
      cp ${build_dir}/lib/*.jar ${install_dir}/connector || :
    fi
    if find ${connector_dir}/go -mindepth 1 -maxdepth 1 | read; then
      cp -r ${connector_dir}/go ${install_dir}/connector
    else
      echo "WARNING: go connector not found, please check if want to use it!"
    fi
    cp -r ${connector_dir}/python ${install_dir}/connector
    cp -r ${connector_dir}/nodejs ${install_dir}/connector
  fi
L
lihui 已提交
164
fi
165

L
lihui 已提交
166
# Copy driver
167
mkdir -p ${install_dir}/driver
L
lihui 已提交
168 169 170 171 172
cp ${lib_files} ${install_dir}/driver

# Copy release note
# cp ${script_dir}/release_note ${install_dir}

173
cd ${release_dir}
L
lihui 已提交
174

175 176 177
#  install_dir has been distinguishes  cluster from  edege, so comments this code
pkg_name=${install_dir}-${osType}-${cpuType}

haoranc's avatar
haoranc 已提交
178
if [[ "$verType" == "beta" ]] || [[ "$verType" == "preRelease" ]]; then
179
  pkg_name=${install_dir}-${verType}-${osType}-${cpuType}
180 181
elif [ "$verType" == "stable" ]; then
  pkg_name=${pkg_name}
L
lihui 已提交
182
else
183
  echo "unknow verType, nor stabel or beta"
L
lihui 已提交
184 185 186
  exit 1
fi

L
lihui 已提交
187 188 189 190
if [ "$pagMode" == "lite" ]; then
  pkg_name=${pkg_name}-Lite
fi

S
slguan 已提交
191
if [ "$osType" != "Darwin" ]; then
192
  tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
S
slguan 已提交
193
else
194 195 196 197
  tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) || :
  mv "$(basename ${pkg_name}).tar.gz" ..
  rm -rf ./*
  mv ../"$(basename ${pkg_name}).tar.gz" .
S
slguan 已提交
198
fi
L
lihui 已提交
199

L
lihui 已提交
200
cd ${curr_dir}