don't overwrite config on update
Config.cpp namespace instead of static class print version on service startup
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
				
			|||||||
 | 
					# author Lukas Heiligenbrunner
 | 
				
			||||||
 | 
					# main CMake file
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
cmake_minimum_required(VERSION 3.13)
 | 
					cmake_minimum_required(VERSION 3.13)
 | 
				
			||||||
project(iprefresher DESCRIPTION "Dynu ip refresher")
 | 
					project(iprefresher DESCRIPTION "Dynu ip refresher")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,7 +50,7 @@ message("")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#add version header
 | 
					#add version header
 | 
				
			||||||
FILE(WRITE ${CMAKE_SOURCE_DIR}/inc/Version.h
 | 
					FILE(WRITE ${CMAKE_SOURCE_DIR}/inc/Version.h
 | 
				
			||||||
        "\#pragma once\nclass Version {\npublic:\n  static const std::string VERSION;\n};\n\nstd::string const Version::VERSION = \"${PROJECT_VERSION}\";"
 | 
					        "\#pragma once\n#include <string>\nnamespace Version {\n  const std::string VERSION = \"${PROJECT_VERSION}\";\n}"
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(api ${LIB_METHOD}
 | 
					add_library(api ${LIB_METHOD}
 | 
				
			||||||
@@ -78,9 +81,17 @@ target_link_libraries(iprefresher api logger ${CURL_LIBRARIES} config++)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# INSTALL to SYSTEM #
 | 
					# INSTALL to SYSTEM #
 | 
				
			||||||
set(CMAKE_INSTALL_PREFIX "/")
 | 
					set(CMAKE_INSTALL_PREFIX "/")
 | 
				
			||||||
 | 
					# install binaries
 | 
				
			||||||
install(TARGETS iprefresher DESTINATION usr/bin)
 | 
					install(TARGETS iprefresher DESTINATION usr/bin)
 | 
				
			||||||
 | 
					# install config file if it doesn't exist
 | 
				
			||||||
 | 
					install(CODE "MESSAGE(STATUS \"Copy iprefresher.cfg to ${CMAKE_INSTALL_PREFIX}etc/iprefresher.cfg\")
 | 
				
			||||||
 | 
					    IF (NOT EXISTS ${CMAKE_INSTALL_PREFIX}etc/iprefresher.cfg)
 | 
				
			||||||
 | 
					        EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy
 | 
				
			||||||
 | 
					                ${CMAKE_CURRENT_SOURCE_DIR}/config/iprefresher.cfg
 | 
				
			||||||
 | 
					                ${CMAKE_INSTALL_PREFIX}etc/iprefresher.cfg)
 | 
				
			||||||
 | 
					    ENDIF (NOT EXISTS ${CMAKE_INSTALL_PREFIX}etc/iprefresher.cfg)")
 | 
				
			||||||
 | 
					# install systemd service and enable it
 | 
				
			||||||
install(FILES service/iprefresher.service DESTINATION lib/systemd/system)
 | 
					install(FILES service/iprefresher.service DESTINATION lib/systemd/system)
 | 
				
			||||||
install(FILES config/iprefresher.cfg DESTINATION etc)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IF (UNIX)
 | 
					IF (UNIX)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@
 | 
				
			|||||||
#include <Config.h>
 | 
					#include <Config.h>
 | 
				
			||||||
#include <iostream>
 | 
					#include <iostream>
 | 
				
			||||||
#include <cstring>
 | 
					#include <cstring>
 | 
				
			||||||
 | 
					#include <fstream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libconfig.h++"
 | 
					#include "libconfig.h++"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -22,7 +23,31 @@ bool Config::readCredentials() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    catch (const libconfig::FileIOException &fioex) {
 | 
					    catch (const libconfig::FileIOException &fioex) {
 | 
				
			||||||
        std::cout << "I/O error while reading config file." << std::endl << "creating new config file!" << std::endl;
 | 
					        std::cout << "I/O error while reading config file." << std::endl << "creating new config file!" << std::endl;
 | 
				
			||||||
        cfg.writeFile("/etc/iprefresher.cfg");
 | 
					
 | 
				
			||||||
 | 
					        std::string defaultconf = R"(# Dynu IP refresher config
 | 
				
			||||||
 | 
					# 2020
 | 
				
			||||||
 | 
					# Lukas Heiligenbrunner
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## DYNU API Config
 | 
				
			||||||
 | 
					dynuapikey = ""
 | 
				
			||||||
 | 
					domainid = ""
 | 
				
			||||||
 | 
					domainname = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Telegram API Config (optional)
 | 
				
			||||||
 | 
					#telegramApiKey = ""
 | 
				
			||||||
 | 
					#chatId = ""
 | 
				
			||||||
 | 
					)";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        std::ofstream myfile;
 | 
				
			||||||
 | 
					        myfile.open("/etc/iprefresher.cfg");
 | 
				
			||||||
 | 
					        if(myfile.is_open()){
 | 
				
			||||||
 | 
					            myfile << defaultconf;
 | 
				
			||||||
 | 
					            myfile.close();
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            std::cout << "error creating file" << std::endl;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    catch (const libconfig::ParseException &pex) {
 | 
					    catch (const libconfig::ParseException &pex) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <IPRefresher.h>
 | 
					#include <IPRefresher.h>
 | 
				
			||||||
#include <Config.h>
 | 
					#include <Config.h>
 | 
				
			||||||
 | 
					#include <Version.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void IPRefresher::checkIPAdress(bool force) {
 | 
					void IPRefresher::checkIPAdress(bool force) {
 | 
				
			||||||
    FileLogger logger;
 | 
					    FileLogger logger;
 | 
				
			||||||
@@ -55,6 +56,7 @@ IPRefresher::IPRefresher() = default;
 | 
				
			|||||||
IPRefresher::IPRefresher(bool loop) {
 | 
					IPRefresher::IPRefresher(bool loop) {
 | 
				
			||||||
    if (loop) {
 | 
					    if (loop) {
 | 
				
			||||||
        Logger::message("startup of service");
 | 
					        Logger::message("startup of service");
 | 
				
			||||||
 | 
					        Logger::message("Version: " + Version::VERSION);
 | 
				
			||||||
        if (Config::readCredentials()) {
 | 
					        if (Config::readCredentials()) {
 | 
				
			||||||
            while (true) {
 | 
					            while (true) {
 | 
				
			||||||
                Logger::message("starting check");
 | 
					                Logger::message("starting check");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <iostream>
 | 
					#include <iostream>
 | 
				
			||||||
#include <IPRefresher.h>
 | 
					 | 
				
			||||||
#include <Version.h>
 | 
					#include <Version.h>
 | 
				
			||||||
 | 
					#include <IPRefresher.h>
 | 
				
			||||||
#include <Logger.h>
 | 
					#include <Logger.h>
 | 
				
			||||||
#include <Config.h>
 | 
					#include <Config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user