Exemplo n.º 1
0
 public AddonInstaller(ILogger logger, IManifestLoader manifestLoader, INicoFileIO fileIO, INicoDirectoryIO directoryIO, IAddonStoreHandler storeHandler, IAddonInfomationsContainer container, IAddonUninstaller uninstaller)
 {
     this.logger         = logger;
     this.manifestLoader = manifestLoader;
     this.fileIO         = fileIO;
     this.directoryIO    = directoryIO;
     this.storeHandler   = storeHandler;
     this.container      = container;
     this.uninstaller    = uninstaller;
 }
Exemplo n.º 2
0
        public static IManifestLoader BuildManifestLoader(string file, bool isVerbose)
        {
            IManifestLoader loader = null;

            if (Uri.IsWellFormedUriString(file, UriKind.Absolute) && Convert.ToBoolean(Environment.GetEnvironmentVariable("KANYON_ALLOWUNSAFECODE")))
            {
                WebClient client     = new WebClient();
                var       assemBytes = client.DownloadData(file);

                loader = new CompiledManifestLoader().FromBytes(assemBytes);
            }
            else
            {
                FileInfo fileInfo = new FileInfo(file);
                if (fileInfo.Extension == ".csproj")
                {
                    loader = new CsprojManifestLoader().FromFile(fileInfo);
                }
                else
                {
                    try
                    {
                        AssemblyName.GetAssemblyName(fileInfo.FullName);
                        loader = new CompiledManifestLoader().FromFile(fileInfo);
                    }
                    catch (BadImageFormatException)
                    {
                        var scriptLoader = new ScriptManifestLoader()
                        {
                            Source = fileInfo, Verbose = isVerbose
                        };

                        loader = scriptLoader;
                    }
                }
            }

            return(loader);
        }
Exemplo n.º 3
0
        public void Init(FmsOptions options)
        {
            string manifestUrl = "";

            if (options.JSONParser == null)
            {
                throw new CMSException("JSON parser implementation is required.");
            }
            Debug.Log("JSON parser: " + options.JSONParser.GetDescription());
            switch (options.Mode)
            {
            case FmsMode.Versioned:
                manifestUrl    = $"{options.BaseURL}manifest/{options.CodeName}/{options.Env.ToString().ToLower()}/{options.ManifestVersion}.json";
                manifestLoader = new VersionedFileManifestLoader(options);
                break;

            case FmsMode.Passthrough:
                manifestLoader = new PassthroughFileManifestLoader();
                break;
            }
            manifestLoader.Load(options, manifestUrl);
        }
 public async Task <Manifest> GetFullManifest(IManifestLoader manifestLoader)
 {
     return(await manifestLoader.FromUri(ManifestUri));
 }