#include "chrome/updater/linux/ipc_constants.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/strings/strcat.h"
#include "chrome/updater/updater_branding.h"
#include "chrome/updater/updater_scope.h"
#include "chrome/updater/updater_version.h"
namespace updater {
namespace {
constexpr base::FilePath::CharType kUserSocketsRelDir[] = FILE_PATH_LITERAL(
".local/" COMPANY_SHORTNAME_STRING "/" PRODUCT_FULLNAME_STRING "/");
constexpr base::FilePath::CharType kSystemSocketsDir[] = FILE_PATH_LITERAL(
"/run/" COMPANY_SHORTNAME_STRING "/" PRODUCT_FULLNAME_STRING "/");
base::FilePath GetSocketsDir(UpdaterScope scope) {
return scope == UpdaterScope::kSystem
? base::FilePath(kSystemSocketsDir)
: base::GetHomeDir().Append(kUserSocketsRelDir);
}
}
base::FilePath GetActiveDutySocketPath(UpdaterScope scope) {
return GetSocketsDir(scope).Append(
FILE_PATH_LITERAL(PRODUCT_FULLNAME_STRING ".sk"));
}
base::FilePath GetActiveDutyInternalSocketPath(UpdaterScope scope) {
return GetSocketsDir(scope).Append(
base::StrCat({PRODUCT_FULLNAME_STRING, kUpdaterVersion, ".sk"}));
}
base::FilePath GetActivationSocketPath(UpdaterScope scope) {
return GetSocketsDir(scope).Append(
FILE_PATH_LITERAL(PRODUCT_FULLNAME_STRING ".activation.sk"));
}
}