3 using System.Collections.Generic;
7 using System.Threading.Tasks;
9 namespace FUSE.AzureConfig.Tasks
13 public string ConfigurationFile {
get; set; }
15 public string ConfigurationDirectory {
get; set; }
17 public string OutputDirectory {
get; set; }
21 if (
string.IsNullOrEmpty(this.ConfigurationFile))
22 throw new ArgumentNullException(
"Must specify ConfigurationFile");
24 if (!
string.IsNullOrEmpty(this.OutputDirectory) && !Directory.Exists(
this.OutputDirectory))
25 throw new ArgumentException(this.OutputDirectory +
" output directory must exist if specified");
27 this.OutputDirectory = this.OutputDirectory ?? this.ConfigurationDirectory;
29 if (!
string.IsNullOrEmpty(this.ConfigurationDirectory))
31 if (!Directory.Exists(
this.ConfigurationDirectory))
32 throw new ArgumentException(this.ConfigurationDirectory +
" must exist.");
33 if (!Path.IsPathRooted(
this.ConfigurationFile))
34 this.ConfigurationFile = Path.Combine(
this.ConfigurationDirectory,
this.ConfigurationFile);
36 if (!File.Exists(
this.ConfigurationFile))
37 throw new ArgumentException(this.ConfigurationFile +
" does not exist");
42 confSpec = JsonConvert.DeserializeObject<
AzureConfigSpec>(File.ReadAllText(this.ConfigurationFile));
45 throw new ArgumentException(
"Failed to parse " + this.ConfigurationFile, e);
50 generator.AlterCsdef(conf, this.ConfigurationDirectory, this.OutputDirectory);
51 generator.AlterCscfgs(conf, this.ConfigurationDirectory, this.OutputDirectory);
JSON-based azure configuration specification.