lastpassify 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.overcommit.yml +17 -0
- data/.reek +10 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +111 -0
- data/README.md +62 -0
- data/bin/lastpassify +7 -0
- data/bin/reek +17 -0
- data/bin/rubocop +17 -0
- data/lastpassify.gemspec +34 -0
- data/lib/lastpassify/lastpassify.rb +71 -0
- data/lib/lastpassify/runner.rb +41 -0
- data/lib/lastpassify/version.rb +3 -0
- data/script/bootstrap +29 -0
- data/script/setup +11 -0
- data/script/test +24 -0
- data/script/update +9 -0
- metadata +193 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f0827280191e4dec87fcd1a1e07ffde7a908bc95
|
4
|
+
data.tar.gz: 3e12237c34a859ed8ff0b1aefaa3b79e288dd169
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cc029d05cb77d725fda588012b93445392891506f77101956af5661139626a7566e05cb5e734a3f72df54df33e1da46661b8e70a9f86df1710c117ef7261b41c
|
7
|
+
data.tar.gz: be02eabcdaf2bf4fa0f1301bd98eafc5df540fa231bc3f37abc37b5ee33d4d8b09851ae33f0a2a6e6887f06766d151c7c359362f3a800585956dc5e384cd921e
|
data/.gitignore
ADDED
data/.overcommit.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
PreCommit:
|
2
|
+
ALL:
|
3
|
+
exclude:
|
4
|
+
- "lib/lastpassify/runner.rb"
|
5
|
+
RuboCop:
|
6
|
+
enabled: true
|
7
|
+
on_warn: fail # Treat all warnings as failures
|
8
|
+
required_executable: "./bin/rubocop"
|
9
|
+
Reek:
|
10
|
+
enabled: true
|
11
|
+
on_fail: fail
|
12
|
+
required_executable: "./bin/reek"
|
13
|
+
PrePush:
|
14
|
+
RSpec:
|
15
|
+
enabled: true
|
16
|
+
on_warn: fail # Treat all warnings as failures
|
17
|
+
required_executable: './script/test'
|
data/.reek
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.4
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
lastpassify (0.4.1)
|
5
|
+
thor
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
aruba (0.14.2)
|
11
|
+
childprocess (~> 0.5.6)
|
12
|
+
contracts (~> 0.9)
|
13
|
+
cucumber (>= 1.3.19)
|
14
|
+
ffi (~> 1.9.10)
|
15
|
+
rspec-expectations (>= 2.99)
|
16
|
+
thor (~> 0.19)
|
17
|
+
ast (2.3.0)
|
18
|
+
awesome_print (1.8.0)
|
19
|
+
axiom-types (0.1.1)
|
20
|
+
descendants_tracker (~> 0.0.4)
|
21
|
+
ice_nine (~> 0.11.0)
|
22
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
23
|
+
builder (3.2.3)
|
24
|
+
childprocess (0.5.9)
|
25
|
+
ffi (~> 1.0, >= 1.0.11)
|
26
|
+
codeclimate-engine-rb (0.4.0)
|
27
|
+
virtus (~> 1.0)
|
28
|
+
coercible (1.0.0)
|
29
|
+
descendants_tracker (~> 0.0.1)
|
30
|
+
contracts (0.16.0)
|
31
|
+
cucumber (2.4.0)
|
32
|
+
builder (>= 2.1.2)
|
33
|
+
cucumber-core (~> 1.5.0)
|
34
|
+
cucumber-wire (~> 0.0.1)
|
35
|
+
diff-lcs (>= 1.1.3)
|
36
|
+
gherkin (~> 4.0)
|
37
|
+
multi_json (>= 1.7.5, < 2.0)
|
38
|
+
multi_test (>= 0.1.2)
|
39
|
+
cucumber-core (1.5.0)
|
40
|
+
gherkin (~> 4.0)
|
41
|
+
cucumber-wire (0.0.1)
|
42
|
+
descendants_tracker (0.0.4)
|
43
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
44
|
+
diff-lcs (1.3)
|
45
|
+
equalizer (0.0.11)
|
46
|
+
ffi (1.9.18)
|
47
|
+
gherkin (4.1.3)
|
48
|
+
ice_nine (0.11.2)
|
49
|
+
iniparse (1.4.4)
|
50
|
+
multi_json (1.12.1)
|
51
|
+
multi_test (0.1.2)
|
52
|
+
overcommit (0.38.0)
|
53
|
+
childprocess (~> 0.5.8)
|
54
|
+
iniparse (~> 1.4)
|
55
|
+
parallel (1.11.2)
|
56
|
+
parser (2.4.0.0)
|
57
|
+
ast (~> 2.2)
|
58
|
+
powerpack (0.1.1)
|
59
|
+
rainbow (2.2.2)
|
60
|
+
rake
|
61
|
+
rake (12.0.0)
|
62
|
+
reek (4.7.1)
|
63
|
+
codeclimate-engine-rb (~> 0.4.0)
|
64
|
+
parser (>= 2.4.0.0, < 2.5)
|
65
|
+
rainbow (~> 2.0)
|
66
|
+
rspec (3.6.0)
|
67
|
+
rspec-core (~> 3.6.0)
|
68
|
+
rspec-expectations (~> 3.6.0)
|
69
|
+
rspec-mocks (~> 3.6.0)
|
70
|
+
rspec-core (3.6.0)
|
71
|
+
rspec-support (~> 3.6.0)
|
72
|
+
rspec-expectations (3.6.0)
|
73
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
74
|
+
rspec-support (~> 3.6.0)
|
75
|
+
rspec-mocks (3.6.0)
|
76
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
77
|
+
rspec-support (~> 3.6.0)
|
78
|
+
rspec-support (3.6.0)
|
79
|
+
rubocop (0.49.1)
|
80
|
+
parallel (~> 1.10)
|
81
|
+
parser (>= 2.3.3.1, < 3.0)
|
82
|
+
powerpack (~> 0.1)
|
83
|
+
rainbow (>= 1.99.1, < 3.0)
|
84
|
+
ruby-progressbar (~> 1.7)
|
85
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
86
|
+
ruby-progressbar (1.8.1)
|
87
|
+
thor (0.19.4)
|
88
|
+
thread_safe (0.3.6)
|
89
|
+
unicode-display_width (1.3.0)
|
90
|
+
virtus (1.0.5)
|
91
|
+
axiom-types (~> 0.1)
|
92
|
+
coercible (~> 1.0)
|
93
|
+
descendants_tracker (~> 0.0, >= 0.0.3)
|
94
|
+
equalizer (~> 0.0, >= 0.0.9)
|
95
|
+
|
96
|
+
PLATFORMS
|
97
|
+
ruby
|
98
|
+
|
99
|
+
DEPENDENCIES
|
100
|
+
aruba (~> 0.14.2)
|
101
|
+
awesome_print
|
102
|
+
bundler (~> 1.15)
|
103
|
+
lastpassify!
|
104
|
+
overcommit
|
105
|
+
rake
|
106
|
+
reek
|
107
|
+
rspec
|
108
|
+
rubocop
|
109
|
+
|
110
|
+
BUNDLED WITH
|
111
|
+
1.15.2
|
data/README.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# LastPassify
|
2
|
+
|
3
|
+
LastPassify is a gem for automating `database.yml` configuration files. The goal of this gem is to populate a given a YAML ERB config file with values from LastPass. It uses the Ruby toolkit [Thor](https://github.com/erikhuda/thor) and [lastpass-cli](https://github.com/lastpass/lastpass-cli).
|
4
|
+
|
5
|
+
### Install
|
6
|
+
|
7
|
+
LastPassify requires [lastpass-cli](https://github.com/lastpass/lastpass-cli) to be installed.
|
8
|
+
|
9
|
+
Also, LastPassify only works with Ruby version 2 and above.
|
10
|
+
|
11
|
+
LastPassify expects ERB in the inputted YAML file and uses lastpass-cli to populate these fields with data from LastPass.com
|
12
|
+
|
13
|
+
#### Adding to your project's Gemfile
|
14
|
+
|
15
|
+
You can install LastPassify by adding it to your Gemfile like so:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
# sample Gemfile
|
19
|
+
|
20
|
+
source "https://rubygems.org" do
|
21
|
+
ruby "2.3.3"
|
22
|
+
|
23
|
+
group :development do
|
24
|
+
gem "lastpassify"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
```
|
28
|
+
|
29
|
+
|
30
|
+
### Usage
|
31
|
+
|
32
|
+
LastPassify expects an input of one YAML file to be processed and outputs one YAML file. The input file can be passed in as an argument at the commandline like so:
|
33
|
+
|
34
|
+
`$ bundle exec lastpassify my_input_file.yml`
|
35
|
+
|
36
|
+
The output file and path can also be specified:
|
37
|
+
|
38
|
+
`$ bundle exec lastpassify my_input_file.yml config/my_output_file.yml`
|
39
|
+
|
40
|
+
LastPassify has default values that silently get passed if no input or output file is specified. The default input file LastPassify will look for is `config/database.example.yml`. The default output will also live in the `config` directory, with a filename of `database.yml`.
|
41
|
+
|
42
|
+
#### Flags
|
43
|
+
|
44
|
+
By default, LastPassify strips out any YAML keys with production, staging or qat in their names. This is a security measure to ensure no prod or staging environment credentials sit on your local development machine unnecessarily.
|
45
|
+
|
46
|
+
However, if for some reason you do want these credentials, this behavior can be overridden by passing in flags:
|
47
|
+
|
48
|
+
```
|
49
|
+
-p flag to include production values in final output file
|
50
|
+
-s flag to include staging/qat values in final output file
|
51
|
+
```
|
52
|
+
|
53
|
+
Example usage to include production values while using the default filenames and paths:
|
54
|
+
|
55
|
+
`$ bundle exec lastpassify -p`
|
56
|
+
|
57
|
+
Finally, upon completion, LastPassify will print the date the file was generated at the bottom of the outputted YAML file.
|
58
|
+
|
59
|
+
|
60
|
+
Author Information
|
61
|
+
------------------
|
62
|
+
Eric Eklund, Remy Abdullahi @ ASR
|
data/bin/lastpassify
ADDED
data/bin/reek
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'reek' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("reek", "reek")
|
data/bin/rubocop
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'rubocop' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("rubocop", "rubocop")
|
data/lastpassify.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'lastpassify/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "lastpassify"
|
8
|
+
spec.version = LastPassify::VERSION
|
9
|
+
spec.authors = ["Eric Eklund (eeklund), Remy Abdullahi (abdu0299)"]
|
10
|
+
spec.email = ["eeklund@umn.edu", "abdu0299@umn.edu"]
|
11
|
+
|
12
|
+
spec.summary = %q{Populate ERB file with values from LastPass}
|
13
|
+
spec.description = %q{This gem populates a given ERB/YAML file with values from LastPass using LastPass-CLI.}
|
14
|
+
spec.homepage = "https://github.com/umn-asr/lastpassify"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
|
+
f.match(%r{^(test|spec|features)/})
|
19
|
+
end
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.required_ruby_version = ">= 2.0.0"
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.15"
|
26
|
+
spec.add_development_dependency "rake"
|
27
|
+
spec.add_development_dependency "rubocop"
|
28
|
+
spec.add_development_dependency "reek"
|
29
|
+
spec.add_development_dependency "overcommit"
|
30
|
+
spec.add_development_dependency "awesome_print"
|
31
|
+
spec.add_development_dependency "aruba", "~> 0.14.2"
|
32
|
+
spec.add_development_dependency "rspec"
|
33
|
+
spec.add_dependency "thor"
|
34
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require "thor"
|
2
|
+
require "yaml"
|
3
|
+
|
4
|
+
module LastPassify
|
5
|
+
# main LastPassify Thor script
|
6
|
+
class LastPassify < Thor::Group
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
# Exception for when LastPass-CLI is not installed
|
10
|
+
class LPassNotInstalled < RuntimeError; end
|
11
|
+
|
12
|
+
# files will be available as attr_accessors
|
13
|
+
argument :input_file, type: :string, default: "config/database.example.yml", desc: "Input file"
|
14
|
+
argument :output_file, type: :string, default: "config/database.yml", desc: "Output file"
|
15
|
+
|
16
|
+
class_option :production, type: :boolean, aliases: "-p", desc: "Include production sections"
|
17
|
+
class_option :staging, type: :boolean, aliases: "-s", desc: "Include staging sections"
|
18
|
+
|
19
|
+
def self.source_root
|
20
|
+
File.expand_path("./")
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Takes a file to process, and outputs a new file populated with values from LastPass."
|
24
|
+
|
25
|
+
NOW = Time.now.strftime('%v')
|
26
|
+
|
27
|
+
def main
|
28
|
+
raise LPassNotInstalled, "Please install LastPass-CLI - https://github.com/lastpass/lastpass-cli" unless lastpass_installed?
|
29
|
+
|
30
|
+
template input_file, output_file do |content|
|
31
|
+
yml = YAML.safe_load content, [], [], true
|
32
|
+
delete_staging(yml) unless options[:staging]
|
33
|
+
delete_production(yml) unless options[:production]
|
34
|
+
content = YAML.dump(yml)
|
35
|
+
content << "# This file was automatically generated by LastPassify on #{NOW}.\n"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
no_commands do
|
40
|
+
def lookup(_source, shared_path, field)
|
41
|
+
response = if %w[username password url notes id name].include? field
|
42
|
+
`lpass show --#{field} "#{shared_path}"`.chomp
|
43
|
+
else
|
44
|
+
`lpass show --field='#{field}' "#{shared_path}"`.chomp
|
45
|
+
end
|
46
|
+
|
47
|
+
puts "Please fill in: '#{shared_path}' : #{field} field" if response.empty?
|
48
|
+
|
49
|
+
response
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def lastpass_installed?
|
56
|
+
system("command -v lpass")
|
57
|
+
end
|
58
|
+
|
59
|
+
def delete_staging(yml)
|
60
|
+
yml.keys.each do |key|
|
61
|
+
yml.delete(key) if key.to_s =~ /staging|qat/
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def delete_production(yml)
|
66
|
+
yml.keys.each do |key|
|
67
|
+
yml.delete(key) if key.to_s =~ /production/
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "lastpassify/lastpassify"
|
2
|
+
|
3
|
+
module LastPassify
|
4
|
+
class Runner
|
5
|
+
# Allow everything fun to be injected from the outside while defaulting to normal implementations.
|
6
|
+
def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
|
7
|
+
@argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
|
8
|
+
end
|
9
|
+
|
10
|
+
def execute!
|
11
|
+
exit_code = begin
|
12
|
+
# Replacing streams so we can use them
|
13
|
+
$stderr = @stderr
|
14
|
+
$stdin = @stdin
|
15
|
+
$stdout = @stdout
|
16
|
+
|
17
|
+
# Execute LastPassify
|
18
|
+
LastPassify.start(@argv)
|
19
|
+
|
20
|
+
# Thor::Base#start does not have a return value, assume success if no exception is raised.
|
21
|
+
0
|
22
|
+
rescue StandardError => e
|
23
|
+
# The ruby interpreter would pipe this to STDERR and exit 1 in the case of an unhandled exception
|
24
|
+
b = e.backtrace
|
25
|
+
@stderr.puts("#{b.shift}: #{e.message} (#{e.class})")
|
26
|
+
@stderr.puts(b.map{|s| "\tfrom #{s}"}.join("\n"))
|
27
|
+
1
|
28
|
+
rescue SystemExit => e
|
29
|
+
e.status
|
30
|
+
ensure
|
31
|
+
# ...then we put the streams back.
|
32
|
+
$stderr = STDERR
|
33
|
+
$stdin = STDIN
|
34
|
+
$stdout = STDOUT
|
35
|
+
end
|
36
|
+
|
37
|
+
# Proxy our exit code back to the injected kernel.
|
38
|
+
@kernel.exit(exit_code)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/script/bootstrap
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# script/bootstrap: Resolve all dependencies that LastPassify requires to run.
|
4
|
+
|
5
|
+
set -e
|
6
|
+
|
7
|
+
cd "$(dirname "$0")/.."
|
8
|
+
|
9
|
+
if [ "$(uname -s)" = "Darwin" ]; then
|
10
|
+
brew update
|
11
|
+
|
12
|
+
command -v lpass >/dev/null 2>&1 || {
|
13
|
+
echo "==> Installing LastPass-CLI…"
|
14
|
+
brew install lastpass-cli
|
15
|
+
}
|
16
|
+
fi
|
17
|
+
|
18
|
+
if [ -f "Gemfile" ]; then
|
19
|
+
echo "==> Installing gem dependencies…"
|
20
|
+
bundle check >/dev/null 2>&1 || {
|
21
|
+
bundle install --quiet --without production
|
22
|
+
}
|
23
|
+
fi
|
24
|
+
|
25
|
+
if [ -f ".overcommit.yml" ]; then
|
26
|
+
echo "==> Installing Overcommit hooks…"
|
27
|
+
bundle exec overcommit
|
28
|
+
bundle exec overcommit --sign
|
29
|
+
fi
|
data/script/setup
ADDED
data/script/test
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# script/test: Run test suite for LastPassify gem. Optionally pass in a path to an
|
4
|
+
# individual test file to run a single test.
|
5
|
+
|
6
|
+
|
7
|
+
set -e
|
8
|
+
|
9
|
+
cd "$(dirname "$0")/.."
|
10
|
+
|
11
|
+
[ -z "$DEBUG" ] || set -x
|
12
|
+
|
13
|
+
export ENV="test"
|
14
|
+
|
15
|
+
script/update
|
16
|
+
|
17
|
+
echo "===> Running tests..."
|
18
|
+
|
19
|
+
if [ -n "$1" ]; then
|
20
|
+
# pass arguments to test call. This is useful for calling a single test.
|
21
|
+
bundle exec rspec "$1"
|
22
|
+
else
|
23
|
+
bundle exec rspec
|
24
|
+
fi
|
data/script/update
ADDED
metadata
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lastpassify
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eric Eklund (eeklund), Remy Abdullahi (abdu0299)
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-07-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.15'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.15'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: reek
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: overcommit
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: awesome_print
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: aruba
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.14.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.14.2
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: thor
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: This gem populates a given ERB/YAML file with values from LastPass using
|
140
|
+
LastPass-CLI.
|
141
|
+
email:
|
142
|
+
- eeklund@umn.edu
|
143
|
+
- abdu0299@umn.edu
|
144
|
+
executables:
|
145
|
+
- lastpassify
|
146
|
+
- reek
|
147
|
+
- rubocop
|
148
|
+
extensions: []
|
149
|
+
extra_rdoc_files: []
|
150
|
+
files:
|
151
|
+
- ".gitignore"
|
152
|
+
- ".overcommit.yml"
|
153
|
+
- ".reek"
|
154
|
+
- ".ruby-version"
|
155
|
+
- Gemfile
|
156
|
+
- Gemfile.lock
|
157
|
+
- README.md
|
158
|
+
- bin/lastpassify
|
159
|
+
- bin/reek
|
160
|
+
- bin/rubocop
|
161
|
+
- lastpassify.gemspec
|
162
|
+
- lib/lastpassify/lastpassify.rb
|
163
|
+
- lib/lastpassify/runner.rb
|
164
|
+
- lib/lastpassify/version.rb
|
165
|
+
- script/bootstrap
|
166
|
+
- script/setup
|
167
|
+
- script/test
|
168
|
+
- script/update
|
169
|
+
homepage: https://github.com/umn-asr/lastpassify
|
170
|
+
licenses:
|
171
|
+
- MIT
|
172
|
+
metadata: {}
|
173
|
+
post_install_message:
|
174
|
+
rdoc_options: []
|
175
|
+
require_paths:
|
176
|
+
- lib
|
177
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 2.0.0
|
182
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
requirements: []
|
188
|
+
rubyforge_project:
|
189
|
+
rubygems_version: 2.4.5.1
|
190
|
+
signing_key:
|
191
|
+
specification_version: 4
|
192
|
+
summary: Populate ERB file with values from LastPass
|
193
|
+
test_files: []
|