Skip to content

Latest commit

 

History

History
221 lines (155 loc) · 8 KB

README.pt-br.md

File metadata and controls

221 lines (155 loc) · 8 KB

windows-custom-commands

O projeto Windows Custom Commands tem por objetivo disponibilizar novos comandos para serem executados no PowerShell do Windows.

1. Como criar novos comandos no Windows

Antes de tudo, é importante explicar como criar novos comandos no windows. Para fazer isso você precisará adicionar algumas coisas no seu arquivo $PROFILE

1.1 Acessando o Profile

Para acessar o $PROFILE basta abrir o seu PowerShell e rodar o seguinte comando:

notepad $PROFILE

DICA: caso prefira, abra o $PROFILE em outro app como o VSCode ou o Sublime.

1.2 Adicionando comandos

Este arquivo carrega sempre que você abre o terminal no windows, então tudo o que você coloca nele torna-se o "padrão do terminal".

Assim, existem 2 formas (que eu conheço) para criarmos novos comandos no nosso terminal e ambas são modificando nosso arquivo $PROFILE

1.2.1 Adicionando Aliases

A primeira é adicionando novos aliases ao $PROFILE, você pode fazer isso com o seguinte comando:

New-Alias -Name meu-comando -Value Caminho\Para\Meu\Comando.bat

Agora, o que está acontecendo?

Ação Definição
New-Alias Cria aliases que associam comandos a determinados arquivos, clique aqui para mais informações
-Name Define o nome do comando que será executado no powershell, no caso do exemplo seria "meu-comando"
-Value Define qual arquivo será chamado quando o comando for executado

1.2.2 Criando functions

A outra forma que você pode criar novos comando é adicionando functions ao $PROFILE, por exemplo:

Function meu-comando-custom {
    param (
        [string[]]$ExtraArgs
    )
    $loginCommand = "meu-comando"
    $loginCommand += " --meu-parametro=meu-valor"
    echo $ExtraArgs
    foreach ($arg in $ExtraArgs) {
        echo $arg
        if ($arg.StartsWith("--")) {
            $loginCommand += " $arg"
        } elseif ($arg.StartsWith("-")) {
            $loginCommand += " $arg"
        } else {
            $loginCommand += " '$arg'"
        }
    }
    Invoke-Expression $loginCommand
}

Neste caso,estamos criando uma function chamada meu-comando-custom e ele chama o comando previamente definido meu-comando passando parâmetros específicos.

2 Instalação

Assim que você clonar esse repositório rode seguinte comando para instalar as dependências do app

npm install

3. Comandos Disponíveis

3.1 login

3.1.1 Especificações

O comando login abre um browser e faz o login de acordo com as configurações. Ele aceita os seguintes parâmetros:

Parâmetro longo Parâmetro curto Obrigatório Descrição
--action -a SIM Indica qual ação o login irá realizar
--verbose -v NÃO Indica se irá mostrar logs durante a execução

3.1.2 Configuração

Antes de usar o comando login, é necessário configurar as ações desejadas. Para isso é preciso criar o arquivo config.json no diretório ./config/, Há um exemplo de como deve ser esse config na mesma pasta e ele é desse jeito:

{
  "browseAndLogin": {
    "[actions]": {
      "url": "",
      "usernameInput": "",
      "usernameValue": "",
      "passwordInput": "",
      "passwordValue": "",
      "loginButton": ""
    }
  }
}

Digamos, então, que você quer fazer um comando que loga no seu email, para isso basta mudar onde está "[action]" por "logar-email" e preencher os outros campos de acordo com os ids do formulário de acesso e seus dados.

DICA: como o browseAndLogin é um objeto de objetos você pode ter n ações de login para diferentes sites, desde que as adicionem no arquivo config devidamente.

Agora é preciso configurar o comando no seu $PROFILE, como já foi mencionado no step 1.2 desde README.

Assim, basta adicionar o seguinte código no $PROFILE:

New-Alias -Name login -Value Path\To\Your\Cloned\Repo\browse-and-login\browse-and-login.bat

Function logar-email {
    param (
        [string[]]$ExtraArgs
    )
    $loginCommand = "login"
    $loginCommand += " --action=logar-email"
    echo $ExtraArgs
    foreach ($arg in $ExtraArgs) {
        echo $arg
        if ($arg.StartsWith("--")) {
            $loginCommand += " $arg"
        } elseif ($arg.StartsWith("-")) {
            $loginCommand += " $arg"
        } else {
            $loginCommand += " '$arg'"
        }
    }
    Invoke-Expression $loginCommand
}

O que essa configuração faz é definir um alias chamado login que roda o arquivo browse-and-login.bat que está nesse repositório e depois cria uma função que executa o comando "login" recem criado passando por padrão o argumento --action=logar-email. Ou seja os seguintes comandos são equivalentes:

login --action=logar-email

&

logar-email

3.2 touch

3.2.1 Especificações

O comando touch cria um novo arquivo vazio ou atualiza a data de modificação de um arquivo existente. Ele funciona de maneira semelhante ao comando touch no Unix.

Por exemplo, o comando touch arquivo.txt cria o arquivo arquivo.txt se ele não existir ou atualiza a data de modificação para o momento atual se já existir.

3.2.2 Configuração

De maneira semelhante ao comando anterior e como mencionado na seção 1.2 deste README, é preciso configurar o comando no $PROFILE. Uma vez aberto o profile o comando fica da seguinte maneira:

New-Alias -Name touch -Value Path\To\Your\Cloned\Repo\touch\touch.bat

3.3 reinitialize

3.3.1 Especificações

O comando reinitialize reinicializa o seu PowerShell, carregando quaisquer novas alterações feitas no seu $PROFILE sem que você precise fechar o terminal.

3.3.2 Configuração

da mesma forma que o comando anterior e conforme mencionado na seção 1.2 deste README, você precisa configurar o comando no $PROFILE. Uma vez aberto o profile, o comando fica assim:

New-Alias -Name reinitialize -Value Caminho\Para\Seu\Repositorio\Clonado\reinitialize\reinitialize.bat

Claro, aqui está o markdown traduzido para o português:


3.4 scheduler

3.4.1 Especificações

O comando scheduler abre um navegador e mostra a lista de tarefas agendadas do computador, permitindo as ações de CRUD para tarefas agendadas. O comando salva as tarefas agendadas em um arquivo temporário e inicia um servidor Node para servir os arquivos HTML e rotas. Por padrão, o comando inicia em um terminal separado.

Ele aceita os seguintes parâmetros:

Parâmetro Longo Parâmetro Curto Obrigatório Descrição
_start_ NÃO Inicia o servidor no mesmo terminal que executou o comando
--verbose -v NÃO Indica se deve exibir logs durante a execução

3.4.2 Configuração

Antes de usar o comando scheduler, você precisa configurar a porta do servidor que deve ser usada (o padrão é 3002) e inserir a senha do usuário do computador, pois isso é necessário para atualizar as tarefas agendadas. Para fazer isso, você precisa criar/atualizar o arquivo config.json no diretório ./config/. Há um exemplo de como essa configuração deve parecer na mesma pasta, e está estruturado da seguinte forma:

{
  "scheduler": {
    "serverPort": 3002,
    "userPassword": ""
  }
}

De forma semelhante ao comando anterior e conforme mencionado na seção 1.2 deste README, você precisa configurar o comando no $PROFILE. Uma vez que o perfil esteja aberto, o comando fica assim:

New-Alias -Name scheduler -Value Caminho\Para\Seu\Repositório\Clonado\scheduler\scheduler.bat

Other versions

Readme em Inglês (EN)