/**
* Extracts CLI arguments and configures the application.
* @param {string[]} args - Array of command-line arguments.
*/
function loadConfigFromArgs(args) {
// Default configuration values
const config = {
logLevel: 'info',
dataFilePath: 'default_data.txt',
threshold: 0.5,
verbose: false
};
// Parse command-line arguments
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (arg === '-l' || arg === '--log-level') {
if (i + 1 < args.length) {
config.logLevel = args[i + 1].toLowerCase();
i++; // Skip the value
} else {
console.error('Error: -l/--log-level requires a value.');
return; // Exit if missing value
}
} else if (arg === '-d' || arg === '--data-file') {
if (i + 1 < args.length) {
config.dataFilePath = args[i + 1];
i++; // Skip the value
} else {
console.error('Error: -d/--data-file requires a value.');
return; // Exit if missing value
}
} else if (arg === '-t' || arg === '--threshold') {
if (i + 1 < args.length) {
config.threshold = parseFloat(args[i + 1]);
i++; // Skip the value
} else {
console.error('Error: -t/--threshold requires a value.');
return;
}
} else if (arg === '-v' || arg === '--verbose') {
config.verbose = true;
} else {
console.warn(`Unknown argument: ${arg}`);
}
}
// Log the configuration
console.log('Loaded configuration:', config);
return config;
}
// Example usage (assuming 'process.argv' is available)
// const args = process.argv.slice(2); // Remove Node.js executable path and script path
// const config = loadConfigFromArgs(args);
Add your comment