#!/bin/sh -e

backup_rocksdb (){
    local src_dir=$1
    local dst_dir=$2

    mkdir -p $dst_dir

    for path in $src_dir/*
    do
        filename=$(basename "$path")
        extension="${filename##*.}"
        if [ "$extension" != "sst" ]; then
            cp $path $dst_dir/$filename
        else
            ln $path $dst_dir/$filename
        fi
    done
}

backup_snapshot (){
    local src_dir=$1
    local dst_dir=$2

    mkdir -p $dst_dir

    for path in $src_dir/*
    do
        filename=$(basename "$path")
        if [ X"${filename:0:4}" == X"rev_" ]; then
            cp $path $dst_dir/$filename
        fi
    done
}

tikv_dir=$1
backup_dir=$2

echo "Backup data rocksdb files ..."
backup_rocksdb $tikv_dir/db $backup_dir/db
echo "Backup raft rocksdb files ..."
backup_rocksdb $tikv_dir/raft $backup_dir/raft
echo "Backup snapshot files ..."
backup_snapshot $tikv_dir/snap $backup_dir/snap
