Use try/finally to ensure popen streams are always closed

This commit is contained in:
Antoine Mercadal
2015-05-09 10:22:13 -07:00
parent 9bcaef192c
commit c603326e58
10 changed files with 172 additions and 112 deletions
+14 -9
View File
@@ -378,16 +378,21 @@ global.setPackageMetadata = function(packagePath)
{
var pkg = JSON.parse(FILE.read(packagePath, { charset : "UTF-8" }));
var p = OS.popen(["git", "rev-parse", "--verify", "HEAD"]);
if (p.wait() === 0) {
var sha = p.stdout.read().split("\n")[0];
if (sha.length === 40)
pkg["cappuccino-revision"] = sha;
try
{
var p = OS.popen(["git", "rev-parse", "--verify", "HEAD"]);
if (p.wait() === 0) {
var sha = p.stdout.read().split("\n")[0];
if (sha.length === 40)
pkg["cappuccino-revision"] = sha;
}
}
finally
{
p.stdin.close();
p.stdout.close();
p.stderr.close();
}
p.stdin.close();
p.stdout.close();
p.stderr.close();
pkg["cappuccino-timestamp"] = new Date().getTime();
pkg["version"] = getCappuccinoVersion();