A failed effort to write decent looking C++ code.
- Philip Trauner
Simple networked directory synchronization (please use something like rsync instead).
- Doesn't differentiate between case sensitive and case insensitive file-systems
- No Windows support (lul)
- Probably leaks memory like crazy
- No input validation
- If you poke it with a stick it will probably crash
- Clone repository
git clone https://github.com/PhilipTrauner/dir_sync
cd dir_sync-
Install platform specific dependencies
- Debian
sudo apt-get install autoconf automake libtool curl make g++ unzip libssl-dev wget https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-cpp-3.5.1.tar.gz tar xf protobuf-cpp-3.5.1.tar.gz cd protobuf-3.5.1 ./configure make make check sudo make install sudo ldconfig cd ..
- macOS
brew install protobuf openssl cmake
-
Install platform independent dependencies
mkdir cpp_clones cd cpp_clones git clone https://github.com/nlohmann/json.git --depth=1 git clone https://github.com/gabime/spdlog.git --depth=1 git clone https://github.com/chriskohlhoff/asio.git --depth=1 git clone https://github.com/muellan/clipp.git --depth=1 git clone https://github.com/fmtlib/fmt.git --depth=1 cd fmt mkdir build cd build cmake .. && make cd ../.. export JSON_INCLUDE_PATH=$(realpath json)/single_include/nlohmann export FMT_PATH=$(realpath fmt) export SPDLOG_INCLUDE_PATH=$(realpath spdlog)/include export CLIPP_INCLUDE_PATH=$(realpath clipp)/include export ASIO_INCLUDE_PATH=$(realpath asio)/asio/include
- Compiling
cd .. mkdir build cd build cmake .. && make