production mode, now is using a hash based in vendor commits

This commit is contained in:
Fernando Ontiveros
2014-03-12 13:08:01 -04:00
parent 850952607a
commit 970f17c63c
3 changed files with 22 additions and 39 deletions

View File

@@ -52,12 +52,16 @@ out("generating files for ", 'purple', false);
out( $debug ? 'debug' : 'production', 'success', false); out( $debug ? 'debug' : 'production', 'success', false);
out(" mode", 'purple'); out(" mode", 'purple');
$hashVendors = '';
$hashes = array();
foreach ($projects as $project) { foreach ($projects as $project) {
echo PHP_EOL; echo PHP_EOL;
out("=> Building project: ", 'info', false); out("=> Building project: ", 'info', false);
$output = array(); $output = array();
echo $project.' '.PHP_EOL; echo $project.' '.PHP_EOL;
chdir($vendorDir.DS.$project); chdir($vendorDir.DS.$project);
exec ('git rev-parse --short HEAD', $hashes);
if ($debug) { if ($debug) {
exec ('rake pmBuildDebug', $output, $exitCode ); exec ('rake pmBuildDebug', $output, $exitCode );
} else { } else {
@@ -80,6 +84,8 @@ foreach ($projects as $project) {
} }
} }
//get the hash for all vendor projects
$hashVendors = implode ('-', $hashes );
//the script is completed if the option is Debug = 1 //the script is completed if the option is Debug = 1
if ($debug) { if ($debug) {
@@ -152,14 +158,16 @@ $jsFiles = array (
"gulliver/js/codemirror/mode/clike/clike.js", "gulliver/js/codemirror/mode/clike/clike.js",
"gulliver/js/codemirror/mode/php/php.js", "gulliver/js/codemirror/mode/php/php.js",
); );
$bigHandler = fopen ("{$rootPath}/workflow/public_html/lib/js/big.js", "w");
$bigHandler = fopen ("{$rootPath}/workflow/public_html/lib/js/mafe-{$hashVendors}.js", "w");
foreach ($jsFiles as $jsFile) { foreach ($jsFiles as $jsFile) {
$fileContent = file_get_contents("{$rootPath}/$jsFile"); $fileContent = file_get_contents("{$rootPath}/$jsFile");
fprintf($bigHandler, "%s\n\n", $fileContent); fprintf($bigHandler, "%s\n\n", $fileContent);
printf (" - File %s added to big.js\n", basename($jsFile)); printf (" - File %s added to big.js\n", basename($jsFile));
} }
fclose ($bigHandler); fclose ($bigHandler);
printf ( "big.js file has %d bytes\n", filesize("{$rootPath}/workflow/public_html/lib/js/big.js")); printf ( "mafe-{$hashVendors}.js file has %d bytes\n", filesize("{$rootPath}/workflow/public_html/lib/js/mafe-{$hashVendors}.js"));
@@ -175,15 +183,16 @@ $cssFiles = array (
"gulliver/js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css", "gulliver/js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css",
"gulliver/js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css" "gulliver/js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css"
); );
$bigHandler = fopen ("{$rootPath}/workflow/public_html/lib/css/big.css", "w"); $bigHandler = fopen ("{$rootPath}/workflow/public_html/lib/css/mafe-{$hashVendors}.css", "w");
foreach ($cssFiles as $cssFile) { foreach ($cssFiles as $cssFile) {
$fileContent = file_get_contents("{$rootPath}/$cssFile"); $fileContent = file_get_contents("{$rootPath}/$cssFile");
fprintf($bigHandler, "%s\n\n", $fileContent); fprintf($bigHandler, "%s\n\n", $fileContent);
printf (" - File %s added to big.css\n", basename($cssFile)); printf (" - File %s added to big.css\n", basename($cssFile));
} }
fclose ($bigHandler); fclose ($bigHandler);
printf ( "big.css file has %d bytes\n", filesize("{$rootPath}/workflow/public_html/lib/css/big.css")); printf ( "mafe-{$hashVendors}.css file has %d bytes\n", filesize("{$rootPath}/workflow/public_html/lib/css/mafe-{$hashVendors}.css"));
file_put_contents("{$rootPath}/workflow/public_html/lib/buildhash", $hashVendors);
echo PHP_EOL; echo PHP_EOL;

View File

@@ -63,6 +63,13 @@ class Designer extends Controller
$this->setVar('designerCacheFile', file(PATH_HTML . "lib-dev/mafe/applications.cache", FILE_IGNORE_NEW_LINES)); $this->setVar('designerCacheFile', file(PATH_HTML . "lib-dev/mafe/applications.cache", FILE_IGNORE_NEW_LINES));
$this->setVar('mafeJsFiles', $mafeJsFiles); $this->setVar('mafeJsFiles', $mafeJsFiles);
$this->setVar('mafeCssFiles', $mafeCssFiles); $this->setVar('mafeCssFiles', $mafeCssFiles);
} else {
$buildhashFile = PATH_HTML . "lib/buildhash";
if (! file_exists($buildhashFile)) {
throw new RuntimeException("CSS and JS Files were are not generated!.\nPlease review install process");
}
$buildhash = file_get_contents($buildhashFile);
$this->setVar('buildhash', $buildhash);
} }
$this->setView('designer/index'); $this->setView('designer/index');

