luangustavofm / core-cli

MIT License
0 stars 0 forks source link

Criar flag --help #4

Open AndersonAlvesCoelho opened 1 week ago

AndersonAlvesCoelho commented 1 week ago

A flag -help (ou -h) é uma funcionalidade comum em ferramentas de linha de comando que exibe uma explicação detalhada sobre os comandos, opções e como usar a ferramenta. No caso do core-cli, isso pode incluir informações sobre as opções de plataforma, template, diretório e nome, além de exemplos de uso.

Essa funcionalidade ajuda os usuários a entenderem rapidamente como utilizar o CLI sem precisar consultar a documentação externa.

AndersonAlvesCoelho commented 1 week ago

O código possui uma mensagem para avisar quando argumentos estão faltando, sugerindo o uso da flag -help para obter suporte:

async function promptForMissingOptions(options) {
  if (!options) {
    console.log("Argumentos ausentes, digite -help para suporte");
  }
  return options;
}

No entanto, ao tentar utilizar a flag -help, o seguinte erro é exibido:

bash core-cli -help

C:\Users\a-a-c\AppData\Roaming\npm\node_modules\core-cli\node_modules\arg\index.js:88
                                                const err = new Error(`Unknown or unexpected option: ${originalArgName}`);
                                                            ^

Error: Unknown or unexpected option: -h
    at arg (C:\Users\a-a-c\AppData\Roaming\npm\node_modules\core-cli\node_modules\arg\index.js:88:19)
    at parseArgumentsIntoOptions (C:\Users\a-a-c\AppData\Roaming\npm\node_modules\core-cli\src\cli.js:6:16)
    at Proxy.cli (C:\Users\a-a-c\AppData\Roaming\npm\node_modules\core-cli\src\cli.js:92:17)
    at Object.<anonymous> (C:\Users\a-a-c\AppData\Roaming\npm\node_modules\core-cli\bin\core-cli:4:26)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
    at node:internal/main/run_main_module:28:49 {
  code: 'ARG_UNKNOWN_OPTION'
}

Isso indica que, embora a mensagem sugira o uso de -help, essa opção não está implementada ou reconhecida corretamente pelo sistema.

AndersonAlvesCoelho commented 1 week ago

Uma possível solução seria adicionar o suporte à flag -help no código para fornecer instruções ao usuário sobre as opções disponíveis.

Exemplo de implementação:

No código do core-cli, podemos criar uma função que checa se a flag -h ou --help foi passada e, em caso positivo, exibe as instruções de uso.

codigo by: GPTO Não foi testado!

import chalk from 'chalk';

function showHelp() {
  console.log(`
  ${chalk.bold('core-cli - Ferramenta de Linha de Comando')}

  ${chalk.green('Uso:')}
    core-cli [opções]

  ${chalk.green('Opções:')}
    --platform, -p   Especifica a plataforma (backend, frontend).
    --create, -c     Especifica o tipo de template a ser criado.
    --directory, -d  Define o diretório alvo para o template.
    --name, -n       Define o nome do template.

  ${chalk.green('Exemplos:')}
    core -p backend -c crud -n myProject
    core -p frontend -c page -d src/pages -n homePage

  ${chalk.green('Ajuda:')}
    --help, -h       Exibe esta mensagem de ajuda.
  `);
  process.exit(0);
}

function parseArguments(args) {
  if (args.includes('--help') || args.includes('-h')) {
    showHelp();
  }

}