2021-09-15 16:45:54 +02:00
|
|
|
package io.gitlab.jfronny.respackopts.filters.util;
|
2020-12-21 14:51:49 +01:00
|
|
|
|
2021-07-13 16:15:03 +02:00
|
|
|
import io.gitlab.jfronny.libjf.data.WrappedPack;
|
2020-12-21 14:51:49 +01:00
|
|
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
2021-09-15 18:37:07 +02:00
|
|
|
import io.gitlab.jfronny.respackopts.RpoModInfo;
|
2021-09-15 17:13:14 +02:00
|
|
|
import io.gitlab.jfronny.respackopts.util.RpoFormatException;
|
2020-12-21 14:51:49 +01:00
|
|
|
|
2021-09-15 16:45:54 +02:00
|
|
|
public class FileExclusionProvider {
|
2021-07-13 16:15:03 +02:00
|
|
|
public static boolean fileHidden(WrappedPack pack, String name) {
|
2021-09-15 17:13:14 +02:00
|
|
|
return FileRpoSearchProvider.modifyWithRpo(name, pack, rpo -> {
|
2021-02-15 12:17:52 +01:00
|
|
|
if (rpo.conditions == null)
|
|
|
|
return false;
|
2021-09-15 17:13:14 +02:00
|
|
|
try {
|
|
|
|
return !rpo.conditions.evaluate(Respackopts.getId(pack));
|
|
|
|
} catch (RpoFormatException e) {
|
2021-09-15 18:37:07 +02:00
|
|
|
RpoModInfo.LOGGER.error("Could not evaluate condition " + name, e);
|
2021-09-15 17:13:14 +02:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}, false);
|
2020-12-21 14:51:49 +01:00
|
|
|
}
|
|
|
|
}
|