public IEnumerable <string> ExplodeDirectory(ExplodeDirectory directory) { string packageFolder = directory.BottleDirectory; var fileSet = new FileSet { Include = "*.zip" }; directory.Log.Trace("Searching for zip files in package directory " + packageFolder); var packageFileNames = _fileSystem.FileNamesFor(fileSet, packageFolder); return(packageFileNames.Select(file => { var packageName = Path.GetFileNameWithoutExtension(file); var explodedDirectory = FileSystem.Combine(directory.DestinationDirectory, packageName); var request = new ExplodeRequest { Directory = explodedDirectory, ExplodeAction = () => Explode(file, explodedDirectory, ExplodeOptions.DeleteDestination), GetVersion = () => _service.GetVersion(file), LogSameVersion = () => _logger.WritePackageZipFileWasSameVersionAsExploded(file) }; explode(request); return explodedDirectory; }).ToList()); // Needs to be evaluated right now. }
private string explodeZipAndReturnDirectory(string file, string applicationDirectory) { var directory = FubuMvcPackages.DirectoryForPackageZipFile(applicationDirectory, file); var request = new ExplodeRequest { Directory = directory, ExplodeAction = () => Explode(applicationDirectory, file), GetVersion = () => _service.GetVersion(file), LogSameVersion = () => _logger.WritePackageZipFileWasSameVersionAsExploded(file) }; explode(request); return(directory); }
private void explode(ExplodeRequest request) { if (_fileSystem.DirectoryExists(request.Directory)) { var packageVersion = request.GetVersion(); var folderVersion = ReadVersion(request.Directory); if (packageVersion == folderVersion) { request.LogSameVersion(); return; } } request.ExplodeAction(); }
public void ExplodeAssembly(string applicationDirectory, Assembly assembly, IPackageInfo packageInfo) { var directory = BottleFiles.GetDirectoryForExplodedPackage(applicationDirectory, assembly.GetName().Name); var request = new ExplodeRequest{ Directory = directory, GetVersion = () => assembly.GetName().Version.ToString(), LogSameVersion = () => ConsoleWriter.Write("Assembly {0} has already been 'exploded' onto disk".ToFormat(assembly.GetName().FullName)), ExplodeAction = () => explodeAssembly(assembly, directory) }; explode(request); _fileSystem.ChildDirectoriesFor(directory).Each(child => { var name = Path.GetFileName(child); packageInfo.Files.RegisterFolder(name, child.ToFullPath()); }); }
public void ExplodeAssembly(string applicationDirectory, Assembly assembly, IPackageFiles files) { var directory = FubuMvcPackages.GetDirectoryForExplodedPackage(applicationDirectory, assembly.GetName().Name); var request = new ExplodeRequest { Directory = directory, GetVersion = () => assembly.GetName().Version.ToString(), LogSameVersion = () => Console.WriteLine( "Assembly {0} has already been 'exploded' onto disk".ToFormat(assembly.GetName().FullName)), ExplodeAction = () => explodeAssembly(assembly, directory) }; explode(request); _fileSystem.ChildDirectoriesFor(directory).Each(child => { var name = Path.GetFileName(child); files.RegisterFolder(name, child.ToFullPath()); }); }
public void ExplodeAssembly(string applicationDirectory, Assembly assembly, IPackageInfo packageInfo) { var directory = BottleFiles.GetDirectoryForExplodedPackage(applicationDirectory, assembly.GetName().Name); var request = new ExplodeRequest { Directory = directory, GetVersion = () => assembly.GetName().Version.ToString(), LogSameVersion = () => { var message = "Assembly {0} has already been 'exploded' onto disk".ToFormat(assembly.GetName().FullName); PackageRegistry.Diagnostics.LogFor(packageInfo).Trace(message); }, ExplodeAction = () => explodeAssembly(assembly, directory) }; explode(request); _fileSystem.ChildDirectoriesFor(directory).Each(child => { var name = Path.GetFileName(child); packageInfo.Files.RegisterFolder(name, child.ToFullPath()); }); }
private string explodeZipAndReturnDirectory(string file, string applicationDirectory) { var directory = BottleFiles.DirectoryForPackageZipFile(applicationDirectory, file); var request = new ExplodeRequest{ Directory = directory, ExplodeAction = () => Explode(file, directory, ExplodeOptions.DeleteDestination), GetVersion = () => _service.GetVersion(file), LogSameVersion = () => _logger.WritePackageZipFileWasSameVersionAsExploded(file) }; explode(request); return directory; }
public void ExplodeAssembly(string applicationDirectory, Assembly assembly, IPackageFiles files) { var directory = FileSystem.Combine( applicationDirectory, "bin", FubuMvcPackages.FubuPackagesFolder, assembly.GetName().Name); var request = new ExplodeRequest{ Directory = directory, GetVersion = () => { return assembly.GetName().Version.ToString(); }, LogSameVersion = () => Console.WriteLine("Assembly {0} has already been 'exploded' onto disk".ToFormat(assembly.GetName().FullName)), ExplodeAction = () => explodeAssembly(assembly, directory, files) }; explode(request); _fileSystem.ChildDirectoriesFor(directory).Each(child => { var name = Path.GetFileName(child); files.RegisterFolder(name, child.ToFullPath()); }); }
public IEnumerable<string> ExplodeDirectory(ExplodeDirectory directory) { string packageFolder = directory.PackageDirectory; var fileSet = new FileSet { Include = "*.zip" }; directory.Log.Trace("Searching for zip files in package directory " + packageFolder); var packageFileNames = _fileSystem.FileNamesFor(fileSet, packageFolder); return packageFileNames.Select(file => { var packageName = Path.GetFileNameWithoutExtension(file); var explodedDirectory = FileSystem.Combine(directory.DestinationDirectory, packageName); // TODO -- need more logging here. Pass in the log and have it log what happens internally var request = new ExplodeRequest{ Directory = explodedDirectory, ExplodeAction = () => Explode(file, explodedDirectory, ExplodeOptions.DeleteDestination), GetVersion = () => _service.GetVersion(file), LogSameVersion = () => _logger.WritePackageZipFileWasSameVersionAsExploded(file) }; explode(request); return explodedDirectory; }).ToList(); // Needs to be evaluated right now. }