Esempio n. 1
0
        /// <summary>
        /// 获取下一个版本
        /// </summary>
        /// <returns></returns>
        public TimeVersion GetNextVersion()
        {
            var t = dpz3.Time.Now;
            int y = this.Year;
            int m = this.Month;

            // 获取标识中的年月信息
            int yy = this.Sign / 100;
            int mm = this.Sign % 100;

            // 获取当前年月信息
            int ny = t.Year % 100;
            int nm = t.Month;

            if (yy != ny)
            {
                // 跨年
                y++;
                m = 0;
            }
            else if (mm != nm)
            {
                // 跨月
                m++;
            }

            // 新建一个版本并赋值
            TimeVersion timeVersion = new TimeVersion()
            {
                Year  = y,
                Month = m,
                Sign  = ny * 100 + nm,
                Build = this.Build + 1
            };

            return(timeVersion);
        }
Esempio n. 2
0
        public IResult BuildPackage()
        {
            dpz3.db.Connection dbc        = Host.Connection;
            string             workFolder = Host.WorkFolder.Replace("\\", "/");
            // 获取参数
            string groupName = Request.Str["Group"];
            string itemName  = Request.Str["Item"];

            if (!workFolder.EndsWith("/"))
            {
                workFolder += "/";
            }
            string pathXml = $"{workFolder}conf/projects.xml";
            string szXml   = dpz3.File.UTF8File.ReadAllText(pathXml);

            dpz3.Xml.XmlDocument doc = dpz3.Xml.Parser.GetDocument(szXml);
            var xml = doc["xml"];

            dpz3.Xml.XmlNode group = xml.GetNodeByAttr("name", groupName, false);
            dpz3.Xml.XmlNode item  = null;
            if (group != null)
            {
                item = group.GetNodeByAttr("name", itemName, false);
            }
            if (item == null)
            {
                return(Fail("未发现项目信息"));
            }
            // 获取路径信息
            // string workFolder = item.Attr["path"];
            string path = item.Attr["path"].Replace("\\", "/");

            // 判断路径是否指定
            if (path.IsNoneOrNull())
            {
                // Console.WriteLine($"[!] 未指定路径");
                return(Fail("未指定路径"));
            }
            // 将路径进行处理
            if (!path.EndsWith("/"))
            {
                path += "/";
            }
            string pathCfg = $"{path}modular.json";

            if (!System.IO.File.Exists(pathCfg))
            {
                //Console.WriteLine($"[!] 未找到配置文件");
                return(Fail("未找到配置文件"));
            }
            // 读取配置文件
            // Console.WriteLine($"[*] 读取配置文件 {pathCfg} ...");
            string szJson = dpz3.File.UTF8File.ReadAllText(pathCfg);
            string name;
            string version;

            using (var json = dpz3.Json.Parser.ParseJson(szJson)) {
                name    = json.Str["name"];
                version = json.Str["version"];
                // Console.WriteLine($"[*] 当前版本 {version}");
                var ver = new dpz3.TimeVersion(version);
                version = ver.GetNextVersion().ToString();
                // Console.WriteLine($"[*] 新版本 {version}");
                json.Str["version"] = version;
                dpz3.File.UTF8File.WriteAllText(pathCfg, json.ToJsonString());
            }
            // 创建临时输出目录
            string pathOutput = $"{path}output";

            if (!System.IO.Directory.Exists(pathOutput))
            {
                // Console.WriteLine($"[+] 创建目录 {pathOutput} ...");
                System.IO.Directory.CreateDirectory(pathOutput);
            }
            // 复制配置文件
            string pathOutputCfg = $"{pathOutput}/modular.json";

            Console.WriteLine($"[+] 增加拷贝文件 {pathOutputCfg} ...");
            System.IO.File.Copy(pathCfg, pathOutputCfg, true);
            // 复制静态页面
            string pathRoot = $"{path}wwwroot";

            if (System.IO.Directory.Exists(pathRoot))
            {
                string pathOutputRoot = $"{pathOutput}/wwwroot";
                if (!System.IO.Directory.Exists(pathOutputRoot))
                {
                    //Console.WriteLine($"[+] 创建目录 {pathOutputRoot} ...");
                    System.IO.Directory.CreateDirectory(pathOutputRoot);
                }
                // 复制需要打包的文件到临时文件夹中
                CopyFolder(pathRoot, pathOutputRoot);
            }
            // 复制数据库定义文件夹
            string pathXorm = $"{path}xorm";

            if (System.IO.Directory.Exists(pathXorm))
            {
                string pathOutputXorm = $"{pathOutput}/xorm";
                if (!System.IO.Directory.Exists(pathOutputXorm))
                {
                    Console.WriteLine($"[+] 创建目录 {pathOutputXorm} ...");
                    System.IO.Directory.CreateDirectory(pathOutputXorm);
                }
                // 复制需要打包的文件到临时文件夹中
                CopyFolder(pathXorm, pathOutputXorm);
            }
            // 复制控制器
            string pathController = $"{path}controller/bin/Debug/netcoreapp3.1";

            if (System.IO.Directory.Exists(pathController))
            {
                // 复制需要打包的文件到临时文件夹中
                CopyFolder(pathController, pathOutput);
            }
            // 建立包文件夹
            string pathPackage = $"{path}package";

            if (!System.IO.Directory.Exists(pathPackage))
            {
                //Console.WriteLine($"[+] 创建目录 {pathPackage} ...");
                System.IO.Directory.CreateDirectory(pathPackage);
            }
            // 打包文件
            string pathPackageFile = $"{pathPackage}/{name}-{version}.zip";

            //Console.WriteLine($"[+] 输出包文件 {pathPackageFile} ...");
            ZipFile.CreateFromDirectory(pathOutput, pathPackageFile);
            // 清理临时目录
            if (System.IO.Directory.Exists(pathOutput))
            {
                //Console.WriteLine($"[-] 清理目录 {pathOutput} ...");
                System.IO.Directory.Delete(pathOutput, true);
            }
            // 生成脚本文件
            string pathBatFile = $"{pathPackage}/{name}.bat";
            string cmd         = $"@echo off\r\n" +
                                 $"cd ..\r\n" +
                                 $".\\pm /name {name} /version {version}\r\n" +
                                 $"cd downloads\r\n" +
                                 $"del {name}.bat\r\n" +
                                 $"pause";

            dpz3.File.TextFile.WriteAllBytes(pathBatFile, System.Text.Encoding.ASCII.GetBytes(cmd));
            return(Success("生成MP包成功"));
        }
Esempio n. 3
0
        static void MainProcess(string[] args)
        {
            var    arg  = new dpz3.Console.Arguments(args);
            string path = arg["path"];

            // 判断路径是否指定
            if (path.IsNoneOrNull())
            {
                Console.WriteLine($"[!] 未指定路径");
                return;
            }
            // 将路径进行处理
            if (!path.EndsWith(it.SplitChar))
            {
                path += it.SplitChar;
            }
            string pathCfg = $"{path}modular.json";

            if (!System.IO.File.Exists(pathCfg))
            {
                Console.WriteLine($"[!] 未找到配置文件");
                return;
            }
            // 读取配置文件
            Console.WriteLine($"[*] 读取配置文件 {pathCfg} ...");
            string szJson = dpz3.File.UTF8File.ReadAllText(pathCfg);
            string name;
            string version;

            using (var json = dpz3.Json.Parser.ParseJson(szJson)) {
                name    = json.Str["name"];
                version = json.Str["version"];
                Console.WriteLine($"[*] 当前版本 {version}");
                var ver = new dpz3.TimeVersion(version);
                version = ver.GetNextVersion().ToString();
                Console.WriteLine($"[*] 新版本 {version}");
                json.Str["version"] = version;
                dpz3.File.UTF8File.WriteAllText(pathCfg, json.ToJsonString());
            }
            // 创建临时输出目录
            string pathOutput = $"{path}output";

            if (!System.IO.Directory.Exists(pathOutput))
            {
                Console.WriteLine($"[+] 创建目录 {pathOutput} ...");
                System.IO.Directory.CreateDirectory(pathOutput);
            }
            // 复制配置文件
            string pathOutputCfg = $"{pathOutput}{it.SplitChar}modular.json";

            Console.WriteLine($"[+] 增加拷贝文件 {pathOutputCfg} ...");
            System.IO.File.Copy(pathCfg, pathOutputCfg, true);
            // 复制静态页面
            string pathRoot = $"{path}wwwroot";

            if (System.IO.Directory.Exists(pathRoot))
            {
                string pathOutputRoot = $"{pathOutput}{it.SplitChar}wwwroot";
                if (!System.IO.Directory.Exists(pathOutputRoot))
                {
                    Console.WriteLine($"[+] 创建目录 {pathOutputRoot} ...");
                    System.IO.Directory.CreateDirectory(pathOutputRoot);
                }
                // 复制需要打包的文件到临时文件夹中
                CopyFolder(pathRoot, pathOutputRoot);
            }
            // 复制数据库定义文件夹
            string pathXorm = $"{path}xorm";

            if (System.IO.Directory.Exists(pathXorm))
            {
                string pathOutputXorm = $"{pathOutput}{it.SplitChar}xorm";
                if (!System.IO.Directory.Exists(pathOutputXorm))
                {
                    Console.WriteLine($"[+] 创建目录 {pathOutputXorm} ...");
                    System.IO.Directory.CreateDirectory(pathOutputXorm);
                }
                // 复制需要打包的文件到临时文件夹中
                CopyFolder(pathXorm, pathOutputXorm);
            }
            // 复制控制器
            string pathController = $"{path}controller{it.SplitChar}bin{it.SplitChar}Debug{it.SplitChar}netcoreapp3.1";

            if (System.IO.Directory.Exists(pathController))
            {
                // 复制需要打包的文件到临时文件夹中
                CopyFolder(pathController, pathOutput);
            }
            // 建立包文件夹
            string pathPackage = $"{path}package";

            if (!System.IO.Directory.Exists(pathPackage))
            {
                Console.WriteLine($"[+] 创建目录 {pathPackage} ...");
                System.IO.Directory.CreateDirectory(pathPackage);
            }
            // 打包文件
            string pathPackageFile = $"{pathPackage}{it.SplitChar}{name}-{version}.zip";

            Console.WriteLine($"[+] 输出包文件 {pathPackageFile} ...");
            ZipFile.CreateFromDirectory(pathOutput, pathPackageFile);
            // 清理临时目录
            if (System.IO.Directory.Exists(pathOutput))
            {
                Console.WriteLine($"[-] 清理目录 {pathOutput} ...");
                System.IO.Directory.Delete(pathOutput, true);
            }
            // 生成脚本文件
            string pathBatFile = $"{pathPackage}{it.SplitChar}{name}.bat";
            string cmd         = $"@echo off\r\n" +
                                 $"cd ..\r\n" +
                                 $".\\pm /name {name} /version {version}\r\n" +
                                 $"cd downloads\r\n" +
                                 $"del {name}.bat\r\n" +
                                 $"pause";

            dpz3.File.TextFile.WriteAllBytes(pathBatFile, System.Text.Encoding.ASCII.GetBytes(cmd));
        }