public Environment(
string rootPath,
string binPath,
string repositoryPath)
{
RootPath = rootPath;
SiteRootPath = Path.Combine(rootPath, Constants.SiteFolder);
_tempPath = Path.GetTempPath();
_repositoryPath = repositoryPath;
_webRootPath = Path.Combine(SiteRootPath, Constants.WebRoot);
_deploymentsPath = Path.Combine(SiteRootPath, Constants.DeploymentCachePath);
_deploymentToolsPath = Path.Combine(_deploymentsPath, Constants.DeploymentToolsPath);
_siteExtensionSettingsPath = Path.Combine(SiteRootPath, Constants.SiteExtensionsCachePath);
_diagnosticsPath = Path.Combine(SiteRootPath, Constants.DiagnosticsPath);
_locksPath = Path.Combine(SiteRootPath, Constants.LocksPath);
if (OSDetector.IsOnWindows())
{
_sshKeyPath = Path.Combine(rootPath, Constants.SSHKeyPath);
}
else
{
// in linux, rootPath is "/home", while .ssh folder need to under "/home/{user}"
_sshKeyPath = Path.Combine(rootPath, System.Environment.GetEnvironmentVariable("KUDU_RUN_USER"), Constants.SSHKeyPath);
}
_scriptPath = Path.Combine(binPath, Constants.ScriptsPath);
_nodeModulesPath = Path.Combine(binPath, Constants.NodeModulesPath);
_logFilesPath = Path.Combine(rootPath, Constants.LogFilesPath);
_applicationLogFilesPath = Path.Combine(_logFilesPath, Constants.ApplicationLogFilesDirectory);
_tracePath = Path.Combine(rootPath, Constants.TracePath);
_analyticsPath = Path.Combine(_tempPath ?? _logFilesPath, Constants.SiteExtensionLogsDirectory);
_deploymentTracePath = Path.Combine(rootPath, Constants.DeploymentTracePath);
_dataPath = Path.Combine(rootPath, Constants.DataPath);
_jobsDataPath = Path.Combine(_dataPath, Constants.JobsPath);
_jobsBinariesPath = Path.Combine(_webRootPath, Constants.AppDataPath, Constants.JobsPath);
}