From d05b134a48adeb404b0b1954d6480c5b3c04d953 Mon Sep 17 00:00:00 2001 From: Zhiqiang Wang <1296468573@qq.com> Date: Sat, 8 Oct 2022 10:12:17 +0800 Subject: [PATCH] os: Mac package (#17201) * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package * os: Mac package --- README-CN.md | 28 ++- README.md | 31 ++- docs/en/05-get-started/03-package.md | 13 ++ docs/zh/05-get-started/03-package.md | 13 ++ include/os/osDir.h | 6 +- packaging/tools/TDengine | 28 +++ packaging/tools/com.taosdata.taosd.plist | 33 +++ packaging/tools/logo.png | Bin 0 -> 15645 bytes packaging/tools/mac_before_install.txt | 5 + packaging/tools/make_install.sh | 266 +++++++++++------------ packaging/tools/post.sh | 111 ++++++++-- packaging/tools/remove.sh | 40 +++- source/libs/stream/src/streamMeta.c | 2 +- source/libs/tdb/src/db/tdbDb.c | 2 +- source/os/src/osDir.c | 11 +- source/os/src/osEnv.c | 28 +-- tools/CMakeLists.txt | 11 +- tools/shell/CMakeLists.txt | 4 + 18 files changed, 427 insertions(+), 205 deletions(-) create mode 100755 packaging/tools/TDengine create mode 100644 packaging/tools/com.taosdata.taosd.plist create mode 100644 packaging/tools/logo.png create mode 100644 packaging/tools/mac_before_install.txt diff --git a/README-CN.md b/README-CN.md index 0b7e42d4fa..907e87347d 100644 --- a/README-CN.md +++ b/README-CN.md @@ -104,6 +104,12 @@ sudo yum install -y zlib-devel xz-devel snappy-devel jansson jansson-devel pkgco sudo yum config-manager --set-enabled Powertools ``` +### MacOS + +``` +sudo brew install argp-standalone pkgconfig +``` + ### 设置 golang 开发环境 TDengine 包含数个使用 Go 语言开发的组件,比如taosAdapter, 请参考 golang.org 官方文档设置 go 开发环境。 @@ -210,14 +216,14 @@ cmake .. -G "NMake Makefiles" nmake ``` - +``` # 安装 @@ -263,6 +269,24 @@ nmake install sudo make install ``` +用户可以在[文件目录结构](https://docs.taosdata.com/reference/directory/)中了解更多在操作系统中生成的目录或文件。 + +从源代码安装也会为 TDengine 配置服务管理 ,用户也可以选择[从安装包中安装](https://docs.taosdata.com/get-started/package/)。 + +安装成功后,可以在应用程序中双击 TDengine 图标启动服务,或者在终端中启动 TDengine 服务: + +```bash +launchctl start taosd +``` + +用户可以使用 TDengine CLI 来连接 TDengine 服务,在终端中,输入: + +```bash +taos +``` + +如果 TDengine CLI 连接服务成功,将会打印出欢迎消息和版本信息。如果失败,则会打印出错误消息。 + ## 快速运行 如果不希望以服务方式运行 TDengine,也可以在终端中直接运行它。也即在生成完成后,执行以下命令(在 Windows 下,生成的可执行文件会带有 .exe 后缀,例如会名为 taosd.exe ): diff --git a/README.md b/README.md index fe9bb49ed8..69d7cc13ad 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,12 @@ If the PowerTools installation fails, you can try to use: sudo yum config-manager --set-enabled powertools ``` +### MacOS + +``` +sudo brew install argp-standalone pkgconfig +``` + ### Setup golang environment TDengine includes a few components like taosAdapter developed by Go language. Please refer to golang.org official documentation for golang environment setup. @@ -213,14 +219,14 @@ cmake .. -G "NMake Makefiles" nmake ``` - +``` # Installing @@ -258,7 +264,7 @@ After building successfully, TDengine can be installed by: nmake install ``` - + +Users can find more information about directories installed on the system in the [directory and files](https://docs.tdengine.com/reference/directory/) section. + +Installing from source code will also configure service management for TDengine.Users can also choose to [install from packages](https://docs.tdengine.com/get-started/package/) for it. + +To start the service after installation, double-click the /applications/TDengine to start the program, or in a terminal, use: + +```bash +launchctl start taosd +``` + +Then users can use the TDengine CLI to connect the TDengine server. In a terminal, use: + +```bash +taos +``` + +If TDengine CLI connects the server successfully, welcome messages and version info are printed. Otherwise, an error message is shown. ## Quick Run diff --git a/docs/en/05-get-started/03-package.md b/docs/en/05-get-started/03-package.md index 25a92573fa..328e43c4f7 100644 --- a/docs/en/05-get-started/03-package.md +++ b/docs/en/05-get-started/03-package.md @@ -111,6 +111,13 @@ Note: TDengine only supports Windows Server 2016/2019 and Windows 10/11 on the W 2. Run the downloaded package to install TDengine. + + + +1. Download the Mac installation package. + +2. Run the downloaded package to install TDengine. + @@ -178,6 +185,12 @@ The following `systemctl` commands can help you manage TDengine service: After the installation is complete, run `C:\TDengine\taosd.exe` to start TDengine Server. + + + + +After the installation is complete, double-click the /applications/TDengine to start the program, or run `launchctl start taosd` to start TDengine Server. + diff --git a/docs/zh/05-get-started/03-package.md b/docs/zh/05-get-started/03-package.md index 2c857d37f3..cec430accf 100644 --- a/docs/zh/05-get-started/03-package.md +++ b/docs/zh/05-get-started/03-package.md @@ -110,6 +110,13 @@ apt-get 方式只适用于 Debian 或 Ubuntu 系统。 2. 运行可执行程序来安装 TDengine。 + + + +1. 从列表中下载获得 pkg 安装程序; + +2. 运行可执行程序来安装 TDengine。 + @@ -177,6 +184,12 @@ Active: inactive (dead) 安装后,在 `C:\TDengine` 目录下,运行 `taosd.exe` 来启动 TDengine 服务进程。 + + + + +安装后,在应用程序目录下,双击 TDengine 来启动程序,也可以运行 `launchctl start taosd` 来启动 TDengine 服务进程。 + diff --git a/include/os/osDir.h b/include/os/osDir.h index 95b1a6ee1d..2bdc99d268 100644 --- a/include/os/osDir.h +++ b/include/os/osDir.h @@ -38,9 +38,9 @@ extern "C" { #define TD_LOG_DIR_PATH "C:\\TDengine\\log\\" #elif defined(_TD_DARWIN_64) #define TD_TMP_DIR_PATH "/tmp/taosd/" -#define TD_CFG_DIR_PATH "/usr/local/etc/taos/" -#define TD_DATA_DIR_PATH "/usr/local/var/lib/taos/" -#define TD_LOG_DIR_PATH "/usr/local/var/log/taos/" +#define TD_CFG_DIR_PATH "/etc/taos/" +#define TD_DATA_DIR_PATH "/var/lib/taos/" +#define TD_LOG_DIR_PATH "/var/log/taos/" #else #define TD_TMP_DIR_PATH "/tmp/" #define TD_CFG_DIR_PATH "/etc/taos/" diff --git a/packaging/tools/TDengine b/packaging/tools/TDengine new file mode 100755 index 0000000000..3025a5639f --- /dev/null +++ b/packaging/tools/TDengine @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + + +function showAlertMessage(){ +osascript < + + + + Label + taosd + ProgramArguments + + /usr/local/bin/taosd + + ProcessType + Interactive + Disabled + + RunAtLoad + + LaunchOnlyOnce + + SessionCreate + + ExitTimeOut + 600 + KeepAlive + + SuccessfulExit + + AfterInitialDemand + + + Program + /usr/local/bin/taosd + + \ No newline at end of file diff --git a/packaging/tools/logo.png b/packaging/tools/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e739e5dd8c4b01b93e8c98606def3ae9adae257b GIT binary patch literal 15645 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 bKOl4E-xAHx7ehYNo*|@vC`i/dev/null; then + csudo="sudo " + csudouser="sudo -u ${USER} " +fi service_mod=2 os_type=0 if [ "$osType" != "Darwin" ]; then - if command -v sudo >/dev/null; then - csudo="sudo " - fi initd_mod=0 if pidof systemd &>/dev/null; then service_mod=0 @@ -142,28 +139,16 @@ function kill_taosd() { function install_main_path() { #create install main dir and all sub dir - if [ "$osType" != "Darwin" ]; then - ${csudo}rm -rf ${install_main_dir} || : - ${csudo}mkdir -p ${install_main_dir} - ${csudo}mkdir -p ${install_main_dir}/cfg - ${csudo}mkdir -p ${install_main_dir}/bin - # ${csudo}mkdir -p ${install_main_dir}/connector - ${csudo}mkdir -p ${install_main_dir}/driver - ${csudo}mkdir -p ${install_main_dir}/examples - ${csudo}mkdir -p ${install_main_dir}/include - ${csudo}mkdir -p ${install_main_dir}/share - # ${csudo}mkdir -p ${install_main_dir}/init.d - else - ${csudo}rm -rf ${install_main_dir} || ${csudo}rm -rf ${install_main_2_dir} || : - ${csudo}mkdir -p ${install_main_dir} || ${csudo}mkdir -p ${install_main_2_dir} - ${csudo}mkdir -p ${install_main_dir}/cfg || ${csudo}mkdir -p ${install_main_2_dir}/cfg - ${csudo}mkdir -p ${install_main_dir}/bin || ${csudo}mkdir -p ${install_main_2_dir}/bin - # ${csudo}mkdir -p ${install_main_dir}/connector || ${csudo}mkdir -p ${install_main_2_dir}/connector - ${csudo}mkdir -p ${install_main_dir}/driver || ${csudo}mkdir -p ${install_main_2_dir}/driver - ${csudo}mkdir -p ${install_main_dir}/examples || ${csudo}mkdir -p ${install_main_2_dir}/examples - ${csudo}mkdir -p ${install_main_dir}/include || ${csudo}mkdir -p ${install_main_2_dir}/include - ${csudo}mkdir -p ${install_main_dir}/share || ${csudo}mkdir -p ${install_main_2_dir}/share - fi + ${csudo}rm -rf ${install_main_dir} || : + ${csudo}mkdir -p ${install_main_dir} + ${csudo}mkdir -p ${install_main_dir}/cfg + ${csudo}mkdir -p ${install_main_dir}/bin + # ${csudo}mkdir -p ${install_main_dir}/connector + ${csudo}mkdir -p ${install_main_dir}/driver + ${csudo}mkdir -p ${install_main_dir}/examples + ${csudo}mkdir -p ${install_main_dir}/include + ${csudo}mkdir -p ${install_main_dir}/share + # ${csudo}mkdir -p ${install_main_dir}/init.d } function install_bin() { @@ -175,11 +160,11 @@ function install_bin() { ${csudo}rm -f ${bin_link_dir}/taosdemo || : ${csudo}rm -f ${bin_link_dir}/taosdump || : ${csudo}rm -f ${bin_link_dir}/taosx || : + ${csudo}rm -f ${bin_link_dir}/${uninstallScript} || : if [ "$osType" != "Darwin" ]; then ${csudo}rm -f ${bin_link_dir}/perfMonitor || : ${csudo}rm -f ${bin_link_dir}/set_core || : - ${csudo}rm -f ${bin_link_dir}/${uninstallScript} || : ${csudo}cp -r ${binary_dir}/build/bin/${clientName} ${install_main_dir}/bin || : [ -f ${binary_dir}/build/bin/taosBenchmark ] && ${csudo}cp -r ${binary_dir}/build/bin/taosBenchmark ${install_main_dir}/bin || : @@ -209,18 +194,26 @@ function install_bin() { [ -x ${install_main_dir}/bin/remove.sh ] && ${csudo}ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/${uninstallScript} || : else - ${csudo}cp -r ${binary_dir}/build/bin/* ${install_main_dir}/bin || ${csudo}cp -r ${binary_dir}/build/bin/* ${install_main_2_dir}/bin || : - ${csudo}cp -r ${script_dir}/taosd-dump-cfg.gdb ${install_main_dir}/bin || ${csudo}cp -r ${script_dir}/taosd-dump-cfg.gdb ${install_main_2_dir} || : - ${csudo}cp -r ${script_dir}/remove_client.sh ${install_main_dir}/bin || ${csudo}cp -r ${script_dir}/remove_client.sh ${install_main_2_dir}/bin || : - ${csudo}chmod 0555 ${install_main_dir}/bin/* || ${csudo}chmod 0555 ${install_main_2_dir}/bin/* + ${csudo}cp -r ${binary_dir}/build/bin/${clientName} ${install_main_dir}/bin || : + [ -f ${binary_dir}/build/bin/taosBenchmark ] && ${csudo}cp -r ${binary_dir}/build/bin/taosBenchmark ${install_main_dir}/bin || : + [ -f ${install_main_dir}/bin/taosBenchmark ] && ${csudo}ln -sf ${install_main_dir}/bin/taosBenchmark ${install_main_dir}/bin/taosdemo || : + [ -f ${binary_dir}/build/bin/taosdump ] && ${csudo}cp -r ${binary_dir}/build/bin/taosdump ${install_main_dir}/bin || : + [ -f ${binary_dir}/build/bin/taosadapter ] && ${csudo}cp -r ${binary_dir}/build/bin/taosadapter ${install_main_dir}/bin || : + [ -f ${binary_dir}/build/bin/udfd ] && ${csudo}cp -r ${binary_dir}/build/bin/udfd ${install_main_dir}/bin || : + [ -f ${binary_dir}/build/bin/taosx ] && ${csudo}cp -r ${binary_dir}/build/bin/taosx ${install_main_dir}/bin || : + ${csudo}cp -r ${binary_dir}/build/bin/${serverName} ${install_main_dir}/bin || : + + ${csudo}cp -r ${script_dir}/remove.sh ${install_main_dir}/bin || : + ${csudo}chmod 0555 ${install_main_dir}/bin/* #Make link - [ -x ${install_main_dir}/bin/${clientName} ] || [ -x ${install_main_2_dir}/bin/${clientName} ] && ${csudo}ln -s ${install_main_dir}/bin/${clientName} ${bin_link_dir}/${clientName} || ${csudo}ln -s ${install_main_2_dir}/bin/${clientName} || : - [ -x ${install_main_dir}/bin/${serverName} ] || [ -x ${install_main_2_dir}/bin/${serverName} ] && ${csudo}ln -s ${install_main_dir}/bin/${serverName} ${bin_link_dir}/${serverName} || ${csudo}ln -s ${install_main_2_dir}/bin/${serverName} || : - [ -x ${install_main_dir}/bin/taosadapter ] || [ -x ${install_main_2_dir}/bin/taosadapter ] && ${csudo}ln -s ${install_main_dir}/bin/taosadapter ${bin_link_dir}/taosadapter || ${csudo}ln -s ${install_main_2_dir}/bin/taosadapter || : - [ -x ${install_main_dir}/bin/udfd ] || [ -x ${install_main_2_dir}/bin/udfd ] && ${csudo}ln -s ${install_main_dir}/bin/udfd ${bin_link_dir}/udfd || ${csudo}ln -s ${install_main_2_dir}/bin/udfd || : - [ -x ${install_main_dir}/bin/taosdump ] || [ -x ${install_main_2_dir}/bin/taosdump ] && ${csudo}ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || ln -s ${install_main_2_dir}/bin/taosdump ${bin_link_dir}/taosdump || : - [ -x ${install_main_dir}/bin/taosdemo ] || [ -x ${install_main_2_dir}/bin/taosdemo ] && ${csudo}ln -s ${install_main_dir}/bin/taosdemo ${bin_link_dir}/taosdemo || ln -s ${install_main_2_dir}/bin/taosdemo ${bin_link_dir}/taosdemo || : - [ -x ${install_main_dir}/bin/taosx ] || [ -x ${install_main_2_dir}/bin/taosx ] && ${csudo}ln -s ${install_main_dir}/bin/taosx ${bin_link_dir}/taosx || ln -s ${install_main_2_dir}/bin/taosx ${bin_link_dir}/taosx || : + [ -x ${install_main_dir}/bin/${clientName} ] && ${csudo}ln -s ${install_main_dir}/bin/${clientName} ${bin_link_dir}/${clientName} || : + [ -x ${install_main_dir}/bin/${serverName} ] && ${csudo}ln -s ${install_main_dir}/bin/${serverName} ${bin_link_dir}/${serverName} || : + [ -x ${install_main_dir}/bin/taosadapter ] && ${csudo}ln -s ${install_main_dir}/bin/taosadapter ${bin_link_dir}/taosadapter || : + [ -x ${install_main_dir}/bin/udfd ] && ${csudo}ln -s ${install_main_dir}/bin/udfd ${bin_link_dir}/udfd || : + [ -x ${install_main_dir}/bin/taosdump ] && ${csudo}ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || : + [ -f ${install_main_dir}/bin/taosBenchmark ] && ${csudo}ln -sf ${install_main_dir}/bin/taosBenchmark ${install_main_dir}/bin/taosdemo || : + [ -x ${install_main_dir}/bin/taosx ] && ${csudo}ln -s ${install_main_dir}/bin/taosx ${bin_link_dir}/taosx || : + [ -x ${install_main_dir}/bin/remove.sh ] && ${csudo}ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/${uninstallScript} || : fi } @@ -331,28 +324,20 @@ function install_lib() { fi else ${csudo}cp -Rf ${binary_dir}/build/lib/libtaos.${verNumber}.dylib \ - ${install_main_dir}/driver || - ${csudo}cp -Rf ${binary_dir}/build/lib/libtaos.${verNumber}.dylib \ - ${install_main_2_dir}/driver && - ${csudo}chmod 777 ${install_main_dir}/driver/* || - ${csudo}chmod 777 ${install_main_2_dir}/driver/* - - ${csudo}ln -sf ${install_main_dir}/driver/libtaos.* \ - ${install_main_dir}/driver/libtaos.1.dylib || - ${csudo}ln -sf ${install_main_2_dir}/driver/libtaos.* \ - ${install_main_2_dir}/driver/libtaos.1.dylib || : - - ${csudo}ln -sf ${install_main_dir}/driver/libtaos.1.dylib \ - ${install_main_dir}/driver/libtaos.dylib || - ${csudo}ln -sf ${install_main_2_dir}/driver/libtaos.1.dylib \ - ${install_main_2_dir}/driver/libtaos.dylib || : + ${install_main_dir}/driver && ${csudo}chmod 777 ${install_main_dir}/driver/* ${csudo}ln -sf ${install_main_dir}/driver/libtaos.${verNumber}.dylib \ - ${lib_link_dir}/libtaos.1.dylib || - ${csudo}ln -sf ${install_main_2_dir}/driver/libtaos.${verNumber}.dylib \ - ${lib_link_dir}/libtaos.1.dylib || : + ${lib_link_dir}/libtaos.1.dylib || : ${csudo}ln -sf ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib || : + + if [ -f ${binary_dir}/build/lib/libtaosws.dylib ]; then + ${csudo}cp ${binary_dir}/build/lib/libtaosws.dylib \ + ${install_main_dir}/driver && + ${csudo}chmod 777 ${install_main_dir}/driver/libtaosws.dylib ||: + + ${csudo}ln -sf ${install_main_dir}/driver/libtaosws.dylib ${lib_link_dir}/libtaosws.dylib || : + fi fi install_jemalloc @@ -365,37 +350,30 @@ function install_lib() { } function install_header() { + ${csudo}rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taosdef.h ${inc_link_dir}/taoserror.h ${inc_link_dir}/taosudf.h || : + [ -f ${inc_link_dir}/taosws.h ] && ${csudo}rm -f ${inc_link_dir}/taosws.h ||: + ${csudo}cp -f ${source_dir}/include/client/taos.h ${source_dir}/include/common/taosdef.h ${source_dir}/include/util/taoserror.h ${source_dir}/include/libs/function/taosudf.h \ + ${install_main_dir}/include && ${csudo}chmod 644 ${install_main_dir}/include/* - if [ "$osType" != "Darwin" ]; then - ${csudo}rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taosdef.h ${inc_link_dir}/taoserror.h ${inc_link_dir}/taosudf.h || : - [ -f ${inc_link_dir}/taosws.h ] && ${csudo}rm -f ${inc_link_dir}/taosws.h ||: - ${csudo}cp -f ${source_dir}/include/client/taos.h ${source_dir}/include/common/taosdef.h ${source_dir}/include/util/taoserror.h ${source_dir}/include/libs/function/taosudf.h \ - ${install_main_dir}/include && ${csudo}chmod 644 ${install_main_dir}/include/* - - if [ -f ${binary_dir}/build/include/taosws.h ]; then - ${csudo}cp -f ${binary_dir}/build/include/taosws.h ${install_main_dir}/include && ${csudo}chmod 644 ${install_main_dir}/include/taosws.h ||: - ${csudo}ln -sf ${install_main_dir}/include/taosws.h ${inc_link_dir}/taosws.h ||: - fi + if [ -f ${binary_dir}/build/include/taosws.h ]; then + ${csudo}cp -f ${binary_dir}/build/include/taosws.h ${install_main_dir}/include && ${csudo}chmod 644 ${install_main_dir}/include/taosws.h ||: + ${csudo}ln -sf ${install_main_dir}/include/taosws.h ${inc_link_dir}/taosws.h ||: + fi - ${csudo}ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h - ${csudo}ln -s ${install_main_dir}/include/taosdef.h ${inc_link_dir}/taosdef.h - ${csudo}ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h - ${csudo}ln -s ${install_main_dir}/include/taosudf.h ${inc_link_dir}/taosudf.h + ${csudo}ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h + ${csudo}ln -s ${install_main_dir}/include/taosdef.h ${inc_link_dir}/taosdef.h + ${csudo}ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h + ${csudo}ln -s ${install_main_dir}/include/taosudf.h ${inc_link_dir}/taosudf.h - else - ${csudo}cp -f ${source_dir}/include/client/taos.h ${source_dir}/include/common/taosdef.h ${source_dir}/include/util/taoserror.h ${source_dir}/include/libs/function/taosudf.h \ - ${install_main_dir}/include || - ${csudo}cp -f ${source_dir}/include/client/taos.h ${source_dir}/include/common/taosdef.h ${source_dir}/include/util/taoserror.h ${source_dir}/include/libs/function/taosudf.h \ - ${install_main_2_dir}/include && - ${csudo}chmod 644 ${install_main_dir}/include/* || ${csudo}chmod 644 ${install_main_2_dir}/include/* - fi + ${csudo}chmod 644 ${install_main_dir}/include/* } function install_config() { if [ ! -f ${cfg_install_dir}/${configFile} ]; then ${csudo}mkdir -p ${cfg_install_dir} [ -f ${script_dir}/../cfg/${configFile} ] && - ${csudo}cp ${script_dir}/../cfg/${configFile} ${cfg_install_dir} + ${csudo}cp ${script_dir}/../cfg/${configFile} ${cfg_install_dir} && + ${csudo}cp ${script_dir}/../cfg/${configFile} ${cfg_dir} ${csudo}chmod 644 ${cfg_install_dir}/${configFile} ${csudo}cp -f ${script_dir}/../cfg/${configFile} \ ${cfg_install_dir}/${configFile}.${verNumber} @@ -404,6 +382,7 @@ function install_config() { else ${csudo}cp -f ${script_dir}/../cfg/${configFile} \ ${cfg_install_dir}/${configFile}.${verNumber} + ${csudo}cp -f ${script_dir}/../cfg/${configFile} ${cfg_dir} fi } @@ -411,7 +390,8 @@ function install_taosadapter_config() { if [ ! -f "${cfg_install_dir}/taosadapter.toml" ]; then ${csudo}mkdir -p ${cfg_install_dir} || : [ -f ${binary_dir}/test/cfg/taosadapter.toml ] && - ${csudo}cp ${binary_dir}/test/cfg/taosadapter.toml ${cfg_install_dir} || : + ${csudo}cp ${binary_dir}/test/cfg/taosadapter.toml ${cfg_install_dir} && + ${csudo}cp ${binary_dir}/test/cfg/taosadapter.toml ${cfg_dir} || : [ -f ${cfg_install_dir}/taosadapter.toml ] && ${csudo}chmod 644 ${cfg_install_dir}/taosadapter.toml || : [ -f ${binary_dir}/test/cfg/taosadapter.toml ] && @@ -424,6 +404,7 @@ function install_taosadapter_config() { if [ -f "${binary_dir}/test/cfg/taosadapter.toml" ]; then ${csudo}cp -f ${binary_dir}/test/cfg/taosadapter.toml \ ${cfg_install_dir}/taosadapter.toml.${verNumber} || : + ${csudo}cp -f ${binary_dir}/test/cfg/taosadapter.toml ${cfg_dir} || : fi fi } @@ -431,20 +412,12 @@ function install_taosadapter_config() { function install_log() { ${csudo}rm -rf ${log_dir} || : ${csudo}mkdir -p ${log_dir} && ${csudo}chmod 777 ${log_dir} - if [ "$osType" != "Darwin" ]; then - ${csudo}ln -s ${log_dir} ${install_main_dir}/log - else - ${csudo}ln -s ${log_dir} ${install_main_dir}/log || ${csudo}ln -s ${log_dir} ${install_main_2_dir}/log - fi + ${csudo}ln -s ${log_dir} ${install_main_dir}/log } function install_data() { - ${csudo}mkdir -p ${data_dir} - if [ "$osType" != "Darwin" ]; then - ${csudo}ln -s ${data_dir} ${install_main_dir}/data - else - ${csudo}ln -s ${data_dir} ${install_main_dir}/data || ${csudo}ln -s ${data_dir} ${install_main_2_dir}/data - fi + ${csudo}mkdir -p ${data_dir} && ${csudo}chmod 777 ${data_dir} + ${csudo}ln -s ${data_dir} ${install_main_dir}/data } function install_connector() { @@ -453,31 +426,17 @@ function install_connector() { else echo "WARNING: go connector not found, please check if want to use it!" fi - if [ "$osType" != "Darwin" ]; then - ${csudo}cp -rf ${source_dir}/src/connector/python ${install_main_dir}/connector || : - ${csudo}cp ${binary_dir}/build/lib/*.jar ${install_main_dir}/connector &>/dev/null && ${csudo}chmod 777 ${install_main_dir}/connector/*.jar || echo &>/dev/null || : - else - ${csudo}cp -rf ${source_dir}/src/connector/python ${install_main_dir}/connector || ${csudo}cp -rf ${source_dir}/src/connector/python ${install_main_2_dir}/connector || : - ${csudo}cp ${binary_dir}/build/lib/*.jar ${install_main_dir}/connector &>/dev/null && ${csudo}chmod 777 ${install_main_dir}/connector/*.jar || echo &>/dev/null || : - ${csudo}cp ${binary_dir}/build/lib/*.jar ${install_main_2_dir}/connector &>/dev/null && ${csudo}chmod 777 ${install_main_2_dir}/connector/*.jar || echo &>/dev/null || : - fi + ${csudo}cp -rf ${source_dir}/src/connector/python ${install_main_dir}/connector || : + ${csudo}cp ${binary_dir}/build/lib/*.jar ${install_main_dir}/connector &>/dev/null && ${csudo}chmod 777 ${install_main_dir}/connector/*.jar || echo &>/dev/null || : } function install_examples() { - if [ "$osType" != "Darwin" ]; then - ${csudo}cp -rf ${source_dir}/examples/* ${install_main_dir}/examples || : - else - ${csudo}cp -rf ${source_dir}/examples/* ${install_main_dir}/examples || ${csudo}cp -rf ${source_dir}/examples/* ${install_main_2_dir}/examples || : - fi + ${csudo}cp -rf ${source_dir}/examples/* ${install_main_dir}/examples || : } function install_web() { if [ -d "${binary_dir}/build/share" ]; then - if [ "$osType" != "Darwin" ]; then - ${csudo}cp -rf ${binary_dir}/build/share/* ${install_main_dir}/share || : - else - ${csudo}cp -rf ${binary_dir}/build/share/* ${install_main_dir}/share || ${csudo}cp -rf ${binary_dir}/build/share/* ${install_main_2_dir}/share || : - fi + ${csudo}cp -rf ${binary_dir}/build/share/* ${install_main_dir}/share || : fi } @@ -575,13 +534,36 @@ function install_taosadapter_service() { fi } +function install_service_on_launchctl() { + ${csudouser}launchctl unload -w /Library/LaunchDaemons/com.taosdata.taosd.plist > /dev/null 2>&1 || : + ${csudo}cp ${script_dir}/com.taosdata.taosd.plist /Library/LaunchDaemons/com.taosdata.taosd.plist + ${csudouser}launchctl load -w /Library/LaunchDaemons/com.taosdata.taosd.plist || : +} + function install_service() { - if ((${service_mod} == 0)); then - install_service_on_systemd - elif ((${service_mod} == 1)); then - install_service_on_sysvinit + if [ "$osType" != "Darwin" ]; then + if ((${service_mod} == 0)); then + install_service_on_systemd + elif ((${service_mod} == 1)); then + install_service_on_sysvinit + else + kill_taosd + fi else - kill_taosd + install_service_on_launchctl + fi +} +function install_app() { + if [ "$osType" = "Darwin" ]; then + ${csudo}rm -rf /Applications/TDengine.app && + ${csudo}mkdir -p /Applications/TDengine.app/Contents/MacOS/ && + ${csudo}cp ${script_dir}/TDengine /Applications/TDengine.app/Contents/MacOS/ && + echo "" | ${csudo}tee /Applications/TDengine.app/Contents/Info.plist > /dev/null && + ${csudo}sips -i ${script_dir}/logo.png > /dev/null && + DeRez -only icns ${script_dir}/logo.png | ${csudo}tee /Applications/TDengine.app/mac_logo.rsrc > /dev/null && + ${csudo}rez -append /Applications/TDengine.app/mac_logo.rsrc -o $'/Applications/TDengine.app/Icon\r' && + ${csudo}SetFile -a C /Applications/TDengine.app/ && + ${csudo}rm /Applications/TDengine.app/mac_logo.rsrc fi } @@ -610,6 +592,7 @@ function update_TDengine() { install_examples install_web install_bin + install_app install_service install_taosadapter_service @@ -633,7 +616,11 @@ function update_TDengine() { [ -f ${service_config_dir}/taosadapter.service ] && [ -f ${installDir}/bin/taosadapter ] && \ echo -e "${GREEN_DARK}To start Taos Adapter ${NC}: ${csudo}service taosadapter start${NC}" else - echo -e "${GREEN_DARK}To start ${productName} ${NC}: ${serverName}${NC}" + if [ "$osType" != "Darwin" ]; then + echo -e "${GREEN_DARK}To start ${productName} ${NC}: ${serverName}${NC}" + else + echo -e "${GREEN_DARK}To start service ${NC}: launchctl start ${serverName}${NC}" + fi [ -f ${installDir}/bin/taosadapter ] && \ echo -e "${GREEN_DARK}To start Taos Adapter ${NC}: taosadapter &${NC}" fi @@ -656,6 +643,7 @@ function install_TDengine() { # install_connector install_examples install_bin + install_app install_service install_taosadapter_service @@ -679,7 +667,11 @@ function install_TDengine() { [ -f ${service_config_dir}/taosadapter.service ] && [ -f ${installDir}/bin/taosadapter ] && \ echo -e "${GREEN_DARK}To start Taos Adapter ${NC}: ${csudo}service taosadapter start${NC}" else - echo -e "${GREEN_DARK}To start ${productName} ${NC}: ./${serverName}${NC}" + if [ "$osType" != "Darwin" ]; then + echo -e "${GREEN_DARK}To start ${productName} ${NC}: ${serverName}${NC}" + else + echo -e "${GREEN_DARK}To start service ${NC}: launchctl start ${serverName}${NC}" + fi [ -f ${installDir}/bin/taosadapter ] && \ echo -e "${GREEN_DARK}To start Taos Adapter ${NC}: taosadapter &${NC}" fi @@ -694,14 +686,8 @@ echo source directory: $1 echo binary directory: $2 if [ -x ${data_dir}/dnode/dnodeCfg.json ]; then echo -e "\033[44;31;5mThe default data directory ${data_dir} contains old data of tdengine 2.x, please clear it before installing!\033[0m" -elif [ "$osType" != "Darwin" ]; then - if [ -x ${bin_dir}/${clientName} ]; then - update_TDengine - else - install_TDengine - fi else - if [ -x ${bin_dir}/${clientName} ] || [ -x ${bin_2_dir}/${clientName} ]; then + if [ -x ${bin_dir}/${clientName} ]; then update_TDengine else install_TDengine diff --git a/packaging/tools/post.sh b/packaging/tools/post.sh index fcc8a2a942..29d4ac017c 100755 --- a/packaging/tools/post.sh +++ b/packaging/tools/post.sh @@ -7,27 +7,52 @@ iplist="" serverFqdn="" -# -----------------------Variables definition--------------------- -script_dir=$(dirname $(readlink -f "$0")) +osType=`uname` + # Dynamic directory data_dir="/var/lib/taos" log_dir="/var/log/taos" -data_link_dir="/usr/local/taos/data" -log_link_dir="/usr/local/taos/log" -install_main_dir="/usr/local/taos" +cfg_install_dir="/etc/taos" -# static directory -cfg_dir="/usr/local/taos/cfg" -bin_dir="/usr/local/taos/bin" -lib_dir="/usr/local/taos/driver" -init_d_dir="/usr/local/taos/init.d" -inc_dir="/usr/local/taos/include" +if [ "$osType" != "Darwin" ]; then + script_dir=$(dirname $(readlink -f "$0")) + verNumber="" + lib_file_ext="so" + + bin_link_dir="/usr/bin" + lib_link_dir="/usr/lib" + lib64_link_dir="/usr/lib64" + inc_link_dir="/usr/include" + + install_main_dir="/usr/local/taos" +else + script_dir=${source_dir}/packaging/tools + verNumber=`ls tdengine/driver | grep -E "libtaos\.[0-9]\.[0-9]" | sed "s/libtaos.//g" | sed "s/.dylib//g" | head -n 1` + lib_file_ext="dylib" + + bin_link_dir="/usr/local/bin" + lib_link_dir="/usr/local/lib" + lib64_link_dir="/usr/local/lib" + inc_link_dir="/usr/local/include" + + if [ -d "/usr/local/Cellar/" ];then + install_main_dir="/usr/local/Cellar/tdengine/${verNumber}" + elif [ -d "/opt/homebrew/Cellar/" ];then + install_main_dir="/opt/homebrew/Cellar/tdengine/${verNumber}" + else + install_main_dir="/usr/local/taos" + fi +fi -cfg_install_dir="/etc/taos" -bin_link_dir="/usr/bin" -lib_link_dir="/usr/lib" -lib64_link_dir="/usr/lib64" -inc_link_dir="/usr/include" +data_link_dir="${install_main_dir}/data" +log_link_dir="${install_main_dir}/log" + +# static directory +cfg_dir="${install_main_dir}/cfg" +bin_dir="${install_main_dir}/bin" +lib_dir="${install_main_dir}/driver" +init_d_dir="${install_main_dir}/init.d" +inc_dir="${install_main_dir}/include" service_config_dir="/etc/systemd/system" @@ -40,8 +65,10 @@ GREEN_UNDERLINE='\033[4;32m' NC='\033[0m' csudo="" +csudouser="" if command -v sudo > /dev/null; then csudo="sudo " + csudouser="sudo -u ${USER} " fi initd_mod=0 @@ -63,6 +90,14 @@ elif $(which service &> /dev/null); then else service_mod=2 fi +if [ "$osType" = "Darwin" ]; then + if [ -d "${install_main_dir}" ];then + ${csudo}rm -rf ${install_main_dir} + fi + ${csudo}mkdir -p ${install_main_dir} + ${csudo}rm -rf ${install_main_dir} + ${csudo}cp -rf tdengine ${install_main_dir} +fi function kill_taosadapter() { # ${csudo}pkill -f taosadapter || : @@ -96,22 +131,24 @@ function install_lib() { ${csudo}rm -f ${lib_link_dir}/libtaos* || : ${csudo}rm -f ${lib64_link_dir}/libtaos* || : - [ -f ${lib_link_dir}/libtaosws.so ] && ${csudo}rm -f ${lib_link_dir}/libtaosws.so || : - [ -f ${lib64_link_dir}/libtaosws.so ] && ${csudo}rm -f ${lib64_link_dir}/libtaosws.so || : + [ -f ${lib_link_dir}/libtaosws.${lib_file_ext} ] && ${csudo}rm -f ${lib_link_dir}/libtaosws.${lib_file_ext} || : + [ -f ${lib64_link_dir}/libtaosws.${lib_file_ext} ] && ${csudo}rm -f ${lib64_link_dir}/libtaosws.${lib_file_ext} || : ${csudo}ln -s ${lib_dir}/libtaos.* ${lib_link_dir}/libtaos.so.1 ${csudo}ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so - [ -f ${lib_dir}/libtaosws.so ] && ${csudo}ln -sf ${lib_dir}/libtaosws.so ${lib_link_dir}/libtaosws.so ||: + [ -f ${lib_dir}/libtaosws.${lib_file_ext} ] && ${csudo}ln -sf ${lib_dir}/libtaosws.${lib_file_ext} ${lib_link_dir}/libtaosws.${lib_file_ext} ||: if [[ -d ${lib64_link_dir} && ! -e ${lib64_link_dir}/libtaos.so ]]; then ${csudo}ln -s ${lib_dir}/libtaos.* ${lib64_link_dir}/libtaos.so.1 || : ${csudo}ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || : - [ -f ${lib_dir}/libtaosws.so ] && ${csudo}ln -sf ${lib_dir}/libtaosws.so ${lib64_link_dir}/libtaosws.so || : + [ -f ${lib_dir}/libtaosws.${lib_file_ext} ] && ${csudo}ln -sf ${lib_dir}/libtaosws.${lib_file_ext} ${lib64_link_dir}/libtaosws.${lib_file_ext} || : fi - ${csudo}ldconfig + if [ "$osType" != "Darwin" ]; then + ${csudo}ldconfig + fi } function install_bin() { @@ -138,6 +175,7 @@ function install_bin() { [ -x ${bin_dir}/TDinsight.sh ] && ${csudo}ln -sf ${bin_dir}/TDinsight.sh ${bin_link_dir}/TDinsight.sh || : [ -x ${bin_dir}/taosdump ] && ${csudo}ln -s ${bin_dir}/taosdump ${bin_link_dir}/taosdump || : [ -x ${bin_dir}/set_core.sh ] && ${csudo}ln -s ${bin_dir}/set_core.sh ${bin_link_dir}/set_core || : + [ -x ${bin_dir}/remove.sh ] && ${csudo}ln -s ${bin_dir}/remove.sh ${bin_link_dir}/rmtaos || : } function add_newHostname_to_hosts() { @@ -466,6 +504,14 @@ function install_service_on_systemd() { ${csudo}systemctl enable taosd } +function install_service_on_launchctl() { + if [ -f ${install_main_dir}/service/com.taosdata.taosd.plist ]; then + ${csudouser}launchctl unload -w /Library/LaunchDaemons/com.taosdata.taosd.plist > /dev/null 2>&1 || : + ${csudo}cp ${install_main_dir}/service/com.taosdata.taosd.plist /Library/LaunchDaemons/com.taosdata.taosd.plist || : + ${csudouser}launchctl load -w /Library/LaunchDaemons/com.taosdata.taosd.plist || : + fi +} + function install_taosadapter_service() { if ((${service_mod}==0)); then [ -f ${script_dir}/../cfg/taosadapter.service ] &&\ @@ -476,6 +522,7 @@ function install_taosadapter_service() { } function install_service() { + if [ "$osType" != "Darwin" ]; then if ((${service_mod}==0)); then install_service_on_systemd elif ((${service_mod}==1)); then @@ -485,6 +532,25 @@ function install_service() { kill_taosadapter kill_taosd fi + else + install_service_on_launchctl + fi +} + +function install_app() { + if [ "$osType" = "Darwin" ]; then + if [ -f ${install_main_dir}/service/TDengine ]; then + ${csudo}rm -rf /Applications/TDengine.app && + ${csudo}mkdir -p /Applications/TDengine.app/Contents/MacOS/ && + ${csudo}cp ${install_main_dir}/service/TDengine /Applications/TDengine.app/Contents/MacOS/ && + echo "" | ${csudo}tee /Applications/TDengine.app/Contents/Info.plist > /dev/null && + ${csudo}sips -i ${install_main_dir}/service/logo.png > /dev/null && + DeRez -only icns ${install_main_dir}/service/logo.png | ${csudo}tee /Applications/TDengine.app/mac_logo.rsrc > /dev/null && + ${csudo}rez -append /Applications/TDengine.app/mac_logo.rsrc -o $'/Applications/TDengine.app/Icon\r' && + ${csudo}SetFile -a C /Applications/TDengine.app/ && + ${csudo}rm /Applications/TDengine.app/mac_logo.rsrc + fi + fi } function install_TDengine() { @@ -492,7 +558,7 @@ function install_TDengine() { #install log and data dir , then ln to /usr/local/taos ${csudo}mkdir -p ${log_dir} && ${csudo}chmod 777 ${log_dir} - ${csudo}mkdir -p ${data_dir} + ${csudo}mkdir -p ${data_dir} && ${csudo}chmod 777 ${data_dir} ${csudo}rm -rf ${log_link_dir} || : ${csudo}rm -rf ${data_link_dir} || : @@ -508,6 +574,7 @@ function install_TDengine() { install_taosadapter_config install_taosadapter_service install_service + install_app # Ask if to start the service #echo diff --git a/packaging/tools/remove.sh b/packaging/tools/remove.sh index a648750904..6172fc9bc8 100755 --- a/packaging/tools/remove.sh +++ b/packaging/tools/remove.sh @@ -6,12 +6,31 @@ set -e #set -x verMode=edge +osType=`uname` RED='\033[0;31m' GREEN='\033[1;32m' NC='\033[0m' -installDir="/usr/local/taos" +if [ "$osType" != "Darwin" ]; then + installDir="/usr/local/taos" + bin_link_dir="/usr/bin" + lib_link_dir="/usr/lib" + lib64_link_dir="/usr/lib64" + inc_link_dir="/usr/include" +else + if [ -d "/usr/local/Cellar/" ];then + installDir="/usr/local/Cellar/tdengine/${verNumber}" + elif [ -d "/opt/homebrew/Cellar/" ];then + installDir="/opt/homebrew/Cellar/tdengine/${verNumber}" + else + installDir="/usr/local/taos" + fi + bin_link_dir="/usr/local/bin" + lib_link_dir="/usr/local/lib" + lib64_link_dir="/usr/local/lib" + inc_link_dir="/usr/local/include" +fi serverName="taosd" clientName="taos" uninstallScript="rmtaos" @@ -22,11 +41,8 @@ install_main_dir=${installDir} data_link_dir=${installDir}/data log_link_dir=${installDir}/log cfg_link_dir=${installDir}/cfg -bin_link_dir="/usr/bin" local_bin_link_dir="/usr/local/bin" -lib_link_dir="/usr/lib" -lib64_link_dir="/usr/lib64" -inc_link_dir="/usr/include" + service_config_dir="/etc/systemd/system" taos_service_name=${serverName} @@ -82,6 +98,7 @@ function clean_bin() { # Remove link ${csudo}rm -f ${bin_link_dir}/${clientName} || : ${csudo}rm -f ${bin_link_dir}/${serverName} || : + ${csudo}rm -f ${bin_link_dir}/udfd || : ${csudo}rm -f ${bin_link_dir}/taosadapter || : ${csudo}rm -f ${bin_link_dir}/taosBenchmark || : ${csudo}rm -f ${bin_link_dir}/taosdemo || : @@ -103,7 +120,7 @@ function clean_lib() { [ -f ${lib_link_dir}/libtaosws.so ] && ${csudo}rm -f ${lib_link_dir}/libtaosws.so || : ${csudo}rm -f ${lib64_link_dir}/libtaos.* || : - [ -f ${lib64_link_dir}/libtaosws.so ] && ${csudo}rm -f ${lib64_link_dir}/libtaosws.so || : + [ -f ${lib64_link_dir}/libtaosws.* ] && ${csudo}rm -f ${lib64_link_dir}/libtaosws.* || : #${csudo}rm -rf ${v15_java_app_dir} || : } @@ -195,12 +212,20 @@ function clean_service_on_sysvinit() { fi } +function clean_service_on_launchctl() { + ${csudouser}launchctl unload -w /Library/LaunchDaemons/com.taosdata.taosd.plist > /dev/null 2>&1 || : + ${csudo}rm /Library/LaunchDaemons/com.taosdata.taosd.plist > /dev/null 2>&1 || : +} + function clean_service() { if ((${service_mod} == 0)); then clean_service_on_systemd elif ((${service_mod} == 1)); then clean_service_on_sysvinit else + if [ "$osType" = "Darwin" ]; then + clean_service_on_launchctl + fi kill_taosadapter kill_taosd kill_tarbitrator @@ -241,6 +266,9 @@ elif echo $osinfo | grep -qwi "centos"; then # echo "this is centos system" ${csudo}rpm -e --noscripts tdengine >/dev/null 2>&1 || : fi +if [ "$osType" = "Darwin" ]; then + ${csudo}rm -rf /Applications/TDengine.app +fi echo -e "${GREEN}${productName} is removed successfully!${NC}" echo diff --git a/source/libs/stream/src/streamMeta.c b/source/libs/stream/src/streamMeta.c index 1442ed2e05..63a28e17ed 100644 --- a/source/libs/stream/src/streamMeta.c +++ b/source/libs/stream/src/streamMeta.c @@ -32,7 +32,7 @@ SStreamMeta* streamMetaOpen(const char* path, void* ahandle, FTaskExpand expandF } sprintf(streamPath, "%s/%s", pMeta->path, "checkpoints"); - mkdir(streamPath, 0755); + taosMulModeMkDir(streamPath, 0755); taosMemoryFree(streamPath); if (tdbTbOpen("task.db", sizeof(int32_t), -1, NULL, pMeta->db, &pMeta->pTaskDb) < 0) { diff --git a/source/libs/tdb/src/db/tdbDb.c b/source/libs/tdb/src/db/tdbDb.c index cc8bdca75d..42aeeae19a 100644 --- a/source/libs/tdb/src/db/tdbDb.c +++ b/source/libs/tdb/src/db/tdbDb.c @@ -62,7 +62,7 @@ int32_t tdbOpen(const char *dbname, int32_t szPage, int32_t pages, TDB **ppDb) { } memset(pDb->pgrHash, 0, tsize); - mkdir(dbname, 0755); + taosMulModeMkDir(dbname, 0755); #ifdef USE_MAINDB // open main db diff --git a/source/os/src/osDir.c b/source/os/src/osDir.c index cf74525543..0cc946ac21 100644 --- a/source/os/src/osDir.c +++ b/source/os/src/osDir.c @@ -121,6 +121,8 @@ int32_t taosMkDir(const char *dirname) { if (taosDirExist(dirname)) return 0; #ifdef WINDOWS int32_t code = _mkdir(dirname, 0755); +#elif defined(DARWIN) + int32_t code = mkdir(dirname, 0777); #else int32_t code = mkdir(dirname, 0755); #endif @@ -156,6 +158,8 @@ int32_t taosMulMkDir(const char *dirname) { *pos = '\0'; #ifdef WINDOWS code = _mkdir(temp, 0755); +#elif defined(DARWIN) + code = mkdir(dirname, 0777); #else code = mkdir(temp, 0755); #endif @@ -170,6 +174,8 @@ int32_t taosMulMkDir(const char *dirname) { if (*(pos - 1) != TD_DIRSEP[0]) { #ifdef WINDOWS code = _mkdir(temp, 0755); +#elif defined(DARWIN) + code = mkdir(dirname, 0777); #else code = mkdir(temp, 0755); #endif @@ -179,7 +185,6 @@ int32_t taosMulMkDir(const char *dirname) { } } - // int32_t code = mkdir(dirname, 0755); if (code < 0 && errno == EEXIST) { return 0; } @@ -215,6 +220,8 @@ int32_t taosMulModeMkDir(const char *dirname, int mode) { *pos = '\0'; #ifdef WINDOWS code = _mkdir(temp, mode); +#elif defined(DARWIN) + code = mkdir(dirname, 0777); #else code = mkdir(temp, mode); #endif @@ -229,6 +236,8 @@ int32_t taosMulModeMkDir(const char *dirname, int mode) { if (*(pos - 1) != TD_DIRSEP[0]) { #ifdef WINDOWS code = _mkdir(temp, mode); +#elif defined(DARWIN) + code = mkdir(dirname, 0777); #else code = mkdir(temp, mode); #endif diff --git a/source/os/src/osEnv.c b/source/os/src/osEnv.c index 8f6800c7be..9511230f8d 100644 --- a/source/os/src/osEnv.c +++ b/source/os/src/osEnv.c @@ -59,34 +59,18 @@ void osDefaultInit() { if (tmpDir != NULL) { strcpy(tsTempDir, tmpDir); } - - if (configDir[0] == 0) { - strcpy(configDir, "C:\\TDengine\\cfg"); - } - strcpy(tsDataDir, "C:\\TDengine\\data"); - strcpy(tsLogDir, "C:\\TDengine\\log"); - strcpy(tsTempDir, "C:\\Windows\\Temp"); strcpy(tsOsName, "Windows"); - #elif defined(_TD_DARWIN_64) - if (configDir[0] == 0) { - strcpy(configDir, "/usr/local/etc/taos"); - } - strcpy(tsDataDir, "/usr/local/var/lib/taos"); - strcpy(tsLogDir, "/usr/local/var/log/taos"); - strcpy(tsTempDir, "/tmp/taosd"); strcpy(tsOsName, "Darwin"); - #else - if (configDir[0] == 0) { - strcpy(configDir, "/etc/taos"); - } - strcpy(tsDataDir, "/var/lib/taos"); - strcpy(tsLogDir, "/var/log/taos"); - strcpy(tsTempDir, "/tmp"); strcpy(tsOsName, "Linux"); - #endif + if (configDir[0] == 0) { + strcpy(configDir, TD_CFG_DIR_PATH); + } + strcpy(tsDataDir, TD_DATA_DIR_PATH); + strcpy(tsLogDir, TD_LOG_DIR_PATH); + strcpy(tsTempDir, TD_TMP_DIR_PATH); } void osUpdate() { diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 03097e31b9..98d21a4f2c 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,6 +1,11 @@ IF (TD_WEBSOCKET) + IF (TD_LINUX) + SET(websocket_lib_file "libtaosws.so") + ELSEIF (TD_DARWIN) + SET(websocket_lib_file "libtaosws.dylib") + ENDIF () MESSAGE("${Green} use libtaos-ws${ColourReset}") - IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/taosws-rs/target/release/libtaosws.so" OR "${CMAKE_CURRENT_SOURCE_DIR}/taosws-rs/target/release/libtaosws.so" IS_NEWER_THAN "${CMAKE_SOURCE_DIR}/.git/modules/tools/taosws-rs/FETCH_HEAD") + IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/taosws-rs/target/release/${websocket_lib_file}" OR "${CMAKE_CURRENT_SOURCE_DIR}/taosws-rs/target/release/${websocket_lib_file}" IS_NEWER_THAN "${CMAKE_SOURCE_DIR}/.git/modules/tools/taosws-rs/FETCH_HEAD") include(ExternalProject) ExternalProject_Add(taosws-rs PREFIX "taosws-rs" @@ -15,7 +20,7 @@ IF (TD_WEBSOCKET) COMMAND cargo build --release -p taos-ws-sys COMMAND ./taos-ws-sys/ci/package.sh INSTALL_COMMAND - COMMAND cmake -E copy target/libtaosws/libtaosws.so ${CMAKE_BINARY_DIR}/build/lib + COMMAND cmake -E copy target/libtaosws/${websocket_lib_file} ${CMAKE_BINARY_DIR}/build/lib COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/build/include COMMAND cmake -E copy target/libtaosws/taosws.h ${CMAKE_BINARY_DIR}/build/include ) @@ -34,7 +39,7 @@ IF (TD_WEBSOCKET) COMMAND cargo build --release -p taos-ws-sys COMMAND ./taos-ws-sys/ci/package.sh INSTALL_COMMAND - COMMAND cmake -E copy target/libtaosws/libtaosws.so ${CMAKE_BINARY_DIR}/build/lib + COMMAND cmake -E copy target/libtaosws/${websocket_lib_file} ${CMAKE_BINARY_DIR}/build/lib COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/build/include COMMAND cmake -E copy target/libtaosws/taosws.h ${CMAKE_BINARY_DIR}/build/include ) diff --git a/tools/shell/CMakeLists.txt b/tools/shell/CMakeLists.txt index 488b623f89..45a6f8c16f 100644 --- a/tools/shell/CMakeLists.txt +++ b/tools/shell/CMakeLists.txt @@ -6,6 +6,10 @@ IF (TD_LINUX AND TD_WEBSOCKET) ADD_DEFINITIONS(-DWEBSOCKET -I${CMAKE_BINARY_DIR}/build/include -ltaosws) SET(LINK_WEBSOCKET "-L${CMAKE_BINARY_DIR}/build/lib -ltaosws") ADD_DEPENDENCIES(shell taosws-rs) +ELSEIF (TD_DARWIN AND TD_WEBSOCKET) + ADD_DEFINITIONS(-DWEBSOCKET -I${CMAKE_BINARY_DIR}/build/include) + SET(LINK_WEBSOCKET "${CMAKE_BINARY_DIR}/build/lib/libtaosws.dylib") + ADD_DEPENDENCIES(shell taosws-rs) ELSE () SET(LINK_WEBSOCKET "") ENDIF () -- GitLab