Exemplo n.º 1
0
 static IEnumerable <string> GenerateChangelog(TuxConfig config) => new[]
 {
     $"{config.PkgName.ToLowerInvariant()} ({config.Version}) unstable; urgency=low",
     "",
     $"  [ {config.Maintainer} ]",
     "  * Ported to Linux",
     "",
     $" -- {config.Maintainer}  Wed, 12 Oct 2016 15:47:44 +0200",
     ""
 };
Exemplo n.º 2
0
 static IEnumerable <string> GenerateCopyright(TuxConfig config) => new[]
 {
     "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/",
     $"Upstream-Name: {config.PkgName}",
     $"Source: {config.Homepage}",
     "",
     "Files: *",
     $"Copyright: 2017 {config.Maintainer}",
     "License: Proprietary",
     ""
 };
Exemplo n.º 3
0
        public static void WriteControl(string path, TuxConfig config, Encoding enc)
        {
            var lines = new List <string>();

            Add(lines, "Package", config.PkgName);
            Add(lines, "Version", config.Version);
            Add(lines, "Architecture", "amd64");
            Add(lines, "Maintainer", config.Maintainer);
            Add(lines, "Recommends", "mono");
            Add(lines, "Section", "gnome");
            Add(lines, "Priority", "optional");
            Add(lines, "Homepage", config.Homepage);
            Add(lines, "Description", FormatDesc(config.Description));
            File.WriteAllLines(path, lines, enc);
        }
Exemplo n.º 4
0
        public static void Create(TuxConfig cfg, params IEnumerable <IContent>[] contents)
        {
            var          destination = new File(cfg.AppTemp);
            var          arch        = Architecture.X86_64;
            var          host        = Environment.MachineName;
            const string license     = "Proprietary";
            const string release     = "unstable";
            const string group       = "gnome";
            var          desc        = FormatDesc(cfg.Description).Split('\n');
            var          summary     = desc.First();
            var          description = string.Join(string.Empty, desc.Skip(1));
            var          include     = new Contents();
            var          packer      = new RpmContents(include);
            var          allContents = contents.SelectMany(c => c).ToArray();

            Array.ForEach(allContents, packer.Add);
            var builder = new Builder();

            builder.setPackage(cfg.PkgName, cfg.Version, release);
            builder.setType(RpmType.BINARY);
            builder.setPlatform(arch, Os.LINUX);
            builder.setSummary(summary);
            builder.setDescription(description);
            builder.setBuildHost(host);
            builder.setLicense(license);
            builder.setGroup(group);
            builder.setPackager(cfg.Maintainer.Split('<').First().Trim());
            builder.setVendor(cfg.Maintainer);
            builder.setUrl(cfg.Homepage);
            builder.setProvides(cfg.PkgName);
            builder.setFiles(include);
            var tmpFileName = Path.Combine(cfg.AppTemp, builder.build(destination));
            var fileName    = $"{cfg.PackageFile}.rpm";

            NetFile.Copy(tmpFileName, fileName, true);
        }