Exemple #1
0
        public override ExitCode Execute()
        {
            var    manifestDigest = new ManifestDigest(AdditionalArgs[0]);
            string path           = AdditionalArgs[1];

            try
            {
                if (File.Exists(path))
                { // One or more archives (combined/overlay)
                    ImplementationStore.Add(manifestDigest, BuildImplementation);
                    return(ExitCode.OK);
                }
                else if (Directory.Exists(path))
                { // A single directory
                    if (AdditionalArgs.Count > 2)
                    {
                        throw new OptionException(Resources.TooManyArguments + Environment.NewLine + AdditionalArgs.Skip(2).JoinEscapeArguments(), null);
                    }
                    ImplementationStore.Add(manifestDigest, builder => Handler.RunTask(new ReadDirectory(Path.GetFullPath(path), builder)));
                    return(ExitCode.OK);
                }
                else
                {
                    throw new FileNotFoundException(string.Format(Resources.FileOrDirNotFound, path), path);
                }
            }
            catch (ImplementationAlreadyInStoreException ex)
            {
                Log.Warn(ex);
                return(ExitCode.NoChanges);
            }
        }
Exemple #2
0
        public override ExitCode Execute()
        {
            var manifestDigest = new ManifestDigest(AdditionalArgs[0]);

            try
            {
                string path = AdditionalArgs[1];
                if (Directory.Exists(path))
                {
                    if (AdditionalArgs.Count > 2)
                    {
                        throw new OptionException(Resources.TooManyArguments + Environment.NewLine + AdditionalArgs.Skip(2).JoinEscapeArguments(), null);
                    }
                    ImplementationStore.Add(manifestDigest, builder => Handler.RunTask(new ReadDirectory(Path.GetFullPath(path), builder)));
                    return(ExitCode.OK);
                }

                ImplementationStore.Add(manifestDigest, BuildImplementation);
                return(ExitCode.OK);
            }
            catch (ImplementationAlreadyInStoreException ex)
            {
                Log.Warn(ex.Message, ex);
                return(ExitCode.NoChanges);
            }
        }