Exemplo n.º 1
0
        internal static void CraeteNspd(Option option)
        {
            CreateNspdOption createNspd = option.CreateNspd;

            Program.DeleteIncludingJunctionDirectory(createNspd.OutputDirectory);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory, (string)null);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/program0.ncd", (string)null);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/program0.ncd/code", createNspd.CodeDirectory);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/program0.ncd/data", createNspd.DataDirectory);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/program0.ncd/logo", createNspd.LogoDirectory);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/htmlDocument0.ncd", (string)null);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/htmlDocument0.ncd/htmlDocument", createNspd.HtmlDocumentDirectory);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/htmlDocument0.ncd/accessibleUrls", createNspd.AccessibleUrlsDirectory);
            Program.EnsureDirectoryWithJunction(createNspd.OutputDirectory + "/legalInformation0.ncd", createNspd.LegalInformationDirectory);
            string path1 = createNspd.OutputDirectory + "/control0.ncd";
            string str   = path1 + "/data";

            Program.EnsureDirectoryWithJunction(path1, (string)null);
            Program.EnsureDirectoryWithJunction(str, createNspd.ControlDirectory);
            ApplicationControl.Generate(createNspd.MetaFilePath, createNspd.IconFileList, createNspd.NxIconFileList, createNspd.NxIconMaxSize, str, false);
            string path2 = createNspd.OutputDirectory + "/meta0.ncd/data";

            Directory.CreateDirectory(path2);
            NintendoContentMetaBase nintendoContentMetaBase = new NintendoContentMetaBase(new List <Tuple <ISource, NintendoContentInfo> >(), createNspd.MetaType, createNspd.MetaFilePath);

            using (FileStream fileStream = Program.OpenNewFileStream(path2 + "/" + nintendoContentMetaBase.GetEntryName(), FileOptions.RandomAccess))
            {
                byte[] bytes = nintendoContentMetaBase.GetBytes();
                fileStream.Write(bytes, 0, bytes.Length);
            }
            string path2_1 = Path.GetFileNameWithoutExtension(createNspd.OutputDirectory) + ".nspd_root";

            using (File.Create(Path.Combine(Path.GetDirectoryName(createNspd.OutputDirectory), path2_1)))
                ;
        }
Exemplo n.º 2
0
        internal static void CraeteNspMeta(Option option)
        {
            CreateNspMetaOption createNspMeta = option.CreateNspMeta;

            if (createNspMeta.MetaType == "Application" || createNspMeta.MetaType == "Patch")
            {
                string outputDirectoryPath = createNspMeta.OutputDirectory + "/control0.ncd/data";
                ApplicationControl.Generate(createNspMeta.MetaFilePath, createNspMeta.IconFileList, createNspMeta.NxIconFileList, createNspMeta.NxIconMaxSize, outputDirectoryPath, true);
            }
            string path = createNspMeta.OutputDirectory + "/meta0.ncd/data";

            Directory.CreateDirectory(path);
            NintendoContentMetaBase nintendoContentMetaBase = new NintendoContentMetaBase(new List <Tuple <ISource, NintendoContentInfo> >(), createNspMeta.MetaType, createNspMeta.MetaFilePath);

            using (FileStream fileStream = Program.OpenNewFileStream(path + "/" + nintendoContentMetaBase.GetEntryName(), FileOptions.RandomAccess))
            {
                byte[] bytes = nintendoContentMetaBase.GetBytes();
                fileStream.Write(bytes, 0, bytes.Length);
            }
        }