Warning: session_start(): open(/var/lib/php/sessions/sess_cssdua1k62at4ujobdhlg882rt, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
static bool dir2zip_recurse_honorDontBackupFiles_verbose;
static int dir2zip_recurse_honorDontBackupFiles(File inDir, File zip) {
ret dir2zip_recurse_honorDontBackupFiles(inDir, zip, "");
}
// automatically adds a dummy file (empty.txt) in case there are no files to zip
static int dir2zip_recurse_honorDontBackupFiles(File inDir, File zip, String outPrefix) ctex {
mkdirsForFile(zip);
FileOutputStream fout = newFileOutputStream(zip);
ZipOutputStream outZip = new ZipOutputStream(fout);
try {
int count = dir2zip_recurse_honorDontBackupFiles(inDir, outZip, outPrefix, 0);
if (count == 0)
zip_addDummyFile(outZip);
ret count;
} finally {
outZip.close();
}
}
static int dir2zip_recurse_honorDontBackupFiles(File inDir, ZipOutputStream outZip) {
ret dir2zip_recurse_honorDontBackupFiles(inDir, outZip, "", 0);
}
static int dir2zip_recurse_honorDontBackupFiles(File inDir, ZipOutputStream outZip, String outPrefix, int level) ctex {
if (++level >= 20) fail("woot? 20 levels in zip?");
Set dontBackup = asSet(lines(loadTextFile(newFile(inDir, standardNameOfDontBackupFile()))));
new L files;
for (File f : listFiles(inDir))
if (!contains(dontBackup, f.getName()))
files.add(f);
int n = 0;
sortFilesByName(files);
for (File f : files) {
if (f.isDirectory()) {
print("dir2zip_recurse_honorDontBackupFiles: Scanning " + f.getAbsolutePath());
n += dir2zip_recurse_honorDontBackupFiles(f, outZip, outPrefix + f.getName() + "/", level);
} else {
if (dir2zip_recurse_honorDontBackupFiles_verbose) print("Copying " + f.getName());
outZip.putNextEntry(new ZipEntry(outPrefix + f.getName()));
InputStream fin = new FileInputStream(f);
copyStream(fin, outZip);
fin.close();
++n;
}
}
return n;
}