Improved parameter management.
This commit is contained in:
parent
16c239f1c6
commit
4e0d9e8ab7
4 changed files with 77 additions and 11 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Christian Pierre MOMON <christian@momon.org>
|
* Copyright (C) 2021-2024 Christian Pierre MOMON <christian@momon.org>
|
||||||
*
|
*
|
||||||
* This file is part of Logar, simple tool to manage http log files.
|
* This file is part of Logar, simple tool to manage http log files.
|
||||||
*
|
*
|
||||||
|
@ -92,7 +92,7 @@ public final class Logar
|
||||||
}
|
}
|
||||||
else if (!source.exists())
|
else if (!source.exists())
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("Source file does not exist.");
|
throw new IllegalArgumentException("Source file does not exist: " + source);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -101,6 +101,45 @@ public final class Logar
|
||||||
System.out.println("Table size=" + anonymizer.getMapTable().size());
|
System.out.println("Table size=" + anonymizer.getMapTable().size());
|
||||||
|
|
||||||
Files files = FilesUtils.search(source, LOGFILE_PATTERN).keepFileType().removeContaining("-anon.").sortByName();
|
Files files = FilesUtils.search(source, LOGFILE_PATTERN).keepFileType().removeContaining("-anon.").sortByName();
|
||||||
|
anonymize(files, mapFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anonymize.
|
||||||
|
*
|
||||||
|
* @param files
|
||||||
|
* the files
|
||||||
|
* @throws IOException
|
||||||
|
* Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
public static void anonymize(final Files files) throws IOException
|
||||||
|
{
|
||||||
|
anonymize(files, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anonymize.
|
||||||
|
*
|
||||||
|
* @param files
|
||||||
|
* the files
|
||||||
|
* @param mapFile
|
||||||
|
* the map file
|
||||||
|
* @throws IOException
|
||||||
|
* Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
public static void anonymize(final Files files, final File mapFile) throws IOException
|
||||||
|
{
|
||||||
|
if (files == null)
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException("Null source file.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Anonymizer anonymizer = new Anonymizer();
|
||||||
|
anonymizer.loadMapTable(mapFile);
|
||||||
|
System.out.println("Table size=" + anonymizer.getMapTable().size());
|
||||||
|
|
||||||
logger.info("file count={}", files.size());
|
logger.info("file count={}", files.size());
|
||||||
for (File file : files)
|
for (File file : files)
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,11 +78,11 @@ public final class Anonymizer
|
||||||
}
|
}
|
||||||
else if (!source.isFile())
|
else if (!source.isFile())
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("Parameter is not a file.");
|
throw new IllegalArgumentException("Parameter is not a file [" + source + "]");
|
||||||
}
|
}
|
||||||
else if (!StringUtils.containsAny(source.getName(), "access", "error"))
|
else if (!StringUtils.containsAny(source.getName(), "access", "error"))
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("File name does not contain 'access' or 'error'.");
|
throw new IllegalArgumentException("File name does not contain 'access' or 'error' [" + source + "]");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -92,7 +92,7 @@ public final class Anonymizer
|
||||||
File target;
|
File target;
|
||||||
if (source.getName().endsWith(".log"))
|
if (source.getName().endsWith(".log"))
|
||||||
{
|
{
|
||||||
target = new File(source.getParentFile(), source.getName().replaceAll(".log$", "-anon.log."));
|
target = new File(source.getParentFile(), source.getName().replaceAll(".log$", "-anon.log"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,6 +28,8 @@ import fr.devinsy.logar.app.ExtractOptions;
|
||||||
import fr.devinsy.logar.app.Logar;
|
import fr.devinsy.logar.app.Logar;
|
||||||
import fr.devinsy.logar.app.OnOffOption;
|
import fr.devinsy.logar.app.OnOffOption;
|
||||||
import fr.devinsy.logar.util.BuildInformation;
|
import fr.devinsy.logar.util.BuildInformation;
|
||||||
|
import fr.devinsy.logar.util.Files;
|
||||||
|
import fr.devinsy.logar.util.FilesUtils;
|
||||||
import fr.devinsy.strings.StringList;
|
import fr.devinsy.strings.StringList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -128,17 +130,27 @@ public final class LogarCLI
|
||||||
{
|
{
|
||||||
displayVersion();
|
displayVersion();
|
||||||
}
|
}
|
||||||
else if (CLIUtils.isMatching(args, "anonymize", ".+", "-map", ".+"))
|
else if (CLIUtils.isMatchingEllipsis(args, "anonymize", "-map", ".+", ".+"))
|
||||||
{
|
{
|
||||||
File source = new File(args[1]);
|
|
||||||
File map = new File(args[2]);
|
File map = new File(args[2]);
|
||||||
|
Files source = new Files();
|
||||||
|
for (int index = 3; index < args.length; index++)
|
||||||
|
{
|
||||||
|
File file = new File(args[index]);
|
||||||
|
Files filteredFiles = FilesUtils.search(file, Logar.LOGFILE_PATTERN).keepFileType().removeContaining("-anon.").sortByName();
|
||||||
|
source.addAll(filteredFiles);
|
||||||
|
}
|
||||||
Logar.anonymize(source, map);
|
Logar.anonymize(source, map);
|
||||||
}
|
}
|
||||||
else if (CLIUtils.isMatchingEllipsis(args, "anonymize", ".+"))
|
else if (CLIUtils.isMatchingEllipsis(args, "anonymize", ".+"))
|
||||||
{
|
{
|
||||||
File source = new File(args[1]);
|
Files source = new Files();
|
||||||
|
for (int index = 1; index < args.length; index++)
|
||||||
|
{
|
||||||
|
File file = new File(args[index]);
|
||||||
|
Files filteredFiles = FilesUtils.search(file, Logar.LOGFILE_PATTERN).keepFileType().removeContaining("-anon.").sortByName();
|
||||||
|
source.addAll(filteredFiles);
|
||||||
|
}
|
||||||
Logar.anonymize(source);
|
Logar.anonymize(source);
|
||||||
}
|
}
|
||||||
else if (CLIUtils.isMatching(args, "archive", ".+", ".+"))
|
else if (CLIUtils.isMatching(args, "archive", ".+", ".+"))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Christian Pierre MOMON <christian@momon.org>
|
* Copyright (C) 2021-2024 Christian Pierre MOMON <christian@momon.org>
|
||||||
*
|
*
|
||||||
* This file is part of Logar, simple tool to manage http log files.
|
* This file is part of Logar, simple tool to manage http log files.
|
||||||
*
|
*
|
||||||
|
@ -49,6 +49,21 @@ public class Files extends ArrayList<File>
|
||||||
super(initialCapacity);
|
super(initialCapacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new files.
|
||||||
|
*
|
||||||
|
* @param source
|
||||||
|
* the source
|
||||||
|
*/
|
||||||
|
public Files(final String[] source)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
for (String file : source)
|
||||||
|
{
|
||||||
|
add(new File(file));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Keep.
|
* Keep.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue