UNPKG

@totvs/tds-ls

Version:
258 lines (189 loc) 13.5 kB
# TDS-CLI (LS) O _**TDSCLI-LS**_ (_**C**ommand **L**ine **I**nterface_ **L**anguage **S**erver) é uma ferramenta do ecossistema **TOTVS Protheus** que permite ações como a compilação e aplicação de patchs via linha de comando. ## Obtendo a ferramenta ### A partir do GitHub Acesse a página de [Liberações](https://github.com/totvs/tds-ls/releases), localize a versão desejada e salva o pacote do executável adequado ao seu sistema operacional. > Não há processo de instalação. Os binários são portáteis.</br> > </br> > Para uso em modo legado (compátivel com **TDScli-Eclipse**), use também os arquivos de [comandos em lote](./legado). ### NodeJS Uso geral: `npm -G install @totvs/tds-ls` Associado a um projeto específico: `npm install @totvs/tds-ls [--save-dev]` Via extensão TDS-VSCode O **AdvpLS**, também está disponível no diretório da extensão do **TDS-VSCode** para os três sistemas operacionais homologados, conforme exemplo abaixo. ![Advpl-dir](./images/advpls_dirs.png) > Mais informações sobre a extensão [TDS-VSCode](https://marketplace.visualstudio.com/items?itemName=totvs.tds-vscode). ## Utilizando o AdvpLS ### Modos de execução ```log > advpls Usage: advpls.exe [options] mode Performs the LS actions via command line interface (CLI). Options: -?, -h, --help Displays help on commandline options. --help-all Displays help including Qt specific options. -v, --version Displays version information. --wait-for-attach <seconds> Wait <seconds> to start execution. Debug purpose only. --verbose <level> Verbose execution. --log-all-to-stderr Forward all messages (Except INFO messages) to stderr (error console standard). --log-file <filename> Log file. --log-file-append <filename> Log append file. --record Enable record communication details. --wait-for-input Wait for an '[Enter]' before exiting. Debug purpose only. Arguments: mode Execution mode (language-server|cli|appre|tds-cli). ``` | Argumentos | Uso | | - | - | | `mode` | Indica como o `advpls` será utilizado. | | | `language-server`, como servidor em segundo plano, usando protocolo LS e comunicação via `stdin` e `stdout`. | | | `cli`, executa arquivos de [_script_](TDS-cli-script.md) que contém uma sequência de ações. | | | `appre`, executa processo de pré-compilação, sem depender de um servidor Protheus (ações limitadas). | | | `tds-cli`, executa em modo de compatibilidade com o **TDScli-Eclipse**. | > Estas opções são válidas para todos os modos de execução.</br> > </br> > Opções não documentadas ou com propósito de depuração, devem ter seu uso usados com cautela. | <a name="generalOptions">Opções</a> | Uso geral (todos os modos) | | - | - | | -?, -h, --help | Apresenta descritivo das opções. | | -v, --version | Apresenta a versão. | | --verbose \<level> | Nível de informação a ser apresentada durante execução. | | --log-all-to-stderr | Envia todas as mensagens para a saída padrão de erro (console). | | --log-file \<filename> | Arquivo de registro de ocorrências. | | --log-file-append | Indica que informações de nova execução devem ser anexadas as já existentes. | | --record | Habilita o detalhamento da comunicação. | ## Modo _language-server_ A execução, normalmente, ocorre em segundo plano (_backgroud_), utilizando o console padrão (_stdin_ e _stdout_) para comunicação usando o [protocolo de servidor de linguagem (LSP do inglês)](https://microsoft.github.io/language-server-protocol/). Pode ser utilizado em editores e _IDE_ que suportam o protocolo. ```log > advpls.exe language-server --help Usage: advpls.exe [options] language-server Performs the LS actions via command line interface (CLI). Options: --auth-request, --authRequest Auth request arguments. Debug purpose only. --check-sm Check SM. Debug purpose only. --enable-auto-complete <enable> EnableAutoComplete option. --notification-level <level> Notification level. --fs-encoding <code-page> File System encoding page. --includes <includeList> Include folder list. --linter <linter> Enable linter. Arguments: language-server Language Server(background) execution mode. ``` | Argumentos | Uso | | - | - | | `language-server` | Como servidor em segundo plano, usando protocolo LS e comunicação via `stdin` e `stdout`. | | Opção | Uso | | - | - | | \<options> | Opções de [uso geral](#generalOptions). | | --enable-auto-complete | Habilita o modo do auto-complementar pelo servidor. | | --notification-level \<level> | Nível das notificações a serem enviadas ao editor/IDE. | | | `none`, nenhuma notificação; | | | `only errors`, somente erros; | | | `errors and warnings`, erros e avisos; | | | `errors warnings and infos`, erros, avisos e informações; | | | `all`, informações detalhadas incluindo de depuração; | | --fs-encoding \<code-page> | Código de página utilizado pelo sistema de arquivos.<br>`CP1252`, `CP1251` ou `UTF-8` | | --includes \<includeList> | Lista de pastas para busca de arquivos de definição, separadas por ponto-e-vírgula (`;`). | | --linter | Habilita [pré análise]([https://github.com/totvs/tds-vscode/blob/master/docs/linter.md) de arquivos-fontes. | ## Modo _cli_ A execução nesse modo permite executar múltiplas ações em uma única chamada através da execução de um [_scriptFile_](TDS-cli-script.md), por exemplo: - Conexão ao _AppServer_ (action=**authentication**); - Compilação de um conjunto de fontes (**compile**); - Defrag do RPO (**defragRPO**) ```log W:\ws_tds_vscode\tds-ls\bin\windows>advpls.exe cli --help Usage: advpls.exe [options] cli <scriptFile> Performs the LS actions via command line interface (CLI). Options: Arguments: cli Script execution mode. scriptFile Script file. ``` | Argumentos | Uso | | - | - | | `cli` | Executa arquivos de [_script_](TDS-cli-script.md) que contém uma sequência de ações. | | `scriptFile` | Caminho onde está o arquivo de execução a ser invocado. | | Opção | Uso | | - | - | | \<options> | Opções de [uso geral](#generalOptions). | ## Modo _appre_ A execução nesse modo permite efetuar um pré-processamento nos arquivos-fontes, compilando-o e gerando o arquivo intermediário `.ppo` ou equivalente. Esse modo não depende de conexão prévia a um _appServer_. ```log >advpls.exe appre --help Usage: advpls.exe [options] appre source[,..] Performs the LS actions via command line interface (CLI). Options: -I, -i <folder> Include folder. -D, -d <define> Direcitve define, eg. /DTOP Arguments: appre Appre execution mode. source Source (file or folder or @<sourceList.txt>). ``` | Argumentos | Uso | | ---------- | ------------------------------------------------------------------------------------------- | | `appre` | Executa processo de pré-compilação, sem depender de um servidor Protheus (ações limitadas). | | `source` | Lista de arquivos (ou pastas), separadas por vírgula (``,``). | | Opções | Uso | | ---------------- | ----------------------------------------------------------------------------------- | | \<options> | Opções de [uso geral](#generalOptions). | | -I, -i \<folder> | Pasta para busca de arquivos de definição.<br>Pode ser informada uma ou mais vezes. | | -D, -d \<define> | Define uma constante (similar a diretiva ``#define``) para determinar comportamentos e/ou isolamento de código, p.e. ``/DTOP``.<br>Pode ser informada uma ou mais vezes. | ## Modo _tds_cli_ Executa TDScli-LS em modo de compatibilidade (legado) com o **TDScli-Eclipse**. ```log >advpls.exe tds-cli --help Usage: advpls.exe [options] tds-cli Performs the LS actions via command line interface (CLI). Options: --tds-cli-arguments, --tdsCliArguments TDS CLI arguments (legacy mode). Arguments: tds-cli TDS-CLI execution mode. ``` | Argumentos | Uso | | ---------- | ------------------------------------------------------------ | | `tds-cli` | Executa em modo de compatibilidade com o **TDScli-Eclipse**. | | Opções | Uso | | - | - | | \<options> | Opções de [uso geral](#generalOptions). | | --tds-cli-arguments | Argumentos compátiveis com o **TDScli-Eclipse** | ## Compatibilidade com **TDScli-Eclipse** Para utilizar o modo de compatibilidade com **TDScli-Eclipse** usamos arquivos de _script_ (batch/bash), específicos para cada sistema operacional, e apenas uma **ação pode ser chamada por execução**: > Os _script_ estão disponíveis no repositório [GitHub](./legado). | Sistema Operacional | Sintaxe | | - | - | | Windows | `> TDScli.bat <action> <parâmetros_da_ação>` | | Linux | `> ./TDScli.sh <action> <parâmetros_da_ação>` | | Mac OS | `> ./TDScli.sh <action> <parâmetros_da_ação>` | ## Usando parâmetros em linha de comando `> TDScli.bat <action> <parametro_da_acao_1> <parametro_da_acao_2> <parametro_da_acao_3>...` ## Usando parâmetros em arquivo `> TDScli.bat <action> @parametros_da_acao.txt` > Os parâmetros obrigatórios **dependem da action**, porém em todas as actions os parâmetros de conexão da **action authentication** devem ser informados. ## Exemplo usando **parâmetros em linha de comando** `> TDScli.bat compile serverType=AdvPL server=localhost port=1234 build=7.00.170117A environment=env user=user psw=pass includes=D:/servers/protheus/includes program=D:/fontes/advpl/prg_0001.prw;D:/fontes/advpl/prg_0002.prw;D:/fontes/advpl/prg_0003.prw authorization=D:/chave_compilacao/chave.aut recompile=t` ## Exemplo usando **parâmetros em arquivo** `> TDScli.bat compile @compile.txt` ```ini ;compile.txt ;Exemplo de arquivo de execução para o TDScli (legado) ;parametros da acao authentication serverType=AdvPL server=localhost port=1234 build=7.00.170117A user=user psw=pass environment=env ;parametros da acao compile includes=D:/servers/protheus/includes program=D:/fontes/advpl/prg_0001.prw;D:/fontes/advpl/prg_0002.prw;D:/fontes/advpl/prg_0003.prw authorization=D:/chave_compilacao/chave.aut recompile=t ```