From 31bfba80fbe61e5af399fe6c430d0105dd554060 Mon Sep 17 00:00:00 2001 From: Christian Fastner Date: Tue, 4 Jul 2017 16:54:44 +0200 Subject: [PATCH 1/2] added support for wildcards in file names --- src/SeafileCli/VerbHandler/UploadHandler.cs | 36 ++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/SeafileCli/VerbHandler/UploadHandler.cs b/src/SeafileCli/VerbHandler/UploadHandler.cs index 7fba83a..030d15c 100644 --- a/src/SeafileCli/VerbHandler/UploadHandler.cs +++ b/src/SeafileCli/VerbHandler/UploadHandler.cs @@ -1,5 +1,8 @@ using System; +using System.CodeDom; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Threading.Tasks; using SeafileCli.Argparse; @@ -23,7 +26,9 @@ private async Task RunAsync() var library = await session.GetLibrary(_options.Library); await session.CreateDirectoryWithParents(library, _options.Directory); - foreach (var file in _options.Files) + IEnumerable allfiles = CreateFilepathList(_options.FileNames); + + foreach (var file in allfiles) { try { @@ -45,5 +50,34 @@ public void Run() { RunAsync().Wait(); } + + + private IEnumerable CreateFilepathList(string[] fileNames) + { + string[] allfiles = fileNames; + IEnumerable calcFiles = new List(); + string directory = Directory.GetCurrentDirectory(); + + foreach (var file in _options.FileNames) + { + if (file.Contains("*")) // handle wildcard + { + if (file.Contains(@"\")) // check if directory path is included + { + directory = Path.GetDirectoryName(file); + } + + var fileName = Path.GetFileName(file); // e.g. *.zip + calcFiles = calcFiles.Concat(Directory.GetFiles(directory, fileName, SearchOption.TopDirectoryOnly)); + } + } + + if (calcFiles.Count() > 0) + { + allfiles = calcFiles.Distinct().ToArray(); // rm duplicated files + } + + return allfiles; + } } } \ No newline at end of file From dc3aad060f064beb1289fce642bc9e82a9b4351d Mon Sep 17 00:00:00 2001 From: Christian Fastner Date: Tue, 4 Jul 2017 16:58:50 +0200 Subject: [PATCH 2/2] fix: ci build --- src/SeafileCli/VerbHandler/UploadHandler.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SeafileCli/VerbHandler/UploadHandler.cs b/src/SeafileCli/VerbHandler/UploadHandler.cs index 030d15c..f4f2a98 100644 --- a/src/SeafileCli/VerbHandler/UploadHandler.cs +++ b/src/SeafileCli/VerbHandler/UploadHandler.cs @@ -26,7 +26,7 @@ private async Task RunAsync() var library = await session.GetLibrary(_options.Library); await session.CreateDirectoryWithParents(library, _options.Directory); - IEnumerable allfiles = CreateFilepathList(_options.FileNames); + IEnumerable allfiles = CreateFilepathList(_options.Files); foreach (var file in allfiles) { @@ -58,7 +58,7 @@ private IEnumerable CreateFilepathList(string[] fileNames) IEnumerable calcFiles = new List(); string directory = Directory.GetCurrentDirectory(); - foreach (var file in _options.FileNames) + foreach (var file in _options.Files) { if (file.Contains("*")) // handle wildcard {