View File

@@ -56,45 +56,12 @@
{else} {else}
<link rel="stylesheet" type="text/css" href="/lib/css/big.css" /> <link rel="stylesheet" type="text/css" href="/lib/css/mafe-{$buildhash}.css" />
<!--
<link rel="stylesheet" type="text/css" href="/lib/pmUI/pmui.min.css" />
<link rel="stylesheet" type="text/css" href="/lib/mafe/mafe.min.css" />
<link rel="stylesheet" type="text/css" href="/lib/css/jquery.layout.css" />
<link rel="stylesheet" type="text/css" href="/lib/css/jquery-ui-1.10.3.custom.min.css" />
!-->
<!--<link rel="stylesheet" type="text/css" href="/lib/css/jquery.dataTables.css">-->
<script type="text/javascript"> <script type="text/javascript">
var prj_uid = "{$prj_uid}"; var prj_uid = "{$prj_uid}";
var credentials = "{$credentials}"; var credentials = "{$credentials}";
</script> </script>
<script type="text/javascript" src="/lib/js/big.js"></script> <script type="text/javascript" src="/lib/js/mafe-{$buildhash}.js"></script>
<!--
<script type="text/javascript" src="/lib/js/wz_jsgraphics.js"></script>
<script type="text/javascript" src="/lib/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="/lib/js/underscore-min.js"></script>
<script type="text/javascript" src="/lib/js/jquery-ui-1.10.3.custom.min.js"></script>
<script type="text/javascript" src="/lib/js/jquery.layout.min.js"></script>
<script type="text/javascript" src="/lib/js/restclient.min.js"></script>
<script type="text/javascript" src="/lib/pmUI/pmui.min.js"></script>
<script type="text/javascript" src="/lib/mafe/mafe.min.js"></script>
<script type="text/javascript" src="/lib/mafe/designer.min.js"></script>
<script type="text/javascript" src="/lib/js/tiny_mce.js"></script>
<script type="text/javascript" src="/js/codemirror/lib/codemirror.js"></script>
<script type="text/javascript" src="/js/codemirror/mode/javascript/javascript.js"></script>
<script type="text/javascript" src="/js/codemirror/addon/edit/matchbrackets.js"></script>
<script type="text/javascript" src="/js/codemirror/mode/htmlmixed/htmlmixed.js"></script>
<script type="text/javascript" src="/js/codemirror/mode/xml/xml.js"></script>
<script type="text/javascript" src="/js/codemirror/mode/css/css.js"></script>
<script type="text/javascript" src="/js/codemirror/mode/clike/clike.js"></script>
<script type="text/javascript" src="/js/codemirror/mode/php/php.js"></script>
<link rel="stylesheet" type="text/css" href="/js/codemirror/lib/codemirror.css"/>
!-->
{/if} {/if}