store sampleconfig also in header for regenerating it if missing during runtime
This commit is contained in:
		@@ -54,13 +54,18 @@ include_directories(${LIBCONFIG_INCLUDE_DIR})
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
message("")
 | 
					message("")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#add version header
 | 
					 | 
				
			||||||
FILE(WRITE ${CMAKE_SOURCE_DIR}/inc/Version.h
 | 
					 | 
				
			||||||
        "\#pragma once\n#include <string>\nnamespace Version {\n  const std::string VERSION = \"${PROJECT_VERSION}\";\n}"
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#read sample config
 | 
					#read sample config
 | 
				
			||||||
FILE(READ ${CMAKE_SOURCE_DIR}/config/iprefresher.cfg SAMPLECONFIG)
 | 
					FILE(READ ${CMAKE_SOURCE_DIR}/config/iprefresher.cfg SAMPLECONFIG)
 | 
				
			||||||
 | 
					#add version header
 | 
				
			||||||
 | 
					FILE(WRITE ${CMAKE_SOURCE_DIR}/inc/Version.h
 | 
				
			||||||
 | 
					        "\#pragma once
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					namespace Version {
 | 
				
			||||||
 | 
					  const std::string VERSION = \"${PROJECT_VERSION}\";
 | 
				
			||||||
 | 
					  const std::string SAMPLECONFIG = R\"(${SAMPLECONFIG})\";
 | 
				
			||||||
 | 
					}"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# generate post script for checking if configuration already exists
 | 
					# generate post script for checking if configuration already exists
 | 
				
			||||||
FILE(WRITE ${CMAKE_SOURCE_DIR}/postinstall.sh
 | 
					FILE(WRITE ${CMAKE_SOURCE_DIR}/postinstall.sh
 | 
				
			||||||
        "#!/bin/bash
 | 
					        "#!/bin/bash
 | 
				
			||||||
@@ -72,18 +77,13 @@ fi"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
add_library(api ${LIB_METHOD}
 | 
					add_library(api ${LIB_METHOD}
 | 
				
			||||||
        src/api/API.cpp
 | 
					        src/api/API.cpp
 | 
				
			||||||
 | 
					 | 
				
			||||||
        src/api/TelegramAPI.cpp
 | 
					        src/api/TelegramAPI.cpp
 | 
				
			||||||
 | 
					 | 
				
			||||||
        src/api/DynuAPI.cpp
 | 
					        src/api/DynuAPI.cpp
 | 
				
			||||||
 | 
					        src/api/IPAPI.cpp)
 | 
				
			||||||
        src/api/IPAPI.cpp
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(logger ${LIB_METHOD}
 | 
					add_library(logger ${LIB_METHOD}
 | 
				
			||||||
        src/FileLogger.cpp
 | 
					        src/FileLogger.cpp
 | 
				
			||||||
        src/Logger.cpp
 | 
					        src/Logger.cpp)
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SET(SOURCE
 | 
					SET(SOURCE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@
 | 
				
			|||||||
#include <cstring>
 | 
					#include <cstring>
 | 
				
			||||||
#include <fstream>
 | 
					#include <fstream>
 | 
				
			||||||
#include <libconfig.h++>
 | 
					#include <libconfig.h++>
 | 
				
			||||||
 | 
					#include <Version.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
std::string Config::dynuapikey;
 | 
					std::string Config::dynuapikey;
 | 
				
			||||||
std::string Config::domainid; //id of the dynu domain
 | 
					std::string Config::domainid; //id of the dynu domain
 | 
				
			||||||
@@ -25,24 +26,10 @@ 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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        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;
 | 
					        std::ofstream myfile;
 | 
				
			||||||
        myfile.open("/etc/iprefresher.cfg");
 | 
					        myfile.open("/etc/iprefresher.cfg");
 | 
				
			||||||
        if (myfile.is_open()) {
 | 
					        if (myfile.is_open()) {
 | 
				
			||||||
            myfile << defaultconf;
 | 
					            myfile << Version::SAMPLECONFIG;
 | 
				
			||||||
            myfile.close();
 | 
					            myfile.close();
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            std::cout << "error creating file" << std::endl;
 | 
					            std::cout << "error creating file" << std::endl;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user