private void Add(IpFsApi api, PackageBundler packageBundler) { if (!packageBundler.Files.Any()) { return; } try { var config = Task.Run(async() => await api.GetAddresses()).GetAwaiter().GetResult(); IpFsPeerId = config["Identity"]["PeerID"].ToString(); }catch { } Task.Run(async delegate { L.Info("Addding " + packageBundler.Packed.Count + " packages for " + packageBundler.ProjectKey + " to IPFS"); var dir = packageBundler.PublishProjectDirectory; var hash = await api.Add(dir, true); L.Info("Pinned: " + packageBundler.ProjectKey + " " + hash); return(packageBundler.Hash = hash); }).GetAwaiter().GetResult(); }
public void Start() { L.Info("Deployment starting"); var bundlers = new List <PackageBundler>(); if (Context.DoRadiant) { bundlers.Add(new PackageBundler(this, "radiant", @"Prime.Radiant\Prime.Radiant.Wpf\bin\Debug")); } if (Context.DoPrime) { bundlers.Add(new PackageBundler(this, "prime", @"Prime.Ui\Wpf\bin\Debug")); } foreach (var b in bundlers) { _packageFiller.Fill(b); } var api = new IpFsApi(IpfsDaemon); api.Connect(); IpfsDaemon.WaitTillRunning(async client => { foreach (var b in bundlers) { Add(api, b); } await SendSwarmConnectAsync(api); return(true); }); if (!string.IsNullOrWhiteSpace(Context.SshUri)) { SendSsh(bundlers); } if (!string.IsNullOrWhiteSpace(Context.CloudFlareZoneId)) { foreach (var b in bundlers) { UpdateDns(b); } } L.Info("Deployment complete"); }
private async Task SendSwarmConnectAsync(IpFsApi api) { var peerid = Context.IpfsSeedPeerId; var endpoint = "/ipfs/" + peerid; await api.SwarmConnect(endpoint); }