var x_auto_drive = '-'; var _in_cleanup = 'pre'; var _in_makeiso = 'pre'; var _in_building = 'done'; var _stdout_len = 0; var _log_path = ''; function build_page_init() { $('#build_stdout').empty(); if (selected_project != null) { var msg = i18n_t('Do you want to build the [%s] project?'); msg = msg.replace('%s', selected_project); var opts = patches_opt_stringify(); msg += '

' + opts; $('#build_stdout').append(msg); save_current_preset(true); } else { $('#build_stdout').append(i18n_t('No project to build.')); } $("input[name='wb_x_drive'][type='radio'][value='" + $wb_x_drv + "']").prop("checked", true); x_drive_detect(); $("#wb_auto_makeiso").prop("checked", $wb_auto_makeiso); $("#wb_auto_testiso").prop("checked", $wb_auto_testiso); $("#wb_test_cmd").val($wb_test_cmd); var env = wsh.Environment("PROCESS"); _log_path = env('Factory') + '\\log\\' + selected_project; } $("input[name='wb_x_drive'][type='radio']").click(function() { $wb_x_drv = $(this).val(); x_drive_detect(); }); $("#wb_auto_makeiso").click(function() { $wb_auto_makeiso = $(this).prop("checked"); }); $("#wb_auto_testiso").click(function() { $wb_auto_testiso = $(this).prop("checked"); }); $("#wb_test_cmd").change(function() { $wb_test_cmd = $(this).val(); }); function check_iso_template() { var iso_path = eformat('%ISO_PATH%'); if (!fso.FolderExists(iso_path)) { fso.CreateFolder(iso_path); } if ($iso_boot_file != '') { if (!fso.FileExists(iso_path + '\\' + $iso_boot_file)) { var boot_folder = $wb_src_folder; if (boot_folder.substr(-1, 1) != '\\') { boot_folder += '\\'; } boot_folder += 'boot'; if (!fso.FolderExists(boot_folder)) { alert(i18n_t('The _ISO_ folder is not available, you can\'t create bootable ISO image.\r\nPlease make your ISO template manually, or select the Windows ISO folder/drive for auto creating.')); } } } } function x_drive_detect() { if ($wb_x_drv != 'auto') { $('#x_auto_drive').text(''); return; } x_auto_drive = '--'; var drv_list = ['X', 'A', 'B', 'Z', 'Y', 'W', 'V', 'U', 'T', 'S' , 'R', 'Q', 'P', 'O', 'N', 'M', 'L']; // fair enough for (var i=0;i"' + logfile + '" 2>&1'); //var oExec = wsh.exec('cmd /c _process.bat 1>"' + logfile + '" 2>&1'); window.setTimeout(function(){wsh.AppActivate('Wim Builder');}, 500); update_output_by_log(oExec); } function make_iso(keep, mode) { check_iso_template(); _in_makeiso = 'pre'; if (selected_project == null) { alert(i18n_t('Please select a project for building.')); return; } if (!keep) { $('#build_stdout').empty(); dump_patches_opt(); } else { $('#build_stdout').append('
Creating ISO...
'); } if (typeof(mode) == 'undefined') structure_env(0); _in_makeiso = 'doing'; if (mode == 'exec') { structure_env(1); var oExec = wsh.exec('_MakeBootISO.bat'); window.setTimeout(function(){wsh.AppActivate('Wim Builder');}, 500); update_output(oExec); } else { wsh.run('cmd /d /c _MakeBootISO.bat', 1, true); _in_makeiso = 'done' } if (!keep) return // UI button clicked if ($wb_auto_testiso) { wait_and_test(); } if ($wb_opt_closeui) { wait_and_close(); } } function test_iso() { var cmd = $('#wb_test_cmd').val(); if (cmd == '') return; var name = cmd.split(' ')[0]; var param = cmd.substr(name.length + 1); name = $app_root + '\\test\\' + name; if (fso.FileExists(name)) { wsh.run('"' + name + '" ' + param, 1, false); } else { alert(i18n_t('The system cannot find the file specified.') + '\r\n' + name); } } function wait_and_test() { if (_in_makeiso == 'pre') return; if (_in_makeiso != 'done') { //waiting window.setTimeout(function(){wait_and_test();}, 500); return; } test_iso(); } function wait_and_close() { var wait_cond = true; if ($wb_opt_makeiso == true) { wait_cond = (_in_makeiso != 'done'); } else { wait_cond = (_in_building != 'done'); } if (wait_cond) { //waiting window.setTimeout(function(){wait_and_close();}, 2000); return; } window.close(); } function sleep(n) { var start = new Date().getTime(); while (true) if (new Date().getTime() - start > n) break; } function update_output(oExec) { stdout = oExec.StdOut.ReadLine(); var build_stdout = $('#build_stdout'); if (stdout.length > 0) { build_stdout.append(stdout + '
'); } if (!oExec.StdOut.AtEndOfStream) { stdout = oExec.StdOut.ReadLine(); if (stdout.length > 0) { build_stdout.append(stdout + '
'); } } if (oExec.status != 0) { if (!oExec.StdOut.AtEndOfStream) { stdout = oExec.StdOut.ReadAll(); if (stdout.length > 0) { stdout = stdout.replace(/([\r\n]+)/g, '\r\n
'); build_stdout.append(stdout + '
'); } } if (_in_cleanup == 'doing') _in_cleanup = 'done'; if (_in_makeiso == 'doing') _in_makeiso = 'done'; build_stdout.scrollTop(build_stdout[0].scrollHeight); return; } build_stdout.scrollTop(build_stdout[0].scrollHeight); window.setTimeout(function(){update_output(oExec);}, 100); } function update_output_by_log(oExec, finished) { var build_stdout = $('#build_stdout'); var logfile = _log_path + '\\last_wimbuilder.log'; var text = load_text_file(logfile); text = text.replace(/([\r\n]+)/g, '
'); build_stdout.html(text); build_stdout.scrollTop(build_stdout[0].scrollHeight); if (oExec.status != 0) { if (finished == 1) { _in_building = 'done'; if ($wb_auto_makeiso) { window.setTimeout(function(){make_iso(true, 'exec');}, 1000); } else if ($wb_opt_closeui) { wait_and_close(); // close directly } } else { window.setTimeout(function(){update_output_by_log(oExec, 1);}, 100); } return; } window.setTimeout(function(){update_output_by_log(oExec);}, 100); }