Line data Source code
1 : /* 2 : Copyright 2018-2024, Barcelona Supercomputing Center (BSC), Spain 3 : Copyright 2015-2024, Johannes Gutenberg Universitaet Mainz, Germany 4 : 5 : This software was partially supported by the 6 : EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). 7 : 8 : This software was partially supported by the 9 : ADA-FS project under the SPPEXA project funded by the DFG. 10 : 11 : This file is part of GekkoFS. 12 : 13 : GekkoFS is free software: you can redistribute it and/or modify 14 : it under the terms of the GNU General Public License as published by 15 : the Free Software Foundation, either version 3 of the License, or 16 : (at your option) any later version. 17 : 18 : GekkoFS is distributed in the hope that it will be useful, 19 : but WITHOUT ANY WARRANTY; without even the implied warranty of 20 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 : GNU General Public License for more details. 22 : 23 : You should have received a copy of the GNU General Public License 24 : along with GekkoFS. If not, see <https://www.gnu.org/licenses/>. 25 : 26 : SPDX-License-Identifier: GPL-3.0-or-later 27 : */ 28 : 29 : #include <fmt/format.h> 30 : #include "helpers.hpp" 31 : 32 : namespace fs = std::filesystem; 33 : 34 : namespace helpers { 35 : 36 : 37 2 : temporary_directory::temporary_directory() 38 6 : : dirname_(fs::temp_directory_path() / random_string(16)) { 39 : 40 2 : std::error_code ec; 41 2 : fs::create_directory(dirname_, ec); 42 : 43 2 : if(ec) { 44 0 : throw std::runtime_error(fmt::format("Error creating temporary " 45 : "directory: {}", 46 0 : ec.message())); 47 : } 48 2 : } 49 : 50 2 : temporary_directory::~temporary_directory() { 51 2 : fs::remove_all(dirname_); 52 2 : } 53 : 54 : fs::path 55 2 : temporary_directory::dirname() const { 56 2 : return dirname_; 57 : } 58 : 59 : } // namespace helpers