예제 #1
0
        public async Task <IActionResult> CreateJexus(JexusOptions jexusOptions)
        {
            //表单检查
            if (!ModelState.IsValid)
            {
                return(View(jexusOptions));
            }

            //构建配置文件内容
            JexusSH jexusSH = new JexusSH(jexusOptions);
            await jexusSH.JexusBuild();

            //构建配置文件及生成数据库数据
            CreateDirOrFile createDirOrFile = new CreateDirOrFile();
            JexusSql        jexusSql        = new JexusSql();

            jexusSql.Email    = jexusOptions.email;
            jexusSql.Sitename = jexusOptions.Sitename;
            jexusSql.SHType   = "Jexus";

            var jq = await createDirOrFile.CreateJexusSh(jexusSH.Re(), _sqlContext, jexusSql);

            ViewBag.host = HttpContext.Request.Host;

            return(Redirect("./JexusSH?DownM=" + jq.DownM));
        }
예제 #2
0
        public async Task <JexusSql> CreateJexusSh(List <string> shList, SQLContext context, JexusSql jexusSql)
        {
            string dirPath = shDir + @"/" + DateTime.Now.Date.ToString("yyyyMMdd");

            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath);
            }

            string filename = DateTime.Now.ToString("yyyyMMddHHmmssff");
            var    filepath = dirPath + @"/" + filename + ".sh";

            //在硬盘中写入文件、在数据库中生成数据
            await Task.Run(() =>
            {
                FileStream fileStream     = new FileStream(filepath, FileMode.Create);
                StreamWriter streamWriter = new StreamWriter(fileStream);
                //写入命令到 sh
                streamWriter.WriteLine("cd /usr/jexus/siteconf");
                streamWriter.WriteLine("echo >" + jexusSql.Sitename);
                foreach (var i in shList)
                {
                    streamWriter.WriteLine(@"echo " + "\"" + i + "\"");
                }

                streamWriter.WriteLine("cd /usr/jexus");
                streamWriter.WriteLine("./jws strat " + jexusSql.Sitename);
                //写入结束
                streamWriter.Close();
                fileStream.Close();
                //写入数据库
                jexusSql.DateTime = DateTime.Now;
                jexusSql.FilePath = filepath;
                jexusSql.DownM    = filename;
                context.jexusSqls.Add(jexusSql);
                context.SaveChanges();
            });

            return(jexusSql);
        }