Então baixei um programa chamado GTKWave usando os seguintes comandos:
brew tap homebrew/cask
brew cask install gtkwave
O gtkwave.app
está na minha pasta Aplicativos. Um link simbólico gtkwave
foi adicionado à minha pasta usr/local/bin
. Ele aponta para /Applications/gtkwave.app/Contents/MacOS/gtkwave
, que é um arquivo de script. Aqui está o conteúdo do arquivo de script .
Quando executo gtkwave
no meu terminal, recebo os seguintes erros:
2018-08-21 23:55:44.863 defaults[58697:4043691]
The domain/default pair of (.GlobalPreferences, AppleCollationOrder) does not exist
/usr/local/bin/gtkwave: line 77: test: argument expected
/usr/local/bin/gtkwave: line 179: /Users/me//usr/Contents/MacOS/gtkwave-bin: No such file or directory
/usr/local/bin/gtkwave: line 179: exec: /Users/me//usr/Contents/MacOS/gtkwave-bin: cannot execute: No such file or directory
Aqui estão as linhas do arquivo de script em questão:
(77): if test -z ${LANG} -a -n $APPLECOLLATION; then
(179): $EXEC "$bundle_contents/MacOS/$name-bin" $* $EXTRA_ARGS
Parece que os erros na linha 179 são causados por um caminho ruim, o que eu tenho certeza de ajustar algumas variáveis ou algo iria consertar (embora eu não saiba porque eu teria que fazer isso, eu pensei que a instalação do Homebrew era supostamente para ser fácil!
O erro na linha 77 parece ser causado pela coisa (.GlobalPreferences, AppleCollationOrder)
, o que eu acho que faz com que $APPLECOLLATION;
fique vazio, o que o bash interpreta como um argumento perdido, daí o erro argument expected
.
No geral, parece que algo estranho está acontecendo. Eu não sei exatamente qual é a causa raiz. Preciso configurar algumas variáveis de ambiente? Modifique o script? A instalação do Homebrew foi uma bagunça?
EDITAR:
Então aqui está o código em torno da linha 77:
APPLECOLLATION='defaults read .GlobalPreferences AppleCollationOrder'
if test -z ${LANG} -a -n $APPLECOLLATION; then
if test -f "$I18NDIR/${APPLECOLLATION:0:2}/LC_MESSAGES/$APP.mo"; then
export LANG=${APPLECOLLATION:0:2}
fi
fi
if test ! -z $APPLECOLLATION; then
export LC_COLLATE=$APPLECOLLATION
fi
unset APPLECOLLATION
Quando executo defaults read .GlobalPreferences AppleCollationOrder
no meu terminal, obtenho:
2018-08-22 00:05:07.683 defaults[58711:4048137]
The domain/default pair of (.GlobalPreferences, AppleCollationOrder) does not exist
Assim, esse tipo de explica o primeiro erro, mas agora não tenho certeza de como corrigi-lo ...
EDIT 2:
Aqui estão algumas linhas do arquivo de script que são relevantes para a linha 179 (adicionei as instruções echo
em):
echo "\$0=/usr/local/bin/gtkwave
pwd=/Users/me
name=gtkwave
tmp=/Users/me//usr/local/bin/gtkwave
tmp=/Users/me//usr/local/bin
tmp=/Users/me//usr/local
bundle=/Users/me//usr
bundle_contents=/Users/me//usr/Contents
=$0"
echo "pwd='pwd'"
name="'basename $0'"
echo "name=$name"
tmp="'pwd'/$0"
echo "tmp=$tmp"
tmp='dirname "$tmp"'
echo "tmp=$tmp"
tmp='dirname "$tmp"'
echo "tmp=$tmp"
bundle='dirname "$tmp"'
echo "bundle=$bundle"
Quando executo gtkwave
, isso é o que as instruções echo
produzem:
(gtkwave-bin:58972): Pango-WARNING **: couldn't load font ".SF NS Text Not-Rotated 12", falling back to "Sans Not-Rotated 12", expect ugly output.
(gtkwave-bin:58972): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderATSUI', script='common'
(gtkwave-bin:58972): Pango-WARNING **: couldn't load font ".SF NS Text 12", falling back to "Sans 12", expect ugly output.
Assim, parece que o script começa com o caminho absoluto do script, tenta voltar alguns diretórios e, em seguida, acrescenta nomes de pastas ao final.
Acho que o resultado final deve ser bundle_contents=/Applications/gtkwave.app/Contents
, mas o roteiro faz um trabalho horrível de chegar lá.
Eu acho que vou ter que modificar essas linhas para produzir o caminho correto, ou talvez apenas hard_code a variável bundle_contents
...
EDIT 3:
Ok, eu fiz algumas edições para que funcione. Aqui está o script final em sua totalidade .
Agora, o que vejo quando executo gtkwave
é isso:
brew tap homebrew/cask
brew cask install gtkwave
Nenhuma ideia do que isso significa ou como consertá-lo (a partir de agora), mas as mensagens estão corretas, a saída é bem feia. A fonte é pixel-y e embaçada no visor da retina. Vou procurar em tudo o que o Pango é e como escolher uma fonte ou o que o erro está falando.
Tags bash mac macos bash-scripting