Skip to content

Commit

Permalink
Merge pull request #1 from ProfitWarning/support-wildcards
Browse files Browse the repository at this point in the history
added support for wildcards in file names
  • Loading branch information
corux authored Jul 4, 2017
2 parents e941ac8 + dc3aad0 commit 6fcc543
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion src/SeafileCli/VerbHandler/UploadHandler.cs
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -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<string> allfiles = CreateFilepathList(_options.Files);

foreach (var file in allfiles)
{
try
{
Expand All @@ -45,5 +50,34 @@ public void Run()
{
RunAsync().Wait();
}


private IEnumerable<string> CreateFilepathList(string[] fileNames)
{
string[] allfiles = fileNames;
IEnumerable<string> calcFiles = new List<string>();
string directory = Directory.GetCurrentDirectory();

foreach (var file in _options.Files)
{
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;
}
}
}

0 comments on commit 6fcc543

Please sign in to comment.