|
@@ -157,11 +157,21 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
var creator = GetPackageCreator();
|
|
|
var directory = creator.DashboardUIPath;
|
|
|
|
|
|
- var skipExtensions = GetUndeployedExtensions();
|
|
|
+ var skipExtensions = GetDeployIgnoreExtensions();
|
|
|
+ var skipNames = GetDeployIgnoreFilenames();
|
|
|
|
|
|
return
|
|
|
Directory.GetFiles(directory, "*", SearchOption.AllDirectories)
|
|
|
.Where(i => !skipExtensions.Contains(Path.GetExtension(i) ?? string.Empty, StringComparer.OrdinalIgnoreCase))
|
|
|
+ .Where(i => !skipNames.Any(s =>
|
|
|
+ {
|
|
|
+ if (s.Item2)
|
|
|
+ {
|
|
|
+ return string.Equals(s.Item1, Path.GetFileName(i), StringComparison.OrdinalIgnoreCase);
|
|
|
+ }
|
|
|
+
|
|
|
+ return (Path.GetFileName(i) ?? string.Empty).IndexOf(s.Item1, StringComparison.OrdinalIgnoreCase) != -1;
|
|
|
+ }))
|
|
|
.Select(i => i.Replace(directory, string.Empty, StringComparison.OrdinalIgnoreCase).Replace("\\", "/").TrimStart('/') + "?v=" + _appHost.ApplicationVersion.ToString())
|
|
|
.ToList();
|
|
|
}
|
|
@@ -300,7 +310,7 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
return new PackageCreator(_fileSystem, _localization, Logger, _serverConfigurationManager, _jsonSerializer);
|
|
|
}
|
|
|
|
|
|
- private List<string> GetUndeployedExtensions()
|
|
|
+ private List<string> GetDeployIgnoreExtensions()
|
|
|
{
|
|
|
var list = new List<string>();
|
|
|
|
|
@@ -315,6 +325,28 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ private List<Tuple<string,bool>> GetDeployIgnoreFilenames()
|
|
|
+ {
|
|
|
+ var list = new List<Tuple<string, bool>>();
|
|
|
+
|
|
|
+ list.Add(new Tuple<string, bool>("copying", true));
|
|
|
+ list.Add(new Tuple<string, bool>("license", true));
|
|
|
+ list.Add(new Tuple<string, bool>("license-mit", true));
|
|
|
+ list.Add(new Tuple<string, bool>("gitignore", false));
|
|
|
+ list.Add(new Tuple<string, bool>("npmignore", false));
|
|
|
+ list.Add(new Tuple<string, bool>("jshintrc", false));
|
|
|
+ list.Add(new Tuple<string, bool>("gruntfile", false));
|
|
|
+ list.Add(new Tuple<string, bool>("bowerrc", false));
|
|
|
+ list.Add(new Tuple<string, bool>("jscsrc", false));
|
|
|
+ list.Add(new Tuple<string, bool>("hero.svg", false));
|
|
|
+ list.Add(new Tuple<string, bool>("travis.yml", false));
|
|
|
+ list.Add(new Tuple<string, bool>("build.js", false));
|
|
|
+ list.Add(new Tuple<string, bool>("editorconfig", false));
|
|
|
+ list.Add(new Tuple<string, bool>("gitattributes", false));
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
public async Task<object> Get(GetDashboardPackage request)
|
|
|
{
|
|
|
var path = Path.Combine(_serverConfigurationManager.ApplicationPaths.ProgramDataPath,
|
|
@@ -344,30 +376,12 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
// Try to trim the output size a bit
|
|
|
var bowerPath = Path.Combine(path, "bower_components");
|
|
|
|
|
|
- if (!string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
|
|
- {
|
|
|
- //var versionedBowerPath = Path.Combine(Path.GetDirectoryName(bowerPath), "bower_components" + _appHost.ApplicationVersion);
|
|
|
- //Directory.Move(bowerPath, versionedBowerPath);
|
|
|
- //bowerPath = versionedBowerPath;
|
|
|
- }
|
|
|
-
|
|
|
- GetUndeployedExtensions().ForEach(i => DeleteFilesByExtension(bowerPath, i));
|
|
|
+ GetDeployIgnoreExtensions().ForEach(i => DeleteFilesByExtension(bowerPath, i));
|
|
|
|
|
|
DeleteFilesByExtension(bowerPath, ".json", "strings\\");
|
|
|
- DeleteFilesByName(bowerPath, "copying", true);
|
|
|
- DeleteFilesByName(bowerPath, "license", true);
|
|
|
- DeleteFilesByName(bowerPath, "license-mit", true);
|
|
|
- DeleteFilesByName(bowerPath, "gitignore");
|
|
|
- DeleteFilesByName(bowerPath, "npmignore");
|
|
|
- DeleteFilesByName(bowerPath, "jshintrc");
|
|
|
- DeleteFilesByName(bowerPath, "gruntfile");
|
|
|
- DeleteFilesByName(bowerPath, "bowerrc");
|
|
|
- DeleteFilesByName(bowerPath, "jscsrc");
|
|
|
- DeleteFilesByName(bowerPath, "hero.svg");
|
|
|
- DeleteFilesByName(bowerPath, "travis.yml");
|
|
|
- DeleteFilesByName(bowerPath, "build.js");
|
|
|
- DeleteFilesByName(bowerPath, "editorconfig");
|
|
|
- DeleteFilesByName(bowerPath, "gitattributes");
|
|
|
+
|
|
|
+ GetDeployIgnoreFilenames().ForEach(i => DeleteFilesByName(bowerPath, i.Item1, i.Item2));
|
|
|
+
|
|
|
DeleteFoldersByName(bowerPath, "demo");
|
|
|
DeleteFoldersByName(bowerPath, "test");
|
|
|
DeleteFoldersByName(bowerPath, "guides");
|