Esempio n. 1
0
        public Stream GetStream()
        {
            Stream memoryStream = new MemoryStream();

            _packageBuilder.Save(memoryStream);
            return(memoryStream);
        }
Esempio n. 2
0
        public override bool Execute()
        {
            if (string.IsNullOrWhiteSpace(SpecFile))
            {
                Log.LogError(Resources.NuGetResources.SpecFileMustNotBeEmpty);
                return(false);
            }

            if (!_fileSystem.FileExists(SpecFile))
            {
                Log.LogError(Resources.NuGetResources.SpecFileDoesNotExist);
                return(false);
            }

            if (!string.IsNullOrWhiteSpace(PackageDir) && !_fileSystem.DirectoryExists(PackageDir))
            {
                Log.LogError(Resources.NuGetResources.PackageDirDoesNotExist);
                return(false);
            }

            string workingDir = _fileSystem.GetCurrentDirectory();
            string packageDir = PackageDir;

            if (packageDir == null || string.IsNullOrWhiteSpace(packageDir))
            {
                packageDir = workingDir;
            }

            string specFilePath = Path.Combine(workingDir, SpecFile);

            try {
                IPackageBuilder packageBuilder = _packageBuilderFactory.CreateFrom(specFilePath);
                packageBuilder.Files.RemoveAll(file => _fileExtensionsToIgnore.Contains(Path.GetExtension(file.Path)));

                string packageFile = String.Format(
                    "{0}.{1}{2}",
                    packageBuilder.Id,
                    packageBuilder.Version,
                    Constants.PackageExtension);
                string packageFilePath = Path.Combine(packageDir, packageFile);

                Log.LogMessage(String.Format(
                                   Resources.NuGetResources.CreatingPackage,
                                   _fileSystem.GetFullPath(specFilePath),
                                   _fileSystem.GetFullPath(packageFilePath)));

                using (Stream stream = _fileSystem.CreateFile(packageFilePath)) {
                    packageBuilder.Save(stream);
                }

                OutputPackage = packageFilePath;

                Log.LogMessage(String.Format(
                                   Resources.NuGetResources.CreatedPackage,
                                   _fileSystem.GetFullPath(specFilePath),
                                   _fileSystem.GetFullPath(packageFilePath)));
            }
            catch (Exception ex) {
                Log.LogError(Resources.NuGetResources.UnexpectedError, ex.ToString());
                return(false);
            }

            return(true);
        }