build.xml | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/GitBlit.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/utils/FileUtils.java | ●●●●● patch | view | raw | blame | history |
build.xml
@@ -499,6 +499,15 @@ <copy tofile="${deployments.root}/WEB-INF/reference.properties" file="${basedir}/distrib/gitblit.properties"/> <!-- Copy the supported Groovy hook scripts --> <mkdir dir="${deployments.root}/WEB-INF/groovy" /> <copy todir="${deployments.root}/WEB-INF/groovy"> <fileset dir="${basedir}/groovy"> <include name="sendmail.groovy" /> <include name="jenkins.groovy" /> </fileset> </copy> <!-- Build the WAR web.xml from the prototype web.xml and gitblit.properties --> <!-- THIS FILE IS NOT OVERRIDDEN ONCE IT IS BUILT!!! --> <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildWebXml"> src/com/gitblit/GitBlit.java
@@ -1788,6 +1788,21 @@ webxmlSettings.applyOverrides(overrideFile); } configureContext(webxmlSettings, true); // Copy the included scripts to the configured groovy folder File localScripts = getFileOrFolder(Keys.groovy.scriptsFolder, "groovy"); if (!localScripts.exists()) { File includedScripts = new File(context.getRealPath("/WEB-INF/groovy")); if (!includedScripts.equals(localScripts)) { try { com.gitblit.utils.FileUtils.copy(localScripts, includedScripts.listFiles()); } catch (IOException e) { logger.error(MessageFormat.format( "Failed to copy included Groovy scripts from {0} to {1}", includedScripts, localScripts)); } } } } serverStatus.servletContainer = servletContext.getServerInfo(); src/com/gitblit/utils/FileUtils.java
@@ -15,11 +15,14 @@ */ package com.gitblit.utils; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.nio.charset.Charset; @@ -103,4 +106,47 @@ } return length; } /** * Copies a file or folder (recursively) to a destination folder. * * @param destinationFolder * @param filesOrFolders * @return * @throws FileNotFoundException * @throws IOException */ public static void copy(File destinationFolder, File... filesOrFolders) throws FileNotFoundException, IOException { destinationFolder.mkdirs(); for (File file : filesOrFolders) { if (file.isDirectory()) { copy(new File(destinationFolder, file.getName()), file.listFiles()); } else { File dFile = new File(destinationFolder, file.getName()); BufferedInputStream bufin = null; FileOutputStream fos = null; try { bufin = new BufferedInputStream(new FileInputStream(file)); fos = new FileOutputStream(dFile); int len = 8196; byte[] buff = new byte[len]; int n = 0; while ((n = bufin.read(buff, 0, len)) != -1) { fos.write(buff, 0, n); } } finally { try { bufin.close(); } catch (Throwable t) { } try { fos.close(); } catch (Throwable t) { } } dFile.setLastModified(file.lastModified()); } } } }