build.xml

Improved update procedure for servers with plugin already installed - only unzips newer files
This commit is contained in:
walterhiggins 2013-01-19 17:00:22 +00:00
parent 438ec92342
commit 24f7b594dd

View file

@ -38,37 +38,50 @@ public class ScriptCraftPlugin extends JavaPlugin
{ {
getLogger().finest("Directory " + JS_PLUGINS_DIR + " does not exist."); getLogger().finest("Directory " + JS_PLUGINS_DIR + " does not exist.");
getLogger().finest("Initializing " + JS_PLUGINS_DIR + " directory with contents from plugin archive."); getLogger().finest("Initializing " + JS_PLUGINS_DIR + " directory with contents from plugin archive.");
jsPlugins.mkdir(); jsPlugins.mkdir();
}
ZipInputStream zis = new ZipInputStream(getResource(JS_PLUGINS_DIR + ".zip")); ZipInputStream zis = new ZipInputStream(getResource(JS_PLUGINS_DIR + ".zip"));
ZipEntry entry; ZipEntry entry;
try { try {
while ( ( entry = zis.getNextEntry() ) != null) while ( ( entry = zis.getNextEntry() ) != null)
{ {
String filename = entry.getName(); String filename = entry.getName();
getLogger().finest("Unzipping " + filename); File newFile = new File(jsPlugins.getName() + File.separator + filename);
File newFile = new File(jsPlugins.getName() + File.separator + filename);
//create all non exists folders //create all non exists folders
//else you will hit FileNotFoundException for compressed folder //else you will hit FileNotFoundException for compressed folder
if (entry.isDirectory()){ if (entry.isDirectory()){
newFile.mkdirs(); newFile.mkdirs();
}else{ }else{
//
// only write out to file if zip entry is newer than file
//
long zTime = entry.getTime();
boolean unzip = false;
if (!newFile.exists())
unzip = true;
else{
long fTime = newFile.lastModified();
if (zTime > fTime)
unzip = true;
}
if (unzip){
getLogger().info("Unzipping " + filename);
FileOutputStream fout = new FileOutputStream(newFile); FileOutputStream fout = new FileOutputStream(newFile);
for (int c = zis.read(); c != -1; c = zis.read()) { for (int c = zis.read(); c != -1; c = zis.read()) {
fout.write(c); fout.write(c);
} }
fout.close(); fout.close();
} }
zis.closeEntry();
} }
zis.close(); zis.closeEntry();
}catch (IOException ioe){
getLogger().warning(ioe.getMessage());
ioe.printStackTrace();
} }
zis.close();
}catch (IOException ioe){
getLogger().warning(ioe.getMessage());
ioe.printStackTrace();
} }
} }