63 lines
2.3 KiB
C#
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)
|
|
{
|
|
var depsFile = args[2];
|
|
var rid = args[0];
|
|
var libraryLocation = args[1];
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|