Warning: session_start(): open(/var/lib/php/sessions/sess_ej91k9c5sg2veupst2gfr6dp7k, 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
sclass ProgramPackager {
File jarFile;
S mainProgramID;
S mainClassName;
Set excludeSnippets;
Cl extraSnippets;
VF1 copyAdditionalFiles = voidfunc(ZipOutputStream jar) {
file2zip(jar, programFile("gazelle-concepts.zip"));
};
*(File *jarFile, S *mainProgramID, S *mainClassName) {}
*(File *jarFile, S *mainProgramID) {
assertNotNull("Please set mainClassName in " + mainProgramID,
mainClassName = tok_mainClassNameFromJavaXSnippet(mainProgramID));
}
Set snippetIDs;
Map> trace;
void go ctex {
Pair programJarAndSrc = CompilerBot.compileSnippet2(mainProgramID);
if (snippetIDs == null) {
temp IProgressShower p = tempProgressBar("Collecting dependencies", 100);
trace = new Map;
snippetIDs = recursivelyCollectSnippetIDsFromTranspiled(
itemPlusList(mainProgramID, extraSnippets),
trace_out := minimalNotifyingMap(trace, r {
p.setValue(l(trace));
}),
exclude := excludeSnippets);
}
temp IProgressShower p = tempProgressBar("JAR", or_nonZeroLong(fileSize(jarFile), megabytes(30)));
{
temp ZipOutputStream jar = zipOutputStream(jarFile);
temp tempShowFileSizeProgress(p, jarFile);
makeManifestWithMainClass(jar, mainClassName);
zip2zip_exceptManifest2(programJarAndSrc.a, jar,
// exclude those:
litset("main.java"));
zip_addTextFile(jar, "back-references.txt",
renderMap_colon_lines(reverseMultiMap_tree(pseudoToRealMultiMap(trace)).data));
SS titles = getSnippetTitles_cached(snippetIDs);
zip_addTextFile(jar, "snippet-titles.struct", struct(titles));
new TreeMap types;
for (S snippetID : snippetIDs) {
continue if isPseudoSnippetID(snippetID);
int type = getSnippetType(snippetID);
types.put(snippetID, type);
if (type == snippetType_image()) {
File img = loadLibrary(snippetID);
addFileToZip(jar, img, psI(snippetID) + "." + (isGIF(img) ? "gif" : "png"));
} else if (type == snippetType_data())
addFileToZip(jar, loadLibrary(snippetID), psI(snippetID) + ".bin");
else pcall {
S text = loadSnippet(snippetID);
if (text != null)
zip_addTextFile(jar, psI(snippetID) + ".text", text);
if (isJavaxCompilableSnippetTypeExceptInclude(type))
zip_addTextFile(jar, psI(snippetID) + ".transpiled", getServerTranspiled2(snippetID));
}
}
zip_addTextFile(jar, "snippet-types.struct", struct(types));
File javaxJar = pathToJavaxJar();
print("Copying: " + javaxJar);
zip2zip_exceptManifest2(javaxJar, jar,
// exclude those:
litset("transpilationDate"));
callF(copyAdditionalFiles, jar);
} // jar close
makeExecutable(jarFile);
fileSavedInfoBox(jarFile);
}
}