|
@@ -102,84 +102,87 @@ function handle_options(optionsArray) {
|
|
|
|
|
|
// print available flags
|
|
// print available flags
|
|
function print_usage() {
|
|
function print_usage() {
|
|
- console.log('Usage: amberc [-l lib1,lib2...] [-g jsGlobal1,jsGlobla2] [-m main_class] [-M main_file]');
|
|
|
|
- console.log(' [-n namespace] [-D output_dir] [-v] [-s suffix] [-S suffix] [file1 [file2 ...]] [Program]');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' amberc compiles Amber files - either separately or into a complete runnable');
|
|
|
|
- console.log(' program. If no .st files are listed only a linking stage is performed.');
|
|
|
|
- console.log(' Files listed will be handled using the following rules:');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' *.js');
|
|
|
|
- console.log(' Files are linked (concatenated) in listed order.');
|
|
|
|
- console.log(' If not found we look in $AMBER/js/');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' *.st');
|
|
|
|
- console.log(' Files are compiled into .js files before concatenation.');
|
|
|
|
- console.log(' If not found we look in $AMBER/st/.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' NOTE: Each .st file is currently considered to be a fileout of a single class');
|
|
|
|
- console.log(' category of the same name as the file!');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' If no <Program> is specified each given .st file will be compiled into');
|
|
|
|
- console.log(' a matching .js file. Otherwise a <Program>.js file is linked together based on');
|
|
|
|
- console.log(' the given options:');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -l library1,library2');
|
|
|
|
- console.log(' Add listed JavaScript libraries in listed order.');
|
|
|
|
- console.log(' Libraries are not separated by spaces or end with .js.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -L directory1,directory2');
|
|
|
|
- console.log(' Add listed directories to the library search path.');
|
|
|
|
- console.log(' The order of processing is:');
|
|
|
|
- console.log(' 1. current directory');
|
|
|
|
- console.log(' 2. directories specified by -L');
|
|
|
|
- console.log(' 3. $AMBER');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -g jsGlobal1,jsGlobal2');
|
|
|
|
- console.log(' Comma separated list of JS global variable names.');
|
|
|
|
- console.log(' The names are added to a list containing "window", "document" and others.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -m main_class');
|
|
|
|
- console.log(' Add a call to the class method main_class>>main at the end of <Program>.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -M main_file');
|
|
|
|
- console.log(' Add <main_file> at the end of <Program.js> acting as #main.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -n amd_namespace');
|
|
|
|
- console.log(' Export packages with <amd_namespace> as the require.js namespace.');
|
|
|
|
- console.log(' Default value is "amber_core".');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -v');
|
|
|
|
- console.log(' Produce a more verbose output.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -D');
|
|
|
|
- console.log(' Specifies the output directory for all generated .js files.');
|
|
|
|
- console.log(' The hierarchy of the input files is not maintaned.');
|
|
|
|
- console.log(' If this option is omitted all generated .js files are placed next to their input files');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -s suffix');
|
|
|
|
- console.log(' Add <suffix> to compiled .js files. File.st is then compiled into');
|
|
|
|
- console.log(' File.<suffix>.js.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' -S suffix');
|
|
|
|
- console.log(' Use <suffix> for all libraries accessed using -l. This makes it possible');
|
|
|
|
- console.log(' to have multiple flavors of Amber and libraries in the same place.');
|
|
|
|
- console.log('');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' Example invocations:');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' Just compile Kernel-Objects.st to Kernel-Objects.js:');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' amberc Kernel-Objects.st');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' Compile Hello.st to Hello.js and create complete program called Program.js.');
|
|
|
|
- console.log(' Additionally add a call to the class method Hello>>main:');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' amberc -m Hello Hello.st Program');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' Compile Cat1.st and Cat2.st files into corresponding .js files.');
|
|
|
|
- console.log(' Link them with myboot.js and myKernel.js');
|
|
|
|
- console.log(' and merge everything into a complete program named Program.js:');
|
|
|
|
- console.log('');
|
|
|
|
- console.log(' amberc -M main.js myboot.js myKernel.js Cat1.st Cat2.st Program');
|
|
|
|
|
|
+ var usage = [
|
|
|
|
+ 'Usage: amberc [-l lib1,lib2...] [-g jsGlobal1,jsGlobla2] [-m main_class] [-M main_file]',
|
|
|
|
+ ' [-n namespace] [-D output_dir] [-v] [-s suffix] [-S suffix] [file1 [file2 ...]] [Program]',
|
|
|
|
+ '',
|
|
|
|
+ ' amberc compiles Amber files - either separately or into a complete runnable',
|
|
|
|
+ ' program. If no .st files are listed only a linking stage is performed.',
|
|
|
|
+ ' Files listed will be handled using the following rules:',
|
|
|
|
+ '',
|
|
|
|
+ ' *.js',
|
|
|
|
+ ' Files are linked (concatenated) in listed order.',
|
|
|
|
+ ' If not found we look in $AMBER/js/',
|
|
|
|
+ '',
|
|
|
|
+ ' *.st',
|
|
|
|
+ ' Files are compiled into .js files before concatenation.',
|
|
|
|
+ ' If not found we look in $AMBER/st/.',
|
|
|
|
+ '',
|
|
|
|
+ ' NOTE: Each .st file is currently considered to be a fileout of a single class',
|
|
|
|
+ ' category of the same name as the file!',
|
|
|
|
+ '',
|
|
|
|
+ ' If no <Program> is specified each given .st file will be compiled into',
|
|
|
|
+ ' a matching .js file. Otherwise a <Program>.js file is linked together based on',
|
|
|
|
+ ' the given options:',
|
|
|
|
+ '',
|
|
|
|
+ ' -l library1,library2',
|
|
|
|
+ ' Add listed JavaScript libraries in listed order.',
|
|
|
|
+ ' Libraries are not separated by spaces or end with .js.',
|
|
|
|
+ '',
|
|
|
|
+ ' -L directory1,directory2',
|
|
|
|
+ ' Add listed directories to the library search path.',
|
|
|
|
+ ' The order of processing is:',
|
|
|
|
+ ' 1. current directory',
|
|
|
|
+ ' 2. directories specified by -L',
|
|
|
|
+ ' 3. $AMBER',
|
|
|
|
+ '',
|
|
|
|
+ ' -g jsGlobal1,jsGlobal2',
|
|
|
|
+ ' Comma separated list of JS global variable names.',
|
|
|
|
+ ' The names are added to a list containing "window", "document" and others.',
|
|
|
|
+ '',
|
|
|
|
+ ' -m main_class',
|
|
|
|
+ ' Add a call to the class method main_class>>main at the end of <Program>.',
|
|
|
|
+ '',
|
|
|
|
+ ' -M main_file',
|
|
|
|
+ ' Add <main_file> at the end of <Program.js> acting as #main.',
|
|
|
|
+ '',
|
|
|
|
+ ' -n amd_namespace',
|
|
|
|
+ ' Export packages with <amd_namespace> as the require.js namespace.',
|
|
|
|
+ ' Default value is "amber_core".',
|
|
|
|
+ '',
|
|
|
|
+ ' -v',
|
|
|
|
+ ' Produce a more verbose output.',
|
|
|
|
+ '',
|
|
|
|
+ ' -D',
|
|
|
|
+ ' Specifies the output directory for all generated .js files.',
|
|
|
|
+ ' The hierarchy of the input files is not maintaned.',
|
|
|
|
+ ' If this option is omitted all generated .js files are placed next to their input files',
|
|
|
|
+ '',
|
|
|
|
+ ' -s suffix',
|
|
|
|
+ ' Add <suffix> to compiled .js files. File.st is then compiled into',
|
|
|
|
+ ' File.<suffix>.js.',
|
|
|
|
+ '',
|
|
|
|
+ ' -S suffix',
|
|
|
|
+ ' Use <suffix> for all libraries accessed using -l. This makes it possible',
|
|
|
|
+ ' to have multiple flavors of Amber and libraries in the same place.',
|
|
|
|
+ '',
|
|
|
|
+ '',
|
|
|
|
+ ' Example invocations:',
|
|
|
|
+ '',
|
|
|
|
+ ' Just compile Kernel-Objects.st to Kernel-Objects.js:',
|
|
|
|
+ '',
|
|
|
|
+ ' amberc Kernel-Objects.st',
|
|
|
|
+ '',
|
|
|
|
+ ' Compile Hello.st to Hello.js and create complete program called Program.js.',
|
|
|
|
+ ' Additionally add a call to the class method Hello>>main:',
|
|
|
|
+ '',
|
|
|
|
+ ' amberc -m Hello Hello.st Program',
|
|
|
|
+ '',
|
|
|
|
+ ' Compile Cat1.st and Cat2.st files into corresponding .js files.',
|
|
|
|
+ ' Link them with myboot.js and myKernel.js',
|
|
|
|
+ ' and merge everything into a complete program named Program.js:',
|
|
|
|
+ '',
|
|
|
|
+ ' amberc -M main.js myboot.js myKernel.js Cat1.st Cat2.st Program',
|
|
|
|
+ ];
|
|
|
|
+ usage.forEach(function (line) { console.log(line); });
|
|
};
|
|
};
|