-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathworkspace.cpp
More file actions
51 lines (39 loc) · 850 Bytes
/
workspace.cpp
File metadata and controls
51 lines (39 loc) · 850 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
* workspace.cpp
*
* Created on: 22 февр. 2017 г.
* Author: assasin
*/
#include "workspace.hpp"
#include "config.hpp"
#include "logger.hpp"
#include "utils.hpp"
#include "pstream.h"
namespace remexec {
using namespace std;
using namespace redi;
Workspace::Workspace(Config &conf) : config(conf) {
created = false;
tmpath = realpath(config.getString(Config::TEMP_DIR)) + "/" + to_string(time(NULL)) + "/";
}
Workspace::~Workspace(){
if (created){
cleanup();
}
}
string Workspace::getWorkdir(){
if (!created){
Log::debug("Create path: ", tmpath);
mkdir(tmpath);
created = true;
}
return tmpath;
}
void Workspace::cleanup(){
Log::debug("rm -rf --one-file-system ", tmpath);
pstream prm("rm", {"rm", "-rf", "--one-file-system", tmpath});
prm.close();
created = false;
Log::debug("Cleanup complete");
}
}