diff --git a/exec/install-xtrn.js b/exec/install-xtrn.js index 6080c336d2ec87f546fae80c629db6fc2847ff9c..724fb68adbfeb2dc4eb6fba8024adc41d9153d24 100644 --- a/exec/install-xtrn.js +++ b/exec/install-xtrn.js @@ -436,16 +436,43 @@ for (var i = 0; i < argc; i++) { ini_list.push(argv[i]); } +function find_startup_dir(dir) +{ + for (var i=0; i < xtrn_area.prog.length; i++) { + if (xtrn_area.prog[i].startup_dir.toLowerCase() == dir.toLowerCase()) + return i; + } + return -1; +} + var xtrn_dirs = fullpath(system.ctrl_dir + "../xtrn/*"); if(!ini_list.length) { var dir_list = directory(xtrn_dirs); for(var d in dir_list) { + if(!options.overwrite && find_startup_dir(dir_list[d])) + continue; var fname = file_getcase(dir_list[d] + ini_fname); if(fname) ini_list.push(fname); } } +if(!options.auto && ini_list.length > 1) { + for(var i = 0; i < ini_list.length; i++) { + printf("%3d: %s\r\n", i+1, ini_list[i].substr(0, ini_list[i].length - ini_fname.length)); + } + var which; + while(!which || which < 1 || which > ini_list.length) { + var str = prompt("Which or [Q]uit"); + if(aborted()) + exit(0); + if(str && str.toUpperCase() == 'Q') + exit(0); + which = parseInt(str, 10); + } + ini_list = [ini_list[which - 1]]; +} + if(!ini_list.length) { if(options.auto) { alert("No install files (" + ini_fname + ") found in " + xtrn_dirs); @@ -454,6 +481,8 @@ if(!ini_list.length) { var ini_path; while (!ini_path || !file_exists(ini_path)) { ini_path = prompt("Location of " + ini_fname); + if(aborted()) + exit(0); if (file_isdir(ini_path)) ini_path = backslash(ini_path) + ini_fname; }