-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
55 lines (48 loc) · 1.89 KB
/
Program.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Etg.Yams.Application;
using Etg.Yams.Azure.Storage;
using Etg.Yams.Storage;
using PowerArgs;
namespace DeployRunner
{
class Program
{
static void Main(string[] args)
{
DeployArgs parsedArgs;
try
{
parsedArgs = Args.Parse<DeployArgs>(args);
}
catch (ArgException ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ArgUsage.GenerateUsageFromTemplate<DeployArgs>());
throw;
}
Run(parsedArgs).Wait();
}
private static async Task Run(DeployArgs parsedArgs)
{
var deploymentRepository = new BlobStorageDeploymentRepository(parsedArgs.YamsStorage);
var appIdentity = new AppIdentity(parsedArgs.AppId, parsedArgs.AppVersion);
Console.WriteLine("Uploading binaries from: \"{0}\", to {1}", parsedArgs.BinariesPath,appIdentity);
await deploymentRepository.UploadApplicationBinaries(appIdentity, parsedArgs.BinariesPath, ConflictResolutionMode.FailIfBinariesExist);
Console.WriteLine("Binaries uploaded");
var config = await deploymentRepository.FetchDeploymentConfig();
Console.WriteLine("Current DeploymentConfig.json is:\n\r{0}", config.RawData());
if (config.HasApplication(parsedArgs.AppId))
{
config = config.RemoveApplication(parsedArgs.AppId);
}
config = config.AddApplication(appIdentity, parsedArgs.ClusterId);
Console.WriteLine("Writing new config:\n\r{0}", config.RawData());
await deploymentRepository.PublishDeploymentConfig(config);
Console.WriteLine("DeploymentConfig uploaded");
}
}
}