Example #1
0
        public static bool ResolveEnvironmentVariables(IEnvironmentVariableContext context, StringBuilder resultBuilder, Action <string> failLog = null)
        {
            Match match;

            do
            {
                match = envVarsRegex.Match(resultBuilder.ToString());

                if (match.Success)
                {
                    string value = context.GetEnvironmentVariable(match.Groups[1].Captures[0].Value);
                    if (value == null)
                    {
                        if (failLog != null)
                        {
                            failLog(match.Value);
                        }
                        return(false);
                    }
                    else
                    {
                        resultBuilder.Remove(match.Index, match.Length);
                        resultBuilder.Insert(match.Index, value);
                    }
                }
            } while (match.Success);

            return(true);
        }
Example #2
0
        public static bool ResolveEnvironmentVariables(IEnvironmentVariableContext context, StringBuilder resultBuilder, Action<string> failLog = null)
        {
            Match match;
            do
            {
                match = envVarsRegex.Match(resultBuilder.ToString());

                if (match.Success)
                {
                    string value = context.GetEnvironmentVariable(match.Groups[1].Captures[0].Value);
                    if (value == null)
                    {
                        if (failLog != null)
                            failLog(match.Value);
                        return false;
                    }
                    else
                    {
                        resultBuilder.Remove(match.Index, match.Length);
                        resultBuilder.Insert(match.Index, value);
                    }
                }
            } while (match.Success);

            return true;
        }
Example #3
0
 /// <summary>
 /// Creates the model loader
 /// </summary>
 /// <param name="suiteFactory">Factory interface to create new suite instances</param>
 /// <param name="parametersLoaders">Parameter loader implementations</param>
 /// <param name="output">Output interface to issue warnings</param>
 /// <param name="pluginLoader">Plugin loader interface</param>
 /// <param name="environmentVariableContext">Environment variable context</param>
 /// <param name="suiteValidator">Suite validator interface</param>
 public LocalYamlModelLoader(ISuiteFactory suiteFactory, IEnumerable<IYamlProjectParametersLoader> parametersLoaders, IUserOutput output, IPluginLoader pluginLoader, IEnvironmentVariableContext environmentVariableContext, ISuiteValidator suiteValidator)
     : base(suiteFactory, parametersLoaders, output, pluginLoader, environmentVariableContext, suiteValidator)
 {
     Contract.Requires(suiteFactory != null);
     Contract.Requires(output != null);
     Contract.Requires(pluginLoader != null);
     Contract.Requires(environmentVariableContext != null);
     Contract.Requires(suiteValidator!= null);
 }
Example #4
0
 public FSRepositoryReferenceBuilder(Suite suite, IFSRepositoryFingerprintFactory fingerprintFactory, IFileSystemRepositoryAccess repository, [TargetRoot] IFileSystemDirectory targetRoot, IUserOutput output, IEnvironmentVariableContext environmentVariableContext)
 {
     this.suite = suite;
     this.fingerprintFactory         = fingerprintFactory;
     this.repository                 = repository;
     this.targetRoot                 = targetRoot;
     this.output                     = output;
     this.environmentVariableContext = environmentVariableContext;
 }
Example #5
0
        /// <summary>
        /// Initializes the yaml loader
        /// </summary>
        /// <param name="suiteFactory">Factory interface to create new suite instances</param>
        /// <param name="parametersLoaders">Parameter loader implementations</param>
        /// <param name="output">Output interface to issue warnings</param>
        /// <param name="pluginLoader">Plugin loader interface</param>
        /// <param name="environmentVariableContext">Environment variable context</param>
        /// <param name="validator">Suite validator interface</param>
        protected YamlModelLoaderBase(ISuiteFactory suiteFactory, IEnumerable<IYamlProjectParametersLoader> parametersLoaders, IUserOutput output, IPluginLoader pluginLoader, IEnvironmentVariableContext environmentVariableContext, ISuiteValidator validator)
        {
            Contract.Requires(suiteFactory != null);
            Contract.Requires(output != null);
            Contract.Requires(pluginLoader != null);
            Contract.Requires(environmentVariableContext != null);
            Contract.Requires(validator != null);
            Contract.Ensures(this.suiteFactory == suiteFactory);
            Contract.Ensures(this.parametersLoaders == parametersLoaders);

            this.suiteFactory = suiteFactory;
            this.parametersLoaders = parametersLoaders;
            this.output = output;
            this.pluginLoader = pluginLoader;
            this.validator = validator;

            versioningEnvironmentVariableContext = new VersioningEnvironmentVariableContext(environmentVariableContext);
            parser = new YamlParser();
        }
Example #6
0
        /// <summary>
        /// Initializes the yaml loader
        /// </summary>
        /// <param name="suiteFactory">Factory interface to create new suite instances</param>
        /// <param name="parametersLoaders">Parameter loader implementations</param>
        /// <param name="output">Output interface to issue warnings</param>
        /// <param name="pluginLoader">Plugin loader interface</param>
        /// <param name="environmentVariableContext">Environment variable context</param>
        /// <param name="validator">Suite validator interface</param>
        protected YamlModelLoaderBase(ISuiteFactory suiteFactory, IEnumerable <IYamlProjectParametersLoader> parametersLoaders, IUserOutput output, IPluginLoader pluginLoader, IEnvironmentVariableContext environmentVariableContext, ISuiteValidator validator)
        {
            Contract.Requires(suiteFactory != null);
            Contract.Requires(output != null);
            Contract.Requires(pluginLoader != null);
            Contract.Requires(environmentVariableContext != null);
            Contract.Requires(validator != null);
            Contract.Ensures(this.suiteFactory == suiteFactory);
            Contract.Ensures(this.parametersLoaders == parametersLoaders);

            this.suiteFactory      = suiteFactory;
            this.parametersLoaders = parametersLoaders;
            this.output            = output;
            this.pluginLoader      = pluginLoader;
            this.validator         = validator;

            versioningEnvironmentVariableContext = new VersioningEnvironmentVariableContext(environmentVariableContext);
            parser = new YamlParser();
        }
Example #7
0
        public UriBasedPatternResolutionContext(IEnvironmentVariableContext environmentVariableContext, Uri uri)
        {
            Contract.Requires(environmentVariableContext != null);
            Contract.Requires(uri != null);

            this.environmentVariableContext = environmentVariableContext;

            string host = uri.Host;
            string path = uri.AbsolutePath.TrimStart('/');

            string[] pathParts = path.Split('/');

            if (pathParts.Length == 1)
            {
                repositoryName = null;
                dependencyName = host;
                fileName       = Path.GetFileNameWithoutExtension(pathParts[0]);
                extension      = Path.GetExtension(pathParts[0]).With(ex => ex.TrimStart('.'));
                version        = null;
            }
            else if (pathParts.Length == 2)
            {
                repositoryName = null;
                dependencyName = host;
                fileName       = Path.GetFileNameWithoutExtension(pathParts[1]);
                extension      = Path.GetExtension(pathParts[1]).With(ex => ex.TrimStart('.'));
                version        = pathParts[0];
            }
            else if (pathParts.Length == 3)
            {
                repositoryName = host;
                dependencyName = pathParts[0];
                fileName       = Path.GetFileNameWithoutExtension(pathParts[2]);
                extension      = Path.GetExtension(pathParts[2]).With(ex => ex.TrimStart('.'));
                version        = pathParts[1];
            }
            else
            {
                throw new InvalidReferenceException("Invalid FS repository dependency URI: " + uri);
            }
        }
        public UriBasedPatternResolutionContext(IEnvironmentVariableContext environmentVariableContext, Uri uri)
        {
            Contract.Requires(environmentVariableContext != null);
            Contract.Requires(uri != null);

            this.environmentVariableContext = environmentVariableContext;

            string host = uri.Host;
            string path = uri.AbsolutePath.TrimStart('/');

            string[] pathParts = path.Split('/');

            if (pathParts.Length == 1)
            {
                repositoryName = null;
                dependencyName = host;
                fileName = Path.GetFileNameWithoutExtension(pathParts[0]);
                extension = Path.GetExtension(pathParts[0]).With(ex => ex.TrimStart('.'));
                version = null;
            }
            else if (pathParts.Length == 2)
            {
                repositoryName = null;
                dependencyName = host;
                fileName = Path.GetFileNameWithoutExtension(pathParts[1]);
                extension = Path.GetExtension(pathParts[1]).With(ex => ex.TrimStart('.'));
                version = pathParts[0];
            }
            else if (pathParts.Length == 3)
            {
                repositoryName = host;
                dependencyName = pathParts[0];
                fileName = Path.GetFileNameWithoutExtension(pathParts[2]);
                extension = Path.GetExtension(pathParts[2]).With(ex => ex.TrimStart('.'));
                version = pathParts[1];
            }
            else
            {
                throw new InvalidReferenceException("Invalid FS repository dependency URI: " + uri);
            }
        }
Example #9
0
 public MercurialSuite([SuiteRoot] IFileSystemDirectory suiteRoot, IEnvironmentVariableContext environmentVariableContext)
 {
     this.suiteRoot = suiteRoot;
     this.environmentVariableContext = environmentVariableContext;
 }
Example #10
0
 public MercurialSuite([SuiteRoot] IFileSystemDirectory suiteRoot, IEnvironmentVariableContext environmentVariableContext)
 {
     this.suiteRoot = suiteRoot;
     this.environmentVariableContext = environmentVariableContext;
 }
Example #11
0
 public VersioningEnvironmentVariableContext(IEnvironmentVariableContext baseImpl)
 {
     this.baseImpl = baseImpl;
 }
 public VersioningEnvironmentVariableContext(IEnvironmentVariableContext baseImpl)
 {
     this.baseImpl = baseImpl;
 }
Example #13
0
 /// <summary>
 /// Creates the model loader
 /// </summary>
 /// <param name="suiteFactory">Factory interface to create new suite instances</param>
 /// <param name="parametersLoaders">Parameter loader implementations</param>
 /// <param name="output">Output interface to issue warnings</param>
 /// <param name="pluginLoader">Plugin loader interface</param>
 /// <param name="environmentVariableContext">Environment variable context</param>
 /// <param name="suiteValidator">Suite validator interface</param>
 public LocalYamlModelLoader(ISuiteFactory suiteFactory, IEnumerable <IYamlProjectParametersLoader> parametersLoaders, IUserOutput output, IPluginLoader pluginLoader, IEnvironmentVariableContext environmentVariableContext, ISuiteValidator suiteValidator)
     : base(suiteFactory, parametersLoaders, output, pluginLoader, environmentVariableContext, suiteValidator)
 {
     Contract.Requires(suiteFactory != null);
     Contract.Requires(output != null);
     Contract.Requires(pluginLoader != null);
     Contract.Requires(environmentVariableContext != null);
     Contract.Requires(suiteValidator != null);
 }
Example #14
0
 public NugetPackagerParametersLoader(IUserOutput output, IEnvironmentVariableContext environmentVariableContext) : base(output)
 {
     this.environmentVariableContext = environmentVariableContext;
 }