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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9ad26b1c10b870b57a7f93e87d959e2793cc428
4
- data.tar.gz: 73b18ffd7ba322d4e012d4a0be7b65d7c50e85d5
3
+ metadata.gz: 569423a826e7be5a16b70daa0d1726a2ec4d3ca9
4
+ data.tar.gz: 94d944406202809244d7d4438c466bf6f7af8284
5
5
  SHA512:
6
- metadata.gz: ec993b8319cdab6f467944092e2473f390ea172f8228548ee85e4f2064e61cc290c388f10355832ab3ca10c578d76dc759e3a0c054793069f753a49b34abd254
7
- data.tar.gz: 2e803c40d74bd5e7629b6f25650cf2431fbb1837e1b26b34904fb6957185356a90ecb018054b073655aeb8343607a8d09026bb2b00f0403bf861393326395469
6
+ metadata.gz: d2f63e1c0e2ee680fa92c6dfae02109cf7e79938eb852701d4b87fc2f5a40e1a1e520703838230e75169d9e33335e5e8c04cf497997b891cc11c8dac030a06f3
7
+ data.tar.gz: 9a763890d156cf60f2b9f0a2ef1d4a54d9266c7680c2e5799901a3a489b1f79ca00b8169066e4d6fb5a4559b9071b65497624a4f2c15b898263f2342b20144d1
data/Makefile CHANGED
@@ -3,6 +3,8 @@ GEM_NAME = osp
3
3
 
4
4
  include Makefile.common
5
5
 
6
+ # Email: root
7
+ # Password: password
6
8
  dev:
7
9
  RUBYOPT=-rbundler/setup ruby --debug ./bin/osp -d passwords.osp
8
10
 
data/Makefile.common CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  # Ruby Common Big
3
- # 2015-12-21
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 $(ALL_TARGETS_EXT)
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.3'
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
- @database = TheFox::OSP::Database.new(options[:database_path], @osp)
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
- tmp = @cli.ask(' Name: ' + (!host.name.nil? ? "[#{host.name}]" : '') + ' ').strip.to_s
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
@@ -1,9 +1,9 @@
1
1
 
2
2
  module TheFox
3
3
  module OSP
4
- RELEASE_ID = 0
5
- VERSION = '0.3.2'
6
- DATE = '2015-12-25'
4
+ RELEASE_ID = 6
5
+ VERSION = '0.4.0'
6
+ DATE = '2016-03-05'
7
7
  HOMEPAGE = 'https://github.com/TheFox/osp'
8
8
  end
9
9
  end
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.3.2
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: 2015-12-25 00:00:00.000000000 Z
11
+ date: 2016-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest