Criando alias no zshrc a partir do arquivo json

0

Alguém sabe como criar o alias em zshrc lendo o arquivo JSON da máquina local

Por exemplo: meus nomes de arquivos JSON são ip.json como

{"local":"127.0.0.1"}

e deseja criar um alias em zshrc as

alias local = "ssh [email protected]"
    
por Pooja 17.06.2015 / 14:28

1 resposta

1

Você pode usar a ferramenta jq (disponível via apt-get ) para isso.

Se o arquivo ip.json tiver um objeto json, cada chave é um host diferente. Seguindo o seu exemplo (por qualquer motivo, você não pode usar local alias no zsh sem ter problemas com a conclusão)

{
  "Local": "127.0.0.1",
  "remote": "192.168.0.5"
}

Você pode acrescentar isso ao seu arquivo zshrc :

# Use jq to get all keys in the root object and create a loop
for host in $(jq --raw-output 'keys | .[]' ip.json); do 
  # Get the key value of these keys and create the alias
  alias $host=ssh\ root@$(jq --raw-output ".$host?" ip.json)
done

Use man jq para mais informações sobre essa ferramenta.

    
por Danilo de Andrade Mendes 17.06.2015 / 20:19