- Refactored entire codebase (excluding the Insight component) to accommodate multiple target architectures (no longer specific to AVR) - Deleted 'generate SVD' GDB monitor command - I will eventually move this functionality to the Bloom website - Added unit size property to address spaces - Many other changes which I couldn't be bothered to describe here
22 lines
578 B
C++
22 lines
578 B
C++
#include "PathService.hpp"
|
|
|
|
#include <unistd.h>
|
|
#include <array>
|
|
#include <filesystem>
|
|
#include <climits>
|
|
|
|
#include "src/Exceptions/Exception.hpp"
|
|
|
|
namespace Services
|
|
{
|
|
std::string PathService::applicationDirPath() {
|
|
auto pathCharArray = std::array<char, PATH_MAX>{};
|
|
|
|
if (::readlink("/proc/self/exe", pathCharArray.data(), PATH_MAX) < 0) {
|
|
throw Exceptions::Exception{"Failed to obtain application directory path."};
|
|
}
|
|
|
|
return std::filesystem::path{std::string{pathCharArray.begin(), pathCharArray.end()}}.parent_path();
|
|
}
|
|
}
|