Reads and writes netrc files.
Clone or download
Pull request Compare This branch is 98 commits ahead, 1 commit behind kr:master.
geemus Merge pull request #16 from Yuhta/master
Allow user to enter passphrase for encrypted file
Latest commit 262ef11 Feb 9, 2016


This library reads and writes .netrc files.


Read a netrc file:

n ="sample.netrc")

If the file doesn't exist, will return an empty object. If the filename ends in ".gpg", it will be decrypted using GPG.

Read the user's default netrc file.

On Unix: $NETRC/.netrc or $HOME/.netrc (whichever is set first).

On Windows: %NETRC%\_netrc, %HOME%\_netrc, %HOMEDRIVE%%HOMEPATH%\_netrc, or %USERPROFILE%\_netrc (whichever is set first).

n =

Configure netrc to allow permissive files (with permissions other than 0600):

Netrc.configure do |config|
  config[:allow_permissive_netrc_file] = true

Look up a username and password:

user, pass = n[""]

Write a username and password:

n[""] = user, newpass

If you make an entry that wasn't there before, it will be appended to the end of the file. Sometimes people want to include a comment explaining that the entry was added automatically. You can do it like this:

n.new_item_prefix = "# This entry was added automatically\n"
n[""] = user, newpass

Have fun!

Running Tests

$ bundle install
$ bundle exec ruby -e 'Dir.glob "./test/**/test_*.rb", &method(:require)'