public StandardPackageDef AddFolderSource(string id, string directoryName, bool recursive, IFileFilter filter)
        {
            DirectorySource source = new DirectorySource(Logger, FileLister, id, directoryName, recursive);

            source.SetFilter(filter);
            AddFilesSource(source);
            return(this);
        }
        public StandardPackageDef AddWebFolderSource(string id, string directoryName, bool recursive)
        {
            DirectorySource source = new DirectorySource(Logger, FileLister, id, directoryName, recursive);

            source.SetFilter(new NegativeFilter(
                                 new RegexFileFilter(@"^.*\.(svc|asax|config|aspx|ascx|css|js|gif|PNG)$")));
            AddFilesSource(source);
            return(this);
        }
示例#3
0
        public StandardPackageDef AddWebFolderSource(string id, FullPath directoryName, bool recursive)
        {
            DirectorySource source = new DirectorySource(taskContext, fileLister, id, directoryName, recursive);

            source.SetFilter(new NegativeFilter(
                                 new RegexFileFilter(@"^.*\.(svc|asax|config|aspx|ascx|css|js|gif|png|jpg|jpeg|Master|eot|svg|ttf|woff|cshtml|swf|html|ico|txt|xml|json)$")));
            AddFilesSource(source);
            return(this);
        }
示例#4
0
        private void Setup()
        {
            logger = MockRepository.GenerateStub <ILogger>();

            filesList1 = new[] { @"somedir1\file1.txt", @"somedir1\file2.txt", @"somedir1\file3.txt" };
            filesList2 = new[] { @"somedir2\file1.txt", @"somedir2\file2.txt", @"somedir2\file3.txt", @"somedir2\subdir\filex.txt" };

            ConvertToFullPath(filesList1);
            ConvertToFullPath(filesList2);

            package = new StandardPackageDef();

            directoryFilesLister = MockRepository.GenerateMock <IDirectoryFilesLister>();
            directoryFilesLister.Expect(x => x.ListFiles(
                                            Path.GetFullPath("somedir1"), true)).Return(filesList1);
            directoryFilesLister.Expect(x => x.ListFiles(
                                            Path.GetFullPath("somedir2"), true)).Return(filesList2);

            DirectorySource dir1 = new DirectorySource(
                logger,
                directoryFilesLister,
                "console",
                "somedir1");

            dir1.SetFilter(new RegexFileFilter("File3"));
            package.AddFilesSource(dir1);

            DirectorySource dir2 = new DirectorySource(
                logger,
                directoryFilesLister,
                "win.service",
                "somedir2");

            package.AddFilesSource(dir2);

            copier = MockRepository.GenerateMock <ICopier>();
        }
示例#5
0
        protected override int DoExecute(ITaskContextInternal context)
        {
            if (_sourcePackagingInfos.Count == 0)
            {
                return(0);
            }

            if (string.IsNullOrEmpty(_destinationRootDir))
            {
                _destinationRootDir = context.Properties.GetOutputDir();
            }

            FullPath df     = new FullPath(_destinationRootDir);
            ICopier  copier = new Copier(context, _logFiles);
            IZipper  zipper = new Zipper(context);
            IDirectoryFilesLister directoryFilesLister = new DirectoryFilesLister();
            StandardPackageDef    packageDef           = new StandardPackageDef();

            CopyProcessor copyProcessor = new CopyProcessor(context, copier, df);

            List <string> sourceIds = new List <string>();

            foreach (var sourceToPackage in _sourcePackagingInfos)
            {
                string sourceId;
                if (sourceToPackage.SourceType == SourceType.Directory)
                {
                    var sourceFullPath = new FullPath(sourceToPackage.SourcePath);
                    sourceId = sourceFullPath.GetHashCode().ToString();
                    DirectorySource directorySource = new DirectorySource(context, directoryFilesLister, sourceId, sourceFullPath, sourceToPackage.Recursive);
                    directorySource.SetFilter(sourceToPackage.FileFilters);
                    packageDef.AddFilesSource(directorySource);
                }
                else
                {
                    var fileFullPath = new FileFullPath(sourceToPackage.SourcePath);
                    sourceId = fileFullPath.GetHashCode().ToString();
                    SingleFileSource fileSource = new SingleFileSource(sourceId, fileFullPath);
                    packageDef.AddFilesSource(fileSource);
                }

                copyProcessor.AddTransformation(sourceId, sourceToPackage.DestinationPath);
                sourceIds.Add(sourceId);
            }

            IPackageDef copiedPackageDef = copyProcessor.Process(packageDef);

            if (ShouldPackageBeZipped)
            {
                string zipFile = _zipFileName;

                if (string.IsNullOrEmpty(zipFile))
                {
                    zipFile = _zipPrefix;
                    _addVersionAsPostFixToZipFileName = true;
                    _versionFieldCount = 3;
                }

                if (zipFile.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))
                {
                    zipFile = zipFile.Substring(0, zipFile.Length - 4);
                }

                string tmp = _addVersionAsPostFixToZipFileName
                    ? $"{zipFile}_{context.Properties.GetBuildVersion().ToString(_versionFieldCount)}.zip"
                    : $"{zipFile}.zip";

                zipFile = Path.Combine(_destinationRootDir, tmp);

                DoLogInfo($"Creating zip file {zipFile}");

                ZipProcessor zipProcessor = new ZipProcessor(context, zipper, new FileFullPath(zipFile), df, _optimizeZip, sourceIds, _logFiles);
                zipProcessor.Process(copiedPackageDef);
            }

            return(0);
        }