whole_func_string: async function() {
        let apps = [];
        let argv = this.argv;
        let result = {
          target: argv.target,
          outputPath: argv.outputPath||null,
          locales: null,
          writeAllTranslations: argv.writeAllTranslations,
          environment: {},
          applications: apps,
          libraries: argv.library||[],
          config: argv.configFile||"compile.json",
          continuous: argv.continuous,
          verbose: argv.verbose
        };
        if (argv.set) {
          argv.set.forEach(function(kv) {
            var m = kv.match(/^([^=\s]+)(=(.+))?$/);
            if (m) {
              var key = m[1];
              var value = m[3];
              try {
                result.environment[key] = Function("\"use strict\";return (" + value + ")")();
              } catch (error) {
                throw new Error("Failed to translate environment value '"+value+"' to a js datatype - "+error);
              }
            } else {
              throw new Error("Failed to parse environment setting commandline option '"+kv+"'");
            }
          });
        }
  
        if (argv.locale && argv.locale.length) {
          result.locales = argv.locale;
        }
        return result;
      }
func_code_string: async function() {
        let apps = [];
        let argv = this.argv;
        let result = {
          target: argv.target,
          outputPath: argv.outputPath||null,
          locales: null,
          writeAllTranslations: argv.writeAllTranslations,
          environment: {},
          applications: apps,
          libraries: argv.library||[],
          config: argv.configFile||"compile.json",
          continuous: argv.continuous,
          verbose: argv.verbose
        };
        if (argv.set) {
          argv.set.forEach(function(kv) {
            var m = kv.match(/^([^=\s]+)(=(.+))?$/);
            if (m) {
              var key = m[1];
              var value = m[3];
              try {
                result.environment[key] = Function("\"use strict\";return (" + value + ")")();
              } catch (error) {
                throw new Error("Failed to translate environment value '"+value+"' to a js datatype - "+error);
              }
            } else {
              throw new Error("Failed to parse environment setting commandline option '"+kv+"'");
            }
          });
        }
  
        if (argv.locale && argv.locale.length) {
          result.locales = argv.locale;
        }
        return result;
      }
func_documentation_string: Parses the command line, and produces a normalised configuration;
  
  @return {Object}