diff --git a/src/commands/docs.js b/src/commands/docs.js new file mode 100644 index 0000000..cad8534 --- /dev/null +++ b/src/commands/docs.js @@ -0,0 +1,50 @@ +'use strict'; + +var path = require('path'); +var fs = require('fs'); +var { exec } = require('child_process'); +var { getPlatformDir } = require('../utils/platform'); + +function register(program) { + program + .command('docs') + .description('Abre a documentação Java do Vitruvio no navegador padrão') + .action(function () { + var platformDir; + try { + platformDir = getPlatformDir(); + } catch (e) { + console.error('Erro: ' + e.message); + process.exit(1); + } + + var docsPath = path.join(platformDir, 'docs', 'java', 'index.html'); + + if (!fs.existsSync(docsPath)) { + console.error('Erro: documentação não encontrada em:'); + console.error(' ' + docsPath); + console.error(''); + console.error('Execute "vitruvio update-base" para baixar os arquivos de plataforma.'); + process.exit(1); + } + + var cmd; + if (process.platform === 'win32') { + cmd = 'start "" "' + docsPath + '"'; + } else { + cmd = 'xdg-open "' + docsPath + '"'; + } + + exec(cmd, function (err) { + if (err) { + console.error('Erro ao abrir o navegador: ' + err.message); + console.error('Abra manualmente: ' + docsPath); + process.exit(1); + } + }); + + console.log('Abrindo documentação...'); + }); +} + +module.exports = { register: register };