osp 0.3.2 → 0.4.0
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.
- 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
|