예제 #1
0
        string CreateReleaseStartupScript()
        {
            List <Dictionary <string, object> > secrets = LoadSecrets();
            TextTemplate startupTemplate = new TextTemplate(
                File.ReadAllText("startup.sh")
                );

            string script = startupTemplate.Format(
                new Dictionary <string, object>
            {
                { "STACKNAME", Name },
                { "APP", Configuration.Application },
                { "ENV", this.environment },
                { "RELEASE", Version.Release },
                { "SHA", Version.Commit },
                { "PORT", Configuration.Port },
                { "S3_BUCKET", Configuration.BaseBucketName },
                { "SECRETS", secrets },
                { "BUILD_DATE", Version.BuildDate },
                { "BUILD_TIME", Version.BuildTime },
            }
                );

            script = script.Replace("\r\n", "\n");

            using (var scriptOut = new MemoryStream())
            {
                using (
                    var gzs = new GZipStream(
                        scriptOut,
                        CompressionLevel.Optimal,
                        leaveOpen: true
                        )
                    )
                {
                    byte[] scriptBytes = Encoding.UTF8.GetBytes(script);
                    gzs.Write(scriptBytes, 0, scriptBytes.Length);
                    gzs.Flush();
                }

                byte[] bytes = new byte[scriptOut.Length];
                scriptOut.Position = 0;
                scriptOut.Read(bytes, 0, bytes.Length);

                //File.WriteAllBytes("blah.sh.gz", bytes);
                return(Convert.ToBase64String(bytes));
            }
        }
예제 #2
0
        string CreateStartupScript()
        {
            TextTemplate startupTemplate = new TextTemplate(
                File.ReadAllText("builder.sh")
                );

            string script = startupTemplate.Format(
                new Dictionary <string, object>
            {
                { "STACKNAME", Name },
                { "APP", Configuration.Application },
                { "SHA", Version.Commit },
                { "S3_BUCKET", Configuration.BaseBucketName },
                { "BUILD_DATE", Version.BuildDate },
                { "BUILD_TIME", Version.BuildTime },
                { "GIT_URL", Configuration.GitUrl },
                { "GIT_KEY", Configuration.GithubKey },
            }
                );

            script = script.Replace("\r\n", "\n");

            using (var scriptOut = new MemoryStream())
            {
                using (
                    var gzs = new GZipStream(
                        scriptOut,
                        CompressionLevel.Optimal,
                        leaveOpen: true
                        )
                    )
                {
                    byte[] scriptBytes = Encoding.UTF8.GetBytes(script);
                    gzs.Write(scriptBytes, 0, scriptBytes.Length);
                    gzs.Flush();
                }

                byte[] bytes = new byte[scriptOut.Length];
                scriptOut.Position = 0;
                scriptOut.Read(bytes, 0, bytes.Length);

                // File.WriteAllBytes("build.sh.gz", bytes);
                return(Convert.ToBase64String(bytes));
            }
        }