osp 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +2 -0
- data/Makefile.common +3 -3
- data/README.md +2 -1
- data/bin/osp +30 -6
- data/lib/osp/version.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 569423a826e7be5a16b70daa0d1726a2ec4d3ca9
|
4
|
+
data.tar.gz: 94d944406202809244d7d4438c466bf6f7af8284
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2f63e1c0e2ee680fa92c6dfae02109cf7e79938eb852701d4b87fc2f5a40e1a1e520703838230e75169d9e33335e5e8c04cf497997b891cc11c8dac030a06f3
|
7
|
+
data.tar.gz: 9a763890d156cf60f2b9f0a2ef1d4a54d9266c7680c2e5799901a3a489b1f79ca00b8169066e4d6fb5a4559b9071b65497624a4f2c15b898263f2342b20144d1
|
data/Makefile
CHANGED
data/Makefile.common
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
# Ruby Common Big
|
3
|
-
#
|
3
|
+
# 2016-02-14
|
4
4
|
|
5
5
|
MV = mv -nv
|
6
6
|
RM = rm -rf
|
@@ -9,8 +9,8 @@ BUNDLER = bundle
|
|
9
9
|
BUNDLER_OPTIONS = --jobs=5 --retry=3
|
10
10
|
GEMSPEC_FILE = $(GEM_NAME).gemspec
|
11
11
|
|
12
|
-
.PHONY: all
|
13
|
-
all: setup
|
12
|
+
.PHONY: all
|
13
|
+
all: setup $(ALL_TARGETS_EXT)
|
14
14
|
|
15
15
|
.PHONY: setup
|
16
16
|
setup: .setup
|
data/README.md
CHANGED
@@ -9,10 +9,11 @@ The preferred method of installation is via RubyGems.org:
|
|
9
9
|
|
10
10
|
or via `Gemfile`:
|
11
11
|
|
12
|
-
gem 'osp', '~>0.
|
12
|
+
gem 'osp', '~>0.4'
|
13
13
|
|
14
14
|
## Project Links
|
15
15
|
|
16
|
+
- [Usage Video](https://asciinema.org/a/32521)
|
16
17
|
- [Blog Post about OSP](http://blog.fox21.at/2015/12/19/one-shall-pass-for-command-line.html)
|
17
18
|
- [Gem](https://rubygems.org/gems/osp)
|
18
19
|
- [Travis CI Repository](https://travis-ci.org/TheFox/osp)
|
data/bin/osp
CHANGED
@@ -8,15 +8,17 @@ require 'msgpack'
|
|
8
8
|
require 'osp'
|
9
9
|
|
10
10
|
|
11
|
-
options = {
|
11
|
+
@options = {
|
12
12
|
:database_path => "#{Dir.home}/.osp",
|
13
|
+
:database_lock_path => "#{Dir.home}/.osp~lock",
|
13
14
|
}
|
14
15
|
opts = OptionParser.new do |o|
|
15
16
|
o.banner = 'Usage: osp [options]'
|
16
17
|
o.separator('')
|
17
18
|
|
18
19
|
o.on('-d', '--database <path>', 'Path to the database file.') do |path|
|
19
|
-
options[:database_path] = path
|
20
|
+
@options[:database_path] = path
|
21
|
+
@options[:database_lock_path] = "#{path}~lock"
|
20
22
|
end
|
21
23
|
|
22
24
|
o.on_tail('--version', 'Show version.') do
|
@@ -44,6 +46,16 @@ puts "OSP - OneShallPass #{TheFox::OSP::VERSION}"
|
|
44
46
|
puts TheFox::OSP::HOMEPAGE
|
45
47
|
puts
|
46
48
|
|
49
|
+
if File.exist?(@options[:database_lock_path])
|
50
|
+
puts "WARNING: lock file exist: '#{@options[:database_lock_path]}'"
|
51
|
+
overwrite = @cli.ask('Overwrite? '){ |q| q.default = 'n' }.downcase
|
52
|
+
if overwrite == 'n'
|
53
|
+
puts 'Quit.'
|
54
|
+
exit
|
55
|
+
end
|
56
|
+
end
|
57
|
+
File.binwrite(@options[:database_lock_path], Process.pid)
|
58
|
+
|
47
59
|
puts 'Master Login'
|
48
60
|
email = @cli.ask(' Email: ')
|
49
61
|
password = @cli.ask('Password: '){ |q| q.echo = '*' }
|
@@ -71,7 +83,13 @@ def database_write_step(step, msg)
|
|
71
83
|
puts "#{step} #{msg}"
|
72
84
|
end
|
73
85
|
|
74
|
-
|
86
|
+
def remove_lock
|
87
|
+
if File.exist?(@options[:database_lock_path])
|
88
|
+
FileUtils.rm(@options[:database_lock_path])
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
@database = TheFox::OSP::Database.new(@options[:database_path], @osp)
|
75
93
|
@database.load_callback_method = self.method('database_load_step')
|
76
94
|
@database.write_callback_method = self.method('database_write_step')
|
77
95
|
begin
|
@@ -80,6 +98,7 @@ rescue Exception => e
|
|
80
98
|
puts
|
81
99
|
puts "FATAL ERROR: couldn't open database:"
|
82
100
|
puts "#{e}"
|
101
|
+
remove_lock
|
83
102
|
exit 1
|
84
103
|
end
|
85
104
|
|
@@ -95,8 +114,7 @@ def host_show(host, regenerate_password = false)
|
|
95
114
|
puts ' done'
|
96
115
|
end
|
97
116
|
|
98
|
-
puts
|
99
|
-
puts " Name: #{host.name}"
|
117
|
+
puts " Hostname: #{host.name}"
|
100
118
|
puts "Generation: #{host.generation}"
|
101
119
|
puts " Length: #{host.length}"
|
102
120
|
puts " Symbols: #{host.symbols}"
|
@@ -107,7 +125,11 @@ end
|
|
107
125
|
def host_edit(host = nil)
|
108
126
|
host = TheFox::OSP::Host.new(@osp) if host.nil?
|
109
127
|
|
110
|
-
|
128
|
+
puts
|
129
|
+
puts 'New Host'
|
130
|
+
puts
|
131
|
+
|
132
|
+
tmp = @cli.ask(' Hostname: ' + (!host.name.nil? ? "[#{host.name}]" : '') + ' ').strip.to_s
|
111
133
|
host.name = tmp if tmp != ''
|
112
134
|
host.name = nil if host.name == ''
|
113
135
|
if host.name.nil?
|
@@ -369,3 +391,5 @@ while true
|
|
369
391
|
puts
|
370
392
|
actions << @cli.ask('[nlsxwq?] > '){ |q| q.character = true }.downcase
|
371
393
|
end
|
394
|
+
|
395
|
+
remove_lock
|
data/lib/osp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|