Support for postinstall scripts

This commit is contained in:
Aparajita Fishman
2011-07-17 09:15:26 +03:00
parent 3bb450adbf
commit b958911c63
2 changed files with 29 additions and 0 deletions
+15
View File
@@ -189,6 +189,8 @@ function gen(/*va_args*/)
{
fail("The directory " + FILE.absolute(destinationProject) + " already exists.");
}
executePostInstallScript(destinationProject);
}
function createFrameworksInFile(/*Array*/ frameworks, /*String*/ aFile, /*Boolean*/ symlink, /*Boolean*/ build, /*Boolean*/ force)
@@ -365,6 +367,19 @@ function listFrameworks()
});
}
function executePostInstallScript(/*String*/ destinationProject)
{
var path = FILE.join(destinationProject, "postinstall");
if (FILE.exists(path))
{
stream.print(colorize("Executing postinstall script...", "cyan"));
OS.system(["/bin/sh", path, destinationProject]); // Use sh in case it isn't marked executable
FILE.remove(path);
}
}
function colorize(message, color)
{
return "\0" + color + "(" + message + "\0)";
+14
View File
@@ -88,6 +88,20 @@ or
This is a handy shortcut for
.Sy --symlink --build.
.El
.Ss Postinstall scripts
After copying the chosen template, replacing placeholders, and installing the frameworks,
if
.Nm
finds a file named "postinstall", it will be executed using
.Sy sh.
The script receives a single parameter which is the directory of the generated project.
Scripts should reference files in the project relative to that directory.
.Pp
After executing the
.Sy postinstall
script,
.Nm
deletes it from the generated project.
.\"-----------------------------------------------------------------------------------------
.Sh CONFIGURING
.\"-----------------------------------------------------------------------------------------