Estou tentando escrever uma função muito simples que usa um script bash
de uma linha para ler o valor de uma chave de um arquivo JSON. node
Aqui está o conteúdo atual de utils.bash
:
#!/bin/bash
project_name() {
echo $(node -e "require('../package.json').name;")
}
Sim, eu sei que existem ferramentas que me permitem acessar dados JSON mais diretamente, mas toda a equipe de desenvolvimento já possui node
, então é uma dependência existente e não uma nova.
Tornei o arquivo executável, mas quando tento source scripts/utils.bash
fazer referência à função (na linha de comando) da seguinte forma:
PROJECT_NAME=project_name
a saída é simplesmente a linha que digitei. Quando tento executar simplesmente project_name
, recebo um node
erro:
Error: Cannot find module '../package.json'
O utils.bash
script está na scripts
pasta do projeto e o package.json
arquivo está na pasta pai. Estou executando isso a partir da pasta pai (embora eu prefira que isso não importe). Eu tentei importar './package.json'
, mas isso também me deu um erro.
O resultado final que desejo é poder referenciar o valor da name
chave por project.json
meio de vários bash
scripts.
Como posso fazer isso?