Remove feature for removing backup files

Simple combination of find, xargs and rm
should do the same.
This commit is contained in:
Martchus 2016-07-11 21:15:58 +02:00
parent 229e24cbe0
commit d69190a6e5
5 changed files with 1 additions and 46 deletions

View File

@ -185,15 +185,6 @@ int main(int argc, char *argv[])
genInfoArg.setDenotesOperation(true);
genInfoArg.setSubArguments({&fileArg, &validateArg, &outputFileArg});
genInfoArg.setCallback(std::bind(Cli::generateFileInfo, _1, std::cref(fileArg), std::cref(outputFileArg), std::cref(validateArg)));
// remove backup files
Argument directoryArg("directory", 'd', "specifies the directory");
directoryArg.setRequiredValueCount(1);
directoryArg.setValueNames({"path"});
directoryArg.setImplicit(true);
Argument remBackupFilesArg("remove-backup-files", '\0', "removes all files with \".bak\" suffix in the given directory and in subdirectories if recursive option is present");
remBackupFilesArg.setDenotesOperation(true);
remBackupFilesArg.setCallback(std::bind(Cli::removeBackupFiles, _1, std::cref(recursiveArg)));
remBackupFilesArg.setSubArguments({&directoryArg, &recursiveArg});
// renaming utility
Argument renamingUtilityArg("renaming-utility", '\0', "launches the renaming utility instead of the main GUI");
renamingUtilityArg.setCombinable(true);
@ -201,7 +192,7 @@ int main(int argc, char *argv[])
qtConfigArgs.qtWidgetsGuiArg().setAbbreviation('\0');
qtConfigArgs.qtWidgetsGuiArg().addSubArgument(&defaultFileArg);
qtConfigArgs.qtWidgetsGuiArg().addSubArgument(&renamingUtilityArg);
parser.setMainArguments({&qtConfigArgs.qtWidgetsGuiArg(), &printFieldNamesArg, &displayFileInfoArg, &displayTagInfoArg, &setTagInfoArgs.setTagInfoArg, &extractFieldArg, &genInfoArg, &remBackupFilesArg, &helpArg});
parser.setMainArguments({&qtConfigArgs.qtWidgetsGuiArg(), &printFieldNamesArg, &displayFileInfoArg, &displayTagInfoArg, &setTagInfoArgs.setTagInfoArg, &extractFieldArg, &genInfoArg, &helpArg});
// parse given arguments
try {
parser.parseArgs(argc, argv);

View File

@ -163,15 +163,6 @@ void printFieldNames(const ArgumentOccurance &occurance)
cout << fieldNames << endl;
}
void removeBackupFiles(const ArgumentOccurance &occurance, const Argument &recursiveArg)
{
CMD_UTILS_START_CONSOLE;
QDir dir(QString::fromStdString(occurance.values.front()));
QStringList affectedFiles;
int filesFound = Utility::removeBackupFiles(dir, affectedFiles, &cout, recursiveArg.isPresent());
cout << affectedFiles.size() << " of " << filesFound << " backup files have been removed." << endl;
}
TagUsage parseUsageDenotation(const Argument &usageArg, TagUsage defaultUsage)
{
if(usageArg.isPresent()) {

View File

@ -50,7 +50,6 @@ void generateFileInfo(const ApplicationUtilities::ArgumentOccurance &, const App
void displayTagInfo(const ApplicationUtilities::Argument &fieldsArg, const ApplicationUtilities::Argument &filesArg, const ApplicationUtilities::Argument &verboseArg);
void setTagInfo(const Cli::SetTagInfoArgs &args);
void extractField(const ApplicationUtilities::Argument &fieldsArg, const ApplicationUtilities::Argument &inputFileArg, const ApplicationUtilities::Argument &outputFileArg, const ApplicationUtilities::Argument &verboseArg);
void removeBackupFiles(const ApplicationUtilities::ArgumentOccurance &occurance, const ApplicationUtilities::Argument &recursiveArg);
}

View File

@ -109,31 +109,6 @@ TagValue qstringToTagValue(const QString &value, TagTextEncoding textEncoding)
return value.isEmpty() ? TagValue() : TagValue(qstringToString(value, textEncoding), textEncoding);
}
int removeBackupFiles(const QDir &directory, QStringList &affectedFiles, ostream *log, bool recursive)
{
QDirIterator iterator(directory, recursive ? QDirIterator::Subdirectories : QDirIterator::NoIteratorFlags);
QString path;
int filesFound = 0;
while(iterator.hasNext()) {
path = iterator.next();
const auto fileInfo = iterator.fileInfo();
if(fileInfo.isFile()) {
if(fileInfo.suffix() == QLatin1String("bak")) {
++filesFound;
if(QFile::remove(path)) {
affectedFiles << path;
if(log) {
*log << "\"" << path.toStdString() << "\" has been removed." << endl;
}
} else if(log) {
*log << "Unable to remove \"" << path.toStdString() << "\"." << endl;
}
}
}
}
return filesFound;
}
QString formatName(const QString &str, bool underscoreToWhitespace)
{
QString res;

View File

@ -25,7 +25,6 @@ Media::TagValue qstringToTagValue(const QString &value, Media::TagTextEncoding t
QString formatName(const QString &str, bool underscoreToWhitespace = true);
QString fixUmlauts(const QString &str);
void parseFileName(const QString &fileName, QString &title, int &trackNumber);
int removeBackupFiles(const QDir &directory, QStringList &affectedFiles, std::ostream *log = nullptr, bool recursive = false);
QString printModel(QAbstractItemModel *model);
void printModelIndex(const QModelIndex &index, QString &res, int level);