2016-08-04 23:35:58 +02:00
|
|
|
import std.stdio;
|
2018-03-14 05:43:40 +01:00
|
|
|
import std.file;
|
|
|
|
import std.datetime;
|
2018-04-07 09:06:57 +02:00
|
|
|
import core.sys.posix.pwd, core.sys.posix.unistd, core.stdc.string : strlen;
|
|
|
|
import std.algorithm : splitter;
|
|
|
|
|
|
|
|
// shared string variable for username
|
|
|
|
string username;
|
|
|
|
static this() {
|
|
|
|
username = getUserName();
|
|
|
|
}
|
2016-08-04 23:35:58 +02:00
|
|
|
|
|
|
|
// enable verbose logging
|
|
|
|
bool verbose;
|
|
|
|
|
|
|
|
void log(T...)(T args)
|
|
|
|
{
|
2017-12-28 15:21:41 +01:00
|
|
|
writeln(args);
|
2018-03-14 05:43:40 +01:00
|
|
|
// Write to log file
|
2018-04-07 09:06:57 +02:00
|
|
|
logfileWriteLine(args);
|
2016-08-04 23:35:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void vlog(T...)(T args)
|
|
|
|
{
|
2018-03-14 05:43:40 +01:00
|
|
|
if (verbose) {
|
|
|
|
writeln(args);
|
|
|
|
// Write to log file
|
2018-04-07 09:06:57 +02:00
|
|
|
logfileWriteLine(args);
|
2018-03-14 05:43:40 +01:00
|
|
|
}
|
2016-08-04 23:35:58 +02:00
|
|
|
}
|
2017-12-28 15:21:41 +01:00
|
|
|
|
|
|
|
void error(T...)(T args)
|
|
|
|
{
|
|
|
|
stderr.writeln(args);
|
2018-03-14 05:43:40 +01:00
|
|
|
// Write to log file
|
2018-04-07 09:06:57 +02:00
|
|
|
logfileWriteLine(args);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void logfileWriteLine(T...)(T args)
|
|
|
|
{
|
|
|
|
// Write to log file
|
|
|
|
string logFileName = "/var/log/onedrive/" ~ .username ~ ".onedrive.log";
|
2018-03-14 05:43:40 +01:00
|
|
|
auto currentTime = Clock.currTime();
|
|
|
|
auto timeString = currentTime.toString();
|
|
|
|
File logFile = File(logFileName, "a");
|
|
|
|
logFile.writeln(timeString, " ", args);
|
|
|
|
logFile.close();
|
2018-04-07 09:06:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
private string getUserName()
|
|
|
|
{
|
|
|
|
auto pw = getpwuid(getuid);
|
|
|
|
auto uinfo = pw.pw_gecos[0 .. strlen(pw.pw_gecos)].splitter(',');
|
|
|
|
if (!uinfo.empty && uinfo.front.length){
|
|
|
|
return uinfo.front.idup;
|
|
|
|
} else {
|
|
|
|
// Unknown user?
|
|
|
|
return "unknown";
|
|
|
|
}
|
2017-12-28 15:21:41 +01:00
|
|
|
}
|