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 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