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
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
16
dbName=$9
L
lihui 已提交
17

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

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

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

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

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

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

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

L
lihui 已提交
71 72 73 74 75
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 已提交
76
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/${configFile} ${install_dir}/cfg/${configFile}
L
lihui 已提交
77 78
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/*

79
if [ -f ${build_dir}/bin/jemalloc-config ]; then
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
  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
110 111
fi

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

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

cd ${curr_dir}
S
slguan 已提交
124 125
cp ${install_files} ${install_dir}
if [ "$osType" == "Darwin" ]; then
126 127
  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 已提交
128
fi
L
lihui 已提交
129
if [ "$pagMode" == "lite" ]; then
130 131
  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 已提交
132
fi
S
slguan 已提交
133
chmod a+x ${install_dir}/install_client.sh
L
lihui 已提交
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
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 已提交
165
fi
166

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

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

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

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

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

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

S
slguan 已提交
192
if [ "$osType" != "Darwin" ]; then
193
  tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
S
slguan 已提交
194
else
195 196 197 198
  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 已提交
199
fi
L
lihui 已提交
200

L
lihui 已提交
201
cd ${curr_dir}