
com.liferay.gradle.plugins.internal.util.FileUtil Maven / Gradle / Ivy
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.gradle.plugins.internal.util;
import com.liferay.gradle.util.ArrayUtil;
import groovy.lang.Closure;
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.gradle.api.AntBuilder;
import org.gradle.api.Project;
import org.gradle.api.file.FileTree;
import org.gradle.api.logging.Logger;
import org.gradle.api.logging.Logging;
/**
* @author Andrea Di Giorgi
*/
public class FileUtil extends com.liferay.gradle.util.FileUtil {
public static FileTree getJarsFileTree(
Project project, File dir, String... excludes) {
Map args = new HashMap<>();
args.put("dir", dir);
if (ArrayUtil.isNotEmpty(excludes)) {
args.put("excludes", Arrays.asList(excludes));
}
args.put("include", "*.jar");
return project.fileTree(args);
}
public static String getRelativePath(Project project, File file) {
String relativePath = project.relativePath(file);
if (File.separatorChar != '/') {
relativePath = relativePath.replace(File.separatorChar, '/');
}
return relativePath;
}
public static void touchFile(File file, long time) {
boolean success = file.setLastModified(time);
if (!success) {
_logger.error("Unable to touch {}", file);
}
}
public static void touchFiles(
Project project, File dir, long time, String... includes) {
Map args = new HashMap<>();
args.put("dir", dir);
args.put("includes", Arrays.asList(includes));
FileTree fileTree = project.fileTree(args);
for (File file : fileTree) {
touchFile(file, time);
}
}
public static void unzip(
Project project, final File file, final File destinationDir) {
project.ant(
new Closure(project) {
@SuppressWarnings("unused")
public void doCall(AntBuilder antBuilder) {
_invokeAntMethodUnzip(antBuilder, file, destinationDir);
}
});
}
private static void _invokeAntMethodUnzip(
AntBuilder antBuilder, File file, File destinationDir) {
Map args = new HashMap<>();
args.put("dest", destinationDir);
args.put("src", file);
antBuilder.invokeMethod("unzip", args);
}
private static final Logger _logger = Logging.getLogger(FileUtil.class);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy