Changed everything to reflect the new name "LumberJack" in the cmake files. Fixed my doxygen notes to reflect v1.0.0
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -19,7 +19,7 @@ generated/
|
|||||||
*.dylib
|
*.dylib
|
||||||
*.dll
|
*.dll
|
||||||
*.exe
|
*.exe
|
||||||
parselog_cli
|
LumberJack
|
||||||
|
|
||||||
# ==========================================
|
# ==========================================
|
||||||
# Language Server & IDE Support (Arch Linux / Dev Tools)
|
# Language Server & IDE Support (Arch Linux / Dev Tools)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required(VERSION 3.15)
|
cmake_minimum_required(VERSION 3.15)
|
||||||
project(ParseLogCLI LANGUAGES CXX)
|
project(LumberJack LANGUAGES CXX)
|
||||||
|
|
||||||
# System and compiler configurations
|
# System and compiler configurations
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
@@ -11,7 +11,7 @@ include(FetchContent)
|
|||||||
# ==========================================
|
# ==========================================
|
||||||
# 1. CORE LIBRARY TARGET
|
# 1. CORE LIBRARY TARGET
|
||||||
# ==========================================
|
# ==========================================
|
||||||
add_library(parselog_core
|
add_library(LumberJack_core
|
||||||
log_parsing/log_parsing.cpp
|
log_parsing/log_parsing.cpp
|
||||||
ip_to_geo/ip_to_geo.cpp
|
ip_to_geo/ip_to_geo.cpp
|
||||||
env_reader/env.cpp
|
env_reader/env.cpp
|
||||||
@@ -20,7 +20,7 @@ add_library(parselog_core
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Include paths for your modules and MaxMind headers
|
# Include paths for your modules and MaxMind headers
|
||||||
target_include_directories(parselog_core PRIVATE
|
target_include_directories(LumberJack_core PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/log_parsing
|
${CMAKE_CURRENT_SOURCE_DIR}/log_parsing
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ip_to_geo
|
${CMAKE_CURRENT_SOURCE_DIR}/ip_to_geo
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/include
|
${CMAKE_CURRENT_SOURCE_DIR}/third_party/include
|
||||||
@@ -30,41 +30,41 @@ target_include_directories(parselog_core PRIVATE
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# Windows via Visual Studio Compiler
|
# Windows via Visual Studio Compiler
|
||||||
target_link_libraries(parselog_core PRIVATE
|
target_link_libraries(LumberJack_core PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/maxminddb.lib
|
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/maxminddb.lib
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
# Windows via MinGW/GCC Toolchain
|
# Windows via MinGW/GCC Toolchain
|
||||||
target_link_libraries(parselog_core PRIVATE
|
target_link_libraries(LumberJack_core PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Windows requires Windows Sockets API linked for libmaxminddb network resolutions
|
# Windows requires Windows Sockets API linked for libmaxminddb network resolutions
|
||||||
target_link_libraries(parselog_core PRIVATE ws2_32)
|
target_link_libraries(LumberJack_core PRIVATE ws2_32)
|
||||||
|
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
# macOS Specific Path Integrations (Handles Intel /opt/local and Apple Silicon /opt/homebrew)
|
# macOS Specific Path Integrations (Handles Intel /opt/local and Apple Silicon /opt/homebrew)
|
||||||
find_library(MAXMIND_LIB maxminddb HINTS /opt/homebrew/lib /usr/local/lib /opt/local/lib)
|
find_library(MAXMIND_LIB maxminddb HINTS /opt/homebrew/lib /usr/local/lib /opt/local/lib)
|
||||||
|
|
||||||
if(MAXMIND_LIB)
|
if(MAXMIND_LIB)
|
||||||
target_link_libraries(parselog_core PRIVATE ${MAXMIND_LIB})
|
target_link_libraries(LumberJack_core PRIVATE ${MAXMIND_LIB})
|
||||||
else()
|
else()
|
||||||
# Fallback to local static file repository boundary if brew package is missing
|
# Fallback to local static file repository boundary if brew package is missing
|
||||||
target_link_libraries(parselog_core PRIVATE
|
target_link_libraries(LumberJack_core PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
# Standard Linux (Ubuntu, Arch Linux, Fedora, etc.)
|
# Standard Linux (Ubuntu, Arch Linux, Fedora, etc.)
|
||||||
target_link_libraries(parselog_core PRIVATE
|
target_link_libraries(LumberJack_core PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Version definitions needed by your GeoLite2PP wrapper
|
# Version definitions needed by your GeoLite2PP wrapper
|
||||||
target_compile_definitions(parselog_core PRIVATE
|
target_compile_definitions(LumberJack_core PRIVATE
|
||||||
GEOLITE2PP_VERSION="0.0.1"
|
GEOLITE2PP_VERSION="0.0.1"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -81,18 +81,18 @@ FetchContent_MakeAvailable(ftxui)
|
|||||||
# ==========================================
|
# ==========================================
|
||||||
# 3. APPLICATION EXECUTABLE
|
# 3. APPLICATION EXECUTABLE
|
||||||
# ==========================================
|
# ==========================================
|
||||||
add_executable(parselog_cli main.cpp)
|
add_executable(LumberJack main.cpp)
|
||||||
|
|
||||||
target_link_libraries(parselog_cli
|
target_link_libraries(LumberJack
|
||||||
PRIVATE
|
PRIVATE
|
||||||
parselog_core
|
LumberJack_core
|
||||||
ftxui::screen
|
ftxui::screen
|
||||||
ftxui::dom
|
ftxui::dom
|
||||||
ftxui::component
|
ftxui::component
|
||||||
)
|
)
|
||||||
|
|
||||||
# CROSS-PLATFORM FIXED: Output targets route uniformly into the root project space
|
# CROSS-PLATFORM FIXED: Output targets route uniformly into the root project space
|
||||||
set_target_properties(parselog_cli PROPERTIES
|
set_target_properties(LumberJack PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}"
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}"
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
This TUI program is for taking in an Apache2 access log file and providing an interactive interface to check your logs.
|
LumberJack TUI takes in an Apache2 access log file and provides an interactive interface to check your logs.
|
||||||
|
|
||||||
REQUIREMENTS:
|
REQUIREMENTS:
|
||||||
- Access to a GeoLite2-City.mmdb database file.
|
- Access to a GeoLite2-City.mmdb database file.
|
||||||
@@ -11,5 +11,7 @@ NOTES:
|
|||||||
|
|
||||||
|
|
||||||
FUTURE CHANGES:
|
FUTURE CHANGES:
|
||||||
- Filtering functionality
|
- Better filtering functionality
|
||||||
|
- Ban IP functionality
|
||||||
|
- Access Date/Time column
|
||||||
- Sorting by column (asc/desc)
|
- Sorting by column (asc/desc)
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @file env.hpp
|
* @file env.hpp
|
||||||
* @author Lewis Price (lewis.e.price@outlook.com)
|
* @author Lewis Price (lewis.e.price@outlook.com)
|
||||||
* @brief
|
* @brief A set of functions for reading/creating the .env file
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @date 2026-06-09
|
* @date 2026-06-09
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
/**
|
/**
|
||||||
* @file ip_to_geo.h
|
* @file ip_to_geo.hpp
|
||||||
* @author Lew Price (lewis.e.price@outlook.com)
|
* @author Lewis Price (lewis.e.price@outlook.com)
|
||||||
* @brief A series of functions for checking the location of a given IP
|
* @brief A series of functions for checking the location of a given IP
|
||||||
* @version 0.1
|
* @version 1.0.0
|
||||||
* @date 2026-06-03
|
* @date 2026-06-09
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2026
|
* @copyright Copyright (c) 2026
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
/**
|
/**
|
||||||
* @file log_parsing.h
|
* @file log_parsing.hpp
|
||||||
* @author Lew Price (lewis.e.price@outlook.com)
|
* @author Lewis Price (lewis.e.price@outlook.com)
|
||||||
* @brief A series of functions for parsing the access logs of an Apache2 webserver.
|
* @brief A series of functions for parsing the access logs of an Apache2 webserver.
|
||||||
* @version 0.1
|
* @version 1.0.0
|
||||||
* @date 2026-05-28
|
* @date 2026-06-09
|
||||||
*
|
*
|
||||||
* @copyright Copyright (c) 2026
|
* @copyright Copyright (c) 2026
|
||||||
*
|
*
|
||||||
|
|||||||
13
main.cpp
13
main.cpp
@@ -1,3 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* @file main.cpp
|
||||||
|
* @author Lewis Price (lewis.e.price@outlook.com)
|
||||||
|
* @brief The main run file for LumberJack TUI
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2026-06-09
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2026
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@@ -213,7 +224,7 @@ int main() {
|
|||||||
" Resize columns: Shift+← / Shift+→ "
|
" Resize columns: Shift+← / Shift+→ "
|
||||||
"│ Switch column: ← / → "
|
"│ Switch column: ← / → "
|
||||||
"│ Scroll: ↑↓ or wheel "
|
"│ Scroll: ↑↓ or wheel "
|
||||||
"│ q = quit ";
|
"│ q / esc = quit ";
|
||||||
|
|
||||||
return vbox({
|
return vbox({
|
||||||
text(" ParseLogCLI Live Monitor ") | bold | color(Color::Blue) | border,
|
text(" ParseLogCLI Live Monitor ") | bold | color(Color::Blue) | border,
|
||||||
|
|||||||
Reference in New Issue
Block a user