Skip to content

Commit

Permalink
add etc
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexStocks committed Jul 23, 2024
1 parent 2848690 commit ac891f5
Show file tree
Hide file tree
Showing 10 changed files with 150 additions and 116 deletions.
11 changes: 8 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,14 @@
*.obj
*pb.cc
*pb.h
build
cmake-build-debug
cmake-build-release
deps-debug/
deps-release/
cmake-build-debug/
cmake-build-release/
cmake-build-release-release/
build/
build-debug/
build-release/

# Precompiled Headers
*.gch
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ A C++20 implementation of Redis Server, use RocksDB for persist storage.(not inc
## Requirements

* C++20
* Linux or OS X
* Linux or OS X or FreeBSD

## compile

Expand All @@ -28,14 +28,14 @@ scl enable devtoolset-11 bash
Execute this command to start compiling Pikiwidb:

```bash
./build.sh
sh ./etc/script/build.sh
```

Pikiwidb is compiled by default in release mode, which does not support debugging. If debugging is needed, compile in debug mode.

```bash
./clear.sh
./build.sh --debug
sh ./etc/script/build.sh --clear
sh ./etc/script/build.sh --debug
```

## Support module for write your own extensions
Expand Down
8 changes: 4 additions & 4 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ C++20 实现的增强版 Redis 服务器,使用 RocksDB 作为持久化存储引
## 环境需求

* C++20、CMake
* Linux 或 MAC OS
* Linux 或 MAC OS 或 FreeBSD

## 编译

Expand All @@ -28,14 +28,14 @@ scl enable devtoolset-11 bash
执行以下命令开始编译 PikiwiDB:

```bash
./build.sh
sh ./etc/script/build.sh
```

PikiwiDB 默认以 release 模式编译,不支持调试。如果需要调试,请以 debug 模式编译。

```bash
./clear.sh
./build.sh --debug
sh ./etc/script/build.sh --clear
sh ./etc/script/build.sh --debug
```

## 与 Redis 完全兼容
Expand Down
87 changes: 0 additions & 87 deletions build.sh

This file was deleted.

14 changes: 0 additions & 14 deletions clear.sh

This file was deleted.

File renamed without changes.
125 changes: 125 additions & 0 deletions etc/script/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
#!/bin/bash

#color code
C_RED="\033[31m"
C_GREEN="\033[32m"

C_END="\033[0m"

BUILD_TIME=$(git log -1 --format=%ai)
BUILD_TIME=${BUILD_TIME: 0: 10}

COMMIT_ID=$(git rev-parse HEAD)
SHORT_COMMIT_ID=${COMMIT_ID: 0: 8}

BUILD_TYPE=Release
VERBOSE=0
CMAKE_FLAGS=""
MAKE_FLAGS=""
PREFIX="cmake-build"

PWD=`pwd`
PROJECT_HOME="${PWD}/"
CONF="${PROJECT_HOME}/etc/conf/pikiwidb.conf"

function build() {
if [ ! -f "/proc/cpuinfo" ];then
CPU_CORE=$(sysctl -n hw.ncpu)
else
CPU_CORE=$(cat /proc/cpuinfo| grep "processor"| wc -l)
fi
if [ ${CPU_CORE} -eq 0 ]; then
CPU_CORE=1
fi

echo "cpu core ${CPU_CORE}"

echo "BUILD_TYPE:" $BUILD_TYPE
echo "CMAKE_FLAGS:" $CMAKE_FLAGS
echo "MAKE_FLAGS:" $MAKE_FLAGS

if [ "${BUILD_TYPE}" == "Release" ]; then
PREFIX="${PREFIX}-release"
else
PREFIX="${PREFIX}-debug"
fi

cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ${CMAKE_FLAGS} -S . -B ${PREFIX}
cmake --build ${PREFIX} -- ${MAKE_FLAGS} -j ${CPU_CORE}

if [ $? -eq 0 ]; then
echo -e "pikiwidb compile complete, output file ${C_GREEN} ${BUILD_DIR}/pikiwidb ${C_END}"
else
echo -e "${C_RED} pikiwidb compile fail ${C_END}"
exit 1
fi
}

function clear() {
rm -rf ${PROJECT_HOME}/deps-debug
rm -rf ${PROJECT_HOME}/deps-release
rm -rf ${PROJECT_HOME}/cmake-build-debug
rm -rf ${PROJECT_HOME}/cmake-build-release
rm -rf ${PROJECT_HOME}/cmake-build-release-release
rm -rf ${PROJECT_HOME}/build
rm -rf ${PROJECT_HOME}/build-release
rm -rf ${PROJECT_HOME}/build-debug
rm -rf ${PROJECT_HOME}/bin
exit 0
}

function show_help() {
echo "
sh $0 --debug compile with debug
sh $0 --clear clear compilation directory
sh $0 -h|--help show help
sh $0 --prefix compile output path
sh $0 --verbose compile with verbose
"
exit 0
}

# ARGS=`getopt -a -o h -l help,debug,verbose,prefix: -- "$@"`
# Convert the parsed arguments into an array
# eval set -- "$ARGS"

while true; do
# echo "hello first arg $1"
case "$1" in
-c|--clear)
clear
shift ;;

--debug)
BUILD_TYPE=debug
;;

-h|--help)
show_help
;;

--prefix)
if [[ -n $2 ]]; then
PREFIX=$2
else
echo "you should provide a value for --prefix as output path"
exit 0
fi
shift;;

--verbose)
CMAKE_FLAGS="${CMAKE_FLAGS} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
MAKE_FLAGS="${MAKE_FLAGS} VERBOSE=1"
;;

--)
shift
break;;

*)
break;;
esac
shift
done

build
File renamed without changes.
9 changes: 7 additions & 2 deletions save_load.sh → etc/script/save_load.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
killall -9 pikiwidb
mkdir leader follower1

cd leader && ulimit -n 99999 && rm -fr * && ../bin/pikiwidb ../pikiwidb.conf --port 7777 &
cd follower1 && ulimit -n 99999 && rm -fr * && ../bin/pikiwidb ../pikiwidb.conf --port 8888 &

PWD=`pwd`
PROJECT_HOME="${PWD}/../"
BIN="${PROJECT_HOME}/bin/pikiwidb"
CONF="${PROJECT_HOME}/etc/conf/pikiwidb.conf"
cd leader && ulimit -n 99999 && rm -fr * && ${BIN} ${CONF} --port 7777 &
cd follower1 && ulimit -n 99999 && rm -fr * && ${BIN} ${CONF} --port 8888 &
sleep 5

redis-cli -p 7777 raft.cluster init
Expand Down
4 changes: 2 additions & 2 deletions tests/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### PikiwiDB test

* 在 PikiwiDB 目录下执行 `./pikatests.sh geo` 测试PikiwiDB GEO命令
* 如果是`unit/type`接口, 例如 SET, 执行 `./pikiwidbtests.sh type/set` 测试PikiwiDB SET命令
* 在 PikiwiDB 目录下执行 `sh ./etc/script/pikatests.sh geo` 测试PikiwiDB GEO命令
* 如果是`unit/type`接口, 例如 SET, 执行 `./etc/script/pikiwidbtests.sh type/set` 测试PikiwiDB SET命令

0 comments on commit ac891f5

Please sign in to comment.