ImageRef GetRepository()
        {
            var startIndex = ImageName.IndexOf('/');
            var imageName  = ImageName.Trim();
            var endIndex   = imageName.LastIndexOf(':');
            var registry   = imageName.Substring(0, startIndex);
            var repoName   = imageName.Substring(startIndex + 1, endIndex - startIndex - 1);
            var tag        = imageName.Substring(endIndex + 1);

            //Log.LogMessage(MessageImportance.High, $"{ImageName} {startIndex} {endIndex} {registry} {repoName} {tag}");
            return(new ImageRef
            {
                Registry = registry,
                Repository = repoName,
                Tag = tag
            });
        }
Exemple #2
0
        private Task <bool> ExecuteAsync()
        {
            var args = new[]
            {
                "push",
                "-u",
                UserName,
                "-p",
                Password,
                ImageName,
                PublishDir
            };
            var psi = new ProcessStartInfo
            {
                FileName  = OrasExe,
                Arguments = ArgumentEscaper.EscapeAndConcatenate(args),
                RedirectStandardOutput = true,
                RedirectStandardError  = true
            };

            using (var proc = Process.Start(psi))
            {
                proc.WaitForExit();
                Log.LogMessage(MessageImportance.High, proc.StandardError.ReadToEnd());

                var bufferedOutput = proc.StandardOutput.ReadToEnd();
                Log.LogMessage(MessageImportance.High, bufferedOutput);
                var shaLine      = bufferedOutput.Split('\n').Where(s => s.Contains("Digest: sha256:")).FirstOrDefault();
                var layerSha     = shaLine.Substring(shaLine.IndexOf("sha256"));
                var registryName = ImageName.Split('/').First();
                var repoName     = ImageName.Substring(ImageName.IndexOf('/') + 1).Split(':').First();
                var tagName      = ImageName.Split(':').Last();

                Log.LogMessage(MessageImportance.High, registryName);
                Log.LogMessage(MessageImportance.High, repoName);
                Log.LogMessage(MessageImportance.High, tagName);
            }
            return(Task.FromResult(true));
        }