Existe uma solução do Windows para um programa que depende do netrc?

1

Eu tenho um script Perl que funciona bem no Windows, no entanto, uma função exige o uso de um arquivo .netrc para recuperar credenciais.

Existe um equivalente do Windows de .netrc ou outra solução no Windows?

    
por Louis 15.07.2013 / 20:38

3 respostas

4

O Windows deve ser idêntico, exceto pelo fato de seu diretório pessoal estar em um local diferente.

Tente procurar no diretório %userprofile% de .netrc .

Se estiver faltando, você poderá criá-lo no Explorer criando um novo arquivo chamado .netrc. (o . final desaparecerá).

Você pode precisar criar uma variável ambiental chamada HOME que aponte para %USERPROFILE% , assim: setx HOME %USERPROFILE%

    
por 15.07.2013 / 20:41
1

No sistema operacional Windows , abra cmd.exe , digite

echo %HOME%

e depois

echo %USERPROFILE%

A saída deve ser a mesma. Se não fizer isso

setx HOME %USERPROFILE%

Depois, crie o arquivo _netrc dentro do diretório %USERPROFILE% e adicione

machine <hostname1>
login <login1>
password <password1>

Exemplo aqui

Important! on Windows you should create _netrc instead of .netrc

Mais sobre isso, você pode ler aqui

    
por 12.05.2016 / 14:50
0

Você pode verificar se está sendo executado no Windows e, em caso afirmativo, consultar um arquivo de configuração separado, em vez de procurar .netrc :

my $config_file = '';
if ($^O eq 'MSWin32') {
  $config_file = 'c:\path\to\config.ini';
}
else {
  $config_file = '~/.netrc';
};

O arquivo .netrc , por padrão, reside no $HOME de um usuário, cujo equivalente na plataforma Windows é c:\{Users|Documents and Settings}\<Username> - 'Usuários' para Windows Vista e mais recente, 'Documents and Settings' para XP e versões anteriores. Você poderia criar um arquivo .netrc lá e preenchê-lo com as credenciais necessárias, o que exigiria menos (ou nenhuma) alteração em seu código - no entanto, ele falha ao cumprir as convenções do Windows, que teria arquivos de configuração em C:\Users\<Username>\AppData\Local\<Developer>\<Program>\ ou similar. Cabe a você se prefere modificar seu código para atender à convenção ou apenas procurar no diretório base do perfil do usuário por conveniência.

Claro, se você estiver executando o script em Cygwin Perl, basta criar ~/.netrc para a conta de usuário, preenchê-lo e tê-lo feito.

    
por 15.07.2013 / 20:45