#include #include "../include/FileUtil.hpp" #include "../include/Conf.hpp" #include using namespace std; using namespace sibs; void usage() { printf("Simple build system for native languages\n"); printf("usage:\n"); printf(" sibs \n"); printf("option:\n"); printf(" project path: Path containing project.conf\n"); printf("examples:\n"); printf(" sibs myProject"); exit(1); } void validateProjectPath(const char *projectPath) { FileType projectPathFileType = getFileType(projectPath); if(projectPathFileType == FileType::FILE_NOT_FOUND) { perror(projectPath); exit(2); } else if(projectPathFileType == FileType::REGULAR) { printf("Expected project path (%s) to be a directory, was a file", projectPath); exit(3); } } void validateProjectConfPath(const char *projectConfPath) { FileType projectConfFileType = getFileType(projectConfPath); if(projectConfFileType == FileType::FILE_NOT_FOUND) { perror(projectConfPath); exit(4); } else if(projectConfFileType == FileType::DIRECTORY) { printf("Expected project conf (%s) to be a directory, was a file", projectConfPath); exit(5); } } int main(int argc, const char **argv) { if(argc != 2) usage(); const char *projectPath = argv[1]; validateProjectPath(projectPath); string projectConfFilePath = projectPath; projectConfFilePath += "/project.conf"; validateProjectConfPath(projectConfFilePath.c_str()); auto result = readConf(projectConfFilePath.c_str()); if(result.isOk()) { } else { printf("Failed to read config: %s\n", result.getErrMsg()); exit(6); } return 0; }