Skip to content

Latest commit

 

History

History
257 lines (189 loc) · 13.2 KB

TDS-CLi.md

File metadata and controls

257 lines (189 loc) · 13.2 KB

TDS-CLI (LS)

O TDSCLI-LS (Command Line Interface Language Server) é 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, 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.

Para uso em modo legado (compátivel com TDScli-Eclipse), use também os arquivos de comandos em lote.

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

Mais informações sobre a extensão TDS-VSCode.

Utilizando o AdvpLS

Modos de execução

> 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 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.

Opções não documentadas ou com propósito de depuração, devem ter seu uso usados com cautela.

Opções 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).

Pode ser utilizado em editores e IDE que suportam o protocolo.

> 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.
--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.
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 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, por exemplo:

  • Conexão ao AppServer (action=authentication);
  • Compilação de um conjunto de fontes (compile);
  • Defrag do RPO (defragRPO)
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 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.

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.

>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.
-I, -i <folder> Pasta para busca de arquivos de definição.
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.
Pode ser informada uma ou mais vezes.

Modo tds_cli

Executa TDScli-LS em modo de compatibilidade (legado) com o TDScli-Eclipse.

>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.
--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.

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

;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