aspnetcore/test/TestTasks/InjectRequestHandler.cs

63 lines
2.3 KiB
C#

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace TestTasks
{
public class InjectRequestHandler
{
private static void Main(string[] args)
{
string rid = args[0];
string libraryLocation = args[1];
string depsFile = args[2];
JToken deps;
using (var file = File.OpenText(depsFile))
using (JsonTextReader reader = new JsonTextReader(file))
{
deps = JObject.ReadFrom(reader);
}
var libraryName = "ANCMRH/1.0";
var libraries = (JObject)deps["libraries"];
var targetName = (JValue)deps["runtimeTarget"]["name"];
var target = (JObject)deps["targets"][targetName.Value];
var targetLibrary = target.Properties().FirstOrDefault(p => p.Name == libraryName);
targetLibrary?.Remove();
targetLibrary =
new JProperty(libraryName, new JObject(
new JProperty("runtimeTargets", new JObject(
new JProperty(libraryLocation.Replace('\\', '/'), new JObject(
new JProperty("rid", rid),
new JProperty("assetType", "native")
))))));
target.AddFirst(targetLibrary);
var library = libraries.Properties().FirstOrDefault(p => p.Name == libraryName);
library?.Remove();
library =
new JProperty(libraryName, new JObject(
new JProperty("type", "package"),
new JProperty("serviceable", true),
new JProperty("sha512", ""),
new JProperty("path", libraryName),
new JProperty("hashPath", "")));
libraries.AddFirst(library);
using (var file = File.CreateText(depsFile))
using (var writer = new JsonTextWriter(file) { Formatting = Formatting.Indented })
{
deps.WriteTo(writer);
}
}
}
}