moat 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (6) hide show
  1. data/History.txt +6 -1
  2. data/bin/moat +61 -1
  3. data/lib/moat.rb +40 -2
  4. data/moat-0.0.1.gem +0 -0
  5. data/moat.gemspec +4 -1
  6. metadata +5 -5
data/History.txt CHANGED
@@ -1,6 +1,11 @@
1
- === 1.0.0 / 2010-04-01
1
+ === 0.0.1 / 2010-04-01
2
2
 
3
3
  * 1 major enhancement
4
4
 
5
5
  * Birthday!
6
6
 
7
+ === 0.0.2 / 2010-04-01
8
+
9
+ * 1 major enhancement:
10
+
11
+ * Adding functionality
data/bin/moat CHANGED
@@ -1,3 +1,63 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- abort "you need to write me"
3
+ # Almost everything here is stolen from Giles Bowkett's
4
+ # password gem. sudo gem install password for the original good shit.
5
+
6
+ require 'rubygems'
7
+ require 'optparse'
8
+
9
+ require "#{File.dirname(__FILE__)}/../lib/moat"
10
+ include Moat
11
+
12
+ load_passwords
13
+
14
+ option_parser = OptionParser.new do |option_parser|
15
+ option_parser.on("-?", "--grep query", String) do |query|
16
+ @query = query
17
+ @action = :grep
18
+ end
19
+
20
+ option_parser.on("-a") do
21
+ @action = :all
22
+ end
23
+
24
+ option_parser.on("-s", "--set site", String) do |site|
25
+ @site = site
26
+ @action = :set
27
+ end
28
+
29
+ option_parser.on("-l", "--length length") do |length|
30
+ @length = length.to_i
31
+ end
32
+
33
+ option_parser.on("-G", "--generating_set site") do |site|
34
+ @site = site
35
+ @action = :set
36
+ @length ||= 10
37
+ @generated = generate(@length)
38
+ end
39
+ end
40
+
41
+ username, password = option_parser.parse(ARGV)
42
+ password ||= @generated
43
+
44
+ def show_credentials_for(site)
45
+ abort "No password stored for #{site}" unless Moat::SITES[site]
46
+ puts site
47
+ puts " username: #{Moat::SITES[site][:username]}"
48
+ puts " password: #{Moat::SITES[site][:password]}"
49
+ end
50
+
51
+ case @action
52
+ when :get
53
+ show_credentials_for(@site)
54
+ when :all
55
+ Moat::SITES.keys.each {|site| show_credentials_for(site)}
56
+ when :set
57
+ Moat::SITES[@site] = {:username => username, :password => password }
58
+ show_credentials_for(@site) if @generated
59
+ save_passwords
60
+ when :grep
61
+ Moat::SITES.keys.each {|site| show_credentials_for(site) if site =~ /#{@query}/ }
62
+ end
63
+
data/lib/moat.rb CHANGED
@@ -1,3 +1,41 @@
1
- class Moat
2
- VERSION = '1.0.0'
1
+ module Moat
2
+ VERSION = '0.0.1'
3
+ FILENAME = "#{ENV['HOME']}/.moatfile"
4
+ SITES = {}
5
+
6
+ def set(credentials)
7
+ SITES[credentials[:site]] = {
8
+ :username => credentials[:username],
9
+ :password => credentials[:password]
10
+ }
11
+ end
12
+
13
+ def username(site)
14
+ SITES[site][:username]
15
+ end
16
+
17
+ def password(site)
18
+ SITES[site][:password]
19
+ end
20
+
21
+ def save_passwords
22
+ File.open(FILENAME, "w") {|file| file.puts SITES.to_yaml }
23
+ end
24
+
25
+ def load_passwords
26
+ if File.exists?(FILENAME)
27
+ SITES.merge!(YAML::load(File.open(FILENAME)))
28
+ else
29
+ {}
30
+ end
31
+ end
32
+
33
+ def generate
34
+ letters = ('a'..'z').to_a
35
+ numbers = ('0'..'9').to_a
36
+ alphanumeric_array = letters + numbers
37
+ alphanumeric_array.shuffle[0..9].join
38
+ end
39
+
3
40
  end
41
+
data/moat-0.0.1.gem ADDED
Binary file
data/moat.gemspec CHANGED
@@ -2,11 +2,14 @@ require 'rubygems'
2
2
 
3
3
  SPEC = Gem::Specification.new do |s|
4
4
  s.name = "moat"
5
- s.version = "0.0.1"
5
+ s.version = "0.0.2"
6
6
  s.author = "Bryan Woods"
7
7
  s.email = "bryanwoods4e@gmail.com"
8
8
  s.platform = Gem::Platform::RUBY
9
+ s.description = "Brain-dead simple password storage. Improved."
9
10
  s.summary = "Brain-dead simple password storage. Improved."
11
+ s.rubyforge_project = "moat"
12
+ s.homepage = "http://github.com/bryanwoods/moat"
10
13
  s.files = Dir.glob("**/*")
11
14
  s.executables << "moat"
12
15
  s.require_path = "lib"
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Bryan Woods
@@ -18,7 +18,7 @@ date: 2010-04-01 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
21
- description:
21
+ description: Brain-dead simple password storage. Improved.
22
22
  email: bryanwoods4e@gmail.com
23
23
  executables:
24
24
  - moat
@@ -37,7 +37,7 @@ files:
37
37
  - README.txt
38
38
  - test/test_moat.rb
39
39
  has_rdoc: true
40
- homepage:
40
+ homepage: http://github.com/bryanwoods/moat
41
41
  licenses: []
42
42
 
43
43
  post_install_message:
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  version: "0"
62
62
  requirements: []
63
63
 
64
- rubyforge_project:
64
+ rubyforge_project: moat
65
65
  rubygems_version: 1.3.6
66
66
  signing_key:
67
67
  specification_version: 3