/
Environment.cs
147 lines (133 loc) · 3.81 KB
/
Environment.cs
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
using System;
using System.IO;
using System.IO.Abstractions;
using Kudu.Core.Infrastructure;
namespace Kudu.Core
{
public class Environment : IEnvironment
{
private readonly IFileSystem _fileSystem;
private readonly string _webRootPath;
private readonly string _deployCachePath;
private readonly string _diagnosticsPath;
private readonly string _sshKeyPath;
private readonly string _tempPath;
private readonly string _scriptPath;
private readonly string _repositoryPath;
private readonly string _tracePath;
private readonly string _deploymentTracePath;
public Environment(
IFileSystem fileSystem,
string rootPath,
string siteRootPath,
string tempPath,
string repositoryPath,
string webRootPath,
string deployCachePath,
string diagnosticsPath,
string sshKeyPath,
string scriptPath)
{
if (fileSystem == null)
{
throw new ArgumentNullException("fileSystem");
}
if (repositoryPath == null)
{
throw new ArgumentNullException("repositoryPath");
}
_fileSystem = fileSystem;
RootPath = rootPath;
SiteRootPath = siteRootPath;
_tempPath = tempPath;
_repositoryPath = repositoryPath;
_webRootPath = webRootPath;
_deployCachePath = deployCachePath;
_diagnosticsPath = diagnosticsPath;
_sshKeyPath = sshKeyPath;
_scriptPath = scriptPath;
_tracePath = Path.Combine(rootPath, Constants.TracePath);
_deploymentTracePath = Path.Combine(rootPath, Constants.DeploymentTracePath);
}
public string RepositoryPath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _repositoryPath);
return _repositoryPath;
}
}
public string WebRootPath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _webRootPath);
return _webRootPath;
}
}
public string DeploymentCachePath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _deployCachePath);
return _deployCachePath;
}
}
public string DiagnosticsPath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _diagnosticsPath);
return _diagnosticsPath;
}
}
public string SSHKeyPath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _sshKeyPath);
return _sshKeyPath;
}
}
public string RootPath
{
get;
private set;
}
public string SiteRootPath
{
get;
private set;
}
public string TempPath
{
get
{
return _tempPath;
}
}
public string ScriptPath
{
get
{
return _scriptPath;
}
}
public string TracePath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _tracePath);
return _tracePath;
}
}
public string DeploymentTracePath
{
get
{
FileSystemHelpers.EnsureDirectory(_fileSystem, _deploymentTracePath);
return _deploymentTracePath;
}
}
}
}