https://github.com/heroku/netrc
Reads and writes netrc files.
https://github.com/heroku/netrc
Last synced: 6 months ago
JSON representation
Reads and writes netrc files.
- Host: GitHub
- URL: https://github.com/heroku/netrc
- Owner: heroku
- License: mit
- Created: 2011-11-16T01:13:08.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2024-05-10T16:46:11.000Z (over 1 year ago)
- Last Synced: 2025-06-10T04:07:35.164Z (7 months ago)
- Language: Ruby
- Homepage:
- Size: 103 KB
- Stars: 89
- Watchers: 82
- Forks: 32
- Open Issues: 3
-
Metadata Files:
- Readme: Readme.md
- Changelog: changelog.txt
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Netrc
This library reads and writes
[`.netrc` files](http://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html).
## API
Read a netrc file:
n = Netrc.read("sample.netrc")
If the file doesn't exist, Netrc.read will return an empty object. If
the filename ends in ".gpg", it will be decrypted using
[GPG](http://www.gnupg.org/).
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 = Netrc.read
Configure netrc to allow permissive files (with permissions other than 0600):
Netrc.configure do |config|
config[:allow_permissive_netrc_file] = true
end
Look up a username and password:
user, pass = n["example.com"]
Write a username and password:
n["example.com"] = user, newpass
n.save
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["example.com"] = user, newpass
n.save
Have fun!
## Running Tests
$ bundle install
$ bundle exec ruby -e 'Dir.glob "./test/**/test_*.rb", &method(:require)'