Ejemplo n.º 1
0
        public int Extract(string packageFile, string directory, bool suppressNestedScriptWarning)
        {
            var filesExtracted = 0;

            using (var packageStream = new FileStream(packageFile, FileMode.Open, FileAccess.Read))
                using (var archive = ZipArchive.Open(packageStream))
                {
                    foreach (var entry in archive.Entries)
                    {
                        var unescapedKey = UnescapePath(entry.Key);

                        if (IsExcludedPath(unescapedKey))
                        {
                            continue;
                        }

                        var targetDirectory = Path.Combine(directory, Path.GetDirectoryName(unescapedKey));

                        if (!Directory.Exists(targetDirectory))
                        {
                            Directory.CreateDirectory(targetDirectory);
                        }

                        if (entry.IsDirectory || !IsPackageFile(entry.Key))
                        {
                            continue;
                        }

                        var targetFile = Path.Combine(targetDirectory, Path.GetFileName(unescapedKey));
                        entry.WriteToFile(targetFile, new ExtractionOptions {
                            Overwrite = true, WriteSymbolicLink = WriteSymbolicLink
                        });

                        SetFileLastModifiedTime(entry, targetFile);

                        filesExtracted++;

                        if (!suppressNestedScriptWarning)
                        {
                            GenericPackageExtractor.WarnIfScriptInSubFolder(unescapedKey);
                        }
                    }

                    return(filesExtracted);
                }
        }
Ejemplo n.º 2
0
        void ExtractPackage(VariableDictionary variables)
        {
            if (string.IsNullOrWhiteSpace(packageFile))
            {
                return;
            }

            if (!File.Exists(packageFile))
            {
                throw new CommandException("Could not find package file: " + packageFile);
            }

            var extractor = new GenericPackageExtractor();

            extractor.GetExtractor(packageFile).Extract(packageFile, Environment.CurrentDirectory, true);

            variables.Set(SpecialVariables.OriginalPackageDirectoryPath, Environment.CurrentDirectory);
        }
Ejemplo n.º 3
0
        public int Extract(string packageFile, string directory, bool suppressNestedScriptWarning)
        {
            var filesExtracted = 0;

            using (var packageStream = new FileStream(packageFile, FileMode.Open, FileAccess.Read))
                using (var reader = ZipReader.Open(packageStream))
                {
                    while (reader.MoveToNextEntry())
                    {
                        var unescapedKey = UnescapePath(reader.Entry.Key);

                        if (IsExcludedPath(unescapedKey))
                        {
                            continue;
                        }

                        var targetDirectory = Path.Combine(directory, Path.GetDirectoryName(unescapedKey));

                        if (!Directory.Exists(targetDirectory))
                        {
                            Directory.CreateDirectory(targetDirectory);
                        }

                        if (reader.Entry.IsDirectory || !IsPackageFile(reader.Entry.Key))
                        {
                            continue;
                        }

                        var targetFile = Path.Combine(targetDirectory, Path.GetFileName(unescapedKey));
                        reader.WriteEntryToFile(targetFile, ExtractOptions.Overwrite);

                        SetFileLastModifiedTime(reader.Entry, targetFile);

                        filesExtracted++;

                        if (!suppressNestedScriptWarning)
                        {
                            GenericPackageExtractor.WarnIfScriptInSubFolder(unescapedKey);
                        }
                    }

                    return(filesExtracted);
                }
        }
Ejemplo n.º 4
0
        void ExtractPackage(VariableDictionary variables)
        {
            if (string.IsNullOrWhiteSpace(packageFile))
            {
                return;
            }

            Log.Info("Extracting package: " + packageFile);

            if (!File.Exists(packageFile))
            {
                throw new CommandException("Could not find package file: " + packageFile);
            }

            var extractor = new GenericPackageExtractor();

            extractor.GetExtractor(packageFile).Extract(packageFile, CrossPlatform.GetCurrentDirectory(), true);

            variables.Set(SpecialVariables.OriginalPackageDirectoryPath, CrossPlatform.GetCurrentDirectory());
        }
Ejemplo n.º 5
0
 static void WriteSymbolicLink(string sourcepath, string targetpath)
 {
     GenericPackageExtractor.WarnUnsupportedSymlinkExtraction(sourcepath);
 }
Ejemplo n.º 6
0
 public void SetUp()
 {
     extractor = new GenericPackageExtractor();
 }
 public void SetUp()
 {
     extractor = new GenericPackageExtractorFactory().createStandardGenericPackageExtractor();
 }