name: tdengine
base: core20
version: '2.4.0.0'
icon: snap/gui/t-dengine.svg
summary: an open-source big data platform designed and optimized for IoT. 
description: |
  TDengine is an open-source big data platform designed and optimized for Internet of Things (IoT), Connected Vehicles, and Industrial IoT. Besides the 10x faster time-series database, it provides caching, stream computing, message queuing and other functionalities to reduce the complexity and costs of development and operations.

grade: stable
confinement: strict

apps:
  tdengine:
    command: launcher.sh
    daemon: simple
    restart-condition: always
    plugs:
      - network
      - network-bind
      - system-observe

  taos:
    command: taoswrapper.sh
    plugs:
      - network
      - system-observe

parts:
  script:
    plugin: dump
    source: snap/local/
    prime:
      - launcher.sh
      - taoswrapper.sh

  tdengine:
    plugin: cmake
    source: .
    source-type: local
    build-packages:
      - gcc
      - g++
      - make
      - cmake
    cmake-parameters:
      - -DCMAKE_BUILD_TYPE=Release
      - -DBUILD_HTTP=true
    override-build: |
      snapcraftctl build
      if [ ! -d $SNAPCRAFT_STAGE/usr ]; then
        mkdir $SNAPCRAFT_STAGE/usr
      fi

      if [ ! -d $SNAPCRAFT_STAGE/etc/taos ]; then
        mkdir -p $SNAPCRAFT_STAGE/etc/taos
      fi

      cp $SNAPCRAFT_PART_BUILD/build/* -rf $SNAPCRAFT_STAGE/usr/
      cp $SNAPCRAFT_PART_SRC/packaging/cfg/taos.cfg -rf $SNAPCRAFT_STAGE/etc/taos/

      if [ ! -d $SNAPCRAFT_STAGE/var/lib/taos ]; then
        mkdir -p $SNAPCRAFT_STAGE/var/lib/taos
      fi
      if [ ! -d $SNAPCRAFT_STAGE/var/log/taos ]; then
        mkdir -p --mode=777 $SNAPCRAFT_STAGE/var/log/taos
      fi

    prime:
      - etc/taos/taos.cfg
      - usr/bin/taosd
      - usr/bin/taos
      - usr/lib/libtaos.so.2.4.0.0
      - usr/lib/libtaos.so.1
      - usr/lib/libtaos.so

    override-prime: |
      snapcraftctl prime
      if [ ! -d $SNAPCRAFT_PRIME/var/lib/taos ]; then
        cp -rf $SNAPCRAFT_STAGE/var/lib/taos $SNAPCRAFT_PRIME
      fi
      if [ ! -d $SNAPCRAFT_PRIME/var/log/taos ]; then
        cp -rf  $SNAPCRAFT_STAGE/var/log/taos $SNAPCRAFT_PRIME
      fi

layout:
  /var/lib/taos:
    bind: $SNAP_DATA/var/lib/taos
  /var/log/taos:
    bind: $SNAP_DATA/var/log/taos
  /etc/taos:
    bind: $SNAP_DATA/etc/taos
