added initial

This commit is contained in:
Tobias Schmidl 2022-09-28 12:28:23 +02:00
commit b9d9b65a1d
3 changed files with 98 additions and 0 deletions

68
.gitignore vendored Normal file
View file

@ -0,0 +1,68 @@
### CMake
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
### Vim
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
### C++
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app

2
CMakeLists.txt Normal file
View file

@ -0,0 +1,2 @@
# CMake configuration for demo project
cmake_minimum_required(VERSION 3.16)

28
README.md Normal file
View file

@ -0,0 +1,28 @@
# Data collector
## Task
Implement a service that collects system information upon reception of a trigger event.
The trigger event is raised when existence of a file with a certain name in a specified directory is detected.
The following features must be implemented:
* Trigger detection
* Detect creation of a file in a somehow specified directory
* Make the directory configurable via commandline parameter
* Only trigger on files with names following this format:
* Starts with `core.<variable name of a service>.`
* Ends with `lz4`
* Contains one or more hexadecimal id separated by dots
* Example: `core.ServiceName.3057.57dd721409bc4ab4b38a3c33a36a608a.3717.1647975805000000.lz4`
* Collected data shall be:
* Individual files, as well as whole directories and their contents, recursively, configured via command line parameter
* Store the collected data in a configurable directory, create a `tar`-archive of the aforementioned contents
* Give the resulting file a unique name.
* Add tests to make sure your application is working,
* How tests are implemented is up to you
## Things to keep in mind
* Implement your collection in a way such that it can be extended to collect other data of various forms later.
* Use modern C++!
* Use the platform of your choice (Linux, BSD, MacOS, Windows, etc.)
* We use Linux but everything else is cool, too.