helper_classes 0.3.5 → 1.9.13.pre.10

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: fae65be85ffe47f9f08c0454d77b14a9cb65c1ec
4
- data.tar.gz: f3391e02c3bb88c9d30ab6539f68dfd33ec5b1e4
3
+ metadata.gz: 96a715987ec443ba019a87e2894095b3e1506ed9
4
+ data.tar.gz: db222b62513305e232cfd1bfceeb70096e490527
5
5
  SHA512:
6
- metadata.gz: 945c14738b13388cbe87c9b0f1fa31579d4b34c52fded06710b8deea1112fa31ff2111eae18be4332114c411e60f1cb0e7e3bbf97657cc8627d9238bf37de64e
7
- data.tar.gz: 047748387d592edb99ce9e40885ff6bf0c9687106e11f459eb7b1658f77df168aed8baf06700bbbd95e39fea37e8e71ee1468c506b9bbf1d9391033aa8bc3a99
6
+ metadata.gz: d6cacdbb88c73871991dc541a06ed4201fe5d119c33cc7781d89450963d45939225c4f22fc338a9c151dade50e0bbe8d42b043d03414a137fd09e6c40ff60eb8
7
+ data.tar.gz: 39244111e0e56a3c769251f42070389d446ed5019a4b30a9a155a2c696d83985b2df3914eaec7e2f051d11c32c9ed810869f4c962982bd148e0344e94570db5c
data/Gemfile ADDED
File without changes
@@ -0,0 +1,7 @@
1
+ GEM
2
+ specs:
3
+
4
+ PLATFORMS
5
+ ruby
6
+
7
+ DEPENDENCIES
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'helper_classes'
3
- s.version = '0.3.5'
4
- s.date = '2015-06-20'
3
+ s.version = '1.9.13-10'
4
+ s.date = '2017-10-30'
5
5
  s.summary = 'Hash._accessor Array.to_sym and DPuts'
6
6
  s.description = 'Added accessors to Hash, to_sym to Array and a nice debugging-interface called DPuts'
7
7
  s.authors = ['Linus Gasser']
8
- s.email = 'ineiti@linusetviviane.ch'
8
+ s.email = 'ineiti.blue'
9
9
 
10
10
  s.files = `if [ -d '.git' ]; then git ls-files -z; fi`.split("\x0")
11
11
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
@@ -14,5 +14,5 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.homepage =
16
16
  'https://github.com/ineiti/HelperClasses'
17
- s.license = 'GPLv3'
17
+ s.license = 'GPL-3.0'
18
18
  end
@@ -1,3 +1,3 @@
1
- Dir.glob('helper_classes/*.rb').each { |d|
1
+ Dir.glob(__dir__ + '/helper_classes/*.rb').each { |d|
2
2
  require d
3
3
  }
@@ -50,11 +50,11 @@ module HelperClasses
50
50
  end
51
51
  DPuts.mutex.synchronize do
52
52
  width = DPuts.terminal_width.to_i || 160
53
- width = [width - 30.0, 10].max
53
+ width = [width - 40.0, 10].max
54
54
  file, func = call.split(' ')
55
- file = file[/^.*\/([^.]*)/, 1]
56
- who = (':' + n.to_s + ':' + file.to_s +
57
- func.to_s).ljust(30, ['X', 'x', '*', '-', '.', ' '][n])
55
+ file = file[/^.*\/(.*):in/, 1]
56
+ who = (':' + n.to_s + ':' + file.to_s + "--" +
57
+ func.to_s).ljust(40, ['X', 'x', '*', '-', '.', ' '][n])
58
58
  lines = []
59
59
  pos = 0
60
60
  # Don't show enormous strings
@@ -2,7 +2,7 @@ require 'helper_classes/dputs'
2
2
  require 'helper_classes/system'
3
3
 
4
4
  module HelperClasses
5
- module Service
5
+ module Platform
6
6
  attr_accessor :system, :services
7
7
 
8
8
  extend self
@@ -20,7 +20,9 @@ module HelperClasses
20
20
 
21
21
  @services = {
22
22
  samba: {ArchLinux: %w( smbd nmbd ), Ubuntu: %w(smbd nmbd)},
23
- cups: {ArchLinux: 'org.cups.cupsd', Ubuntu: 'cupsd'}
23
+ cups: {ArchLinux: 'org.cups.cupsd', Ubuntu: 'cupsd'},
24
+ net_start: {ArchLinux: '/usr/bin/netctl start', Ubuntu: 'ifup'},
25
+ net_stop: {ArchLinux: '/usr/bin/netctl stop', Ubuntu: 'ifdown'},
24
26
  }
25
27
 
26
28
  def service_get(service)
@@ -58,35 +60,35 @@ module HelperClasses
58
60
 
59
61
  def start(service)
60
62
  service_run(service, {ArchLinux: 'systemctl start ##',
61
- Ubuntu: '/etc/init.d/## start',
63
+ Ubuntu: 'systemctl start ##',
62
64
  MacOSX: nil}
63
65
  )
64
66
  end
65
67
 
66
68
  def stop(service)
67
69
  service_run(service, {ArchLinux: 'systemctl stop ##',
68
- Ubuntu: '/etc/init.d/## stop',
70
+ Ubuntu: 'systemctl stop ##',
69
71
  MacOSX: nil}
70
72
  )
71
73
  end
72
74
 
73
75
  def restart(service)
74
76
  service_run(service, {ArchLinux: 'systemctl restart ##',
75
- Ubuntu: '/etc/init.d/## restart',
77
+ Ubuntu: 'systemctl restart ##',
76
78
  MacOSX: nil}
77
79
  )
78
80
  end
79
81
 
80
82
  def enable(service)
81
83
  service_run(service, {ArchLinux: 'systemctl enable ##',
82
- Ubuntu: nil,
84
+ Ubuntu: 'systemctl enable ##',
83
85
  MacOSX: nil}
84
86
  )
85
87
  end
86
88
 
87
89
  def disable(service)
88
90
  service_run(service, {ArchLinux: 'systemctl disable ##',
89
- Ubuntu: nil,
91
+ Ubuntu: 'systemctl disable ##',
90
92
  MacOSX: nil}
91
93
  )
92
94
  end
@@ -109,5 +111,39 @@ module HelperClasses
109
111
  disable(service)
110
112
  stop(service)
111
113
  end
114
+
115
+ def net_start(iface)
116
+ c = "#{@services[:net_start][@system]} #{iface}"
117
+ if !System.run_bool(c)
118
+ log_msg :Services, "Command #{c} failed"
119
+ return false
120
+ end
121
+ return true
122
+ end
123
+
124
+ def net_stop(iface)
125
+ c = "#{@services[:net_stop][@system]} #{iface}"
126
+ if !System.run_bool(c)
127
+ log_msg :Services, "Command #{c} failed"
128
+ return false
129
+ end
130
+ return true
131
+ end
132
+
133
+ def net_restart(iface)
134
+ net_stop(iface)
135
+ net_start(iface)
136
+ end
137
+
138
+ def net_status(iface, dev)
139
+ case @system
140
+ when :ArchLinux
141
+ return System.run_str("netctl status #{iface} | grep Active") =~ /: active/
142
+ when :Ubuntu
143
+ return System.run_str("ifconfig | grep #{dev}") != ''
144
+ else
145
+ return false
146
+ end
147
+ end
112
148
  end
113
- end
149
+ end
@@ -34,7 +34,7 @@ module HelperClasses
34
34
  end
35
35
  end
36
36
 
37
- def iptables(*args)
37
+ def iptables(*args, check: false)
38
38
  if !@iptables_cmd
39
39
  if System.exists?('iptables')
40
40
  @iptables_cmd = 'iptables'
@@ -45,7 +45,11 @@ module HelperClasses
45
45
  end
46
46
 
47
47
  if @iptables_cmd != ''
48
- System.run_str("#{@iptables_cmd} #{@iptables_wait} #{args.join(' ')}")
48
+ if check
49
+ System.run_bool("#{@iptables_cmd} #{@iptables_wait} #{args.join(' ')} 2>/dev/null")
50
+ else
51
+ System.run_str("#{@iptables_cmd} #{@iptables_wait} #{args.join(' ')}")
52
+ end
49
53
  else
50
54
  return ''
51
55
  end
@@ -58,17 +62,19 @@ module HelperClasses
58
62
  ret = System.run_str('ntpq -c "rv 0 stratum"')
59
63
  return 16 if ret =~ /connection refused/i
60
64
  stratum = ret.gsub(/.*=/, '')
61
- return stratum
65
+ return stratum.to_i
62
66
  end
63
67
 
64
68
  # Waits for NTP to be synchronized or for _n_ seconds
65
69
  def ntpd_wait(n = 60)
66
70
  Thread.new {
67
- (1..n).each {
68
- break if System.ntpdstratum < 16
69
- sleep 1
70
- }
71
- yield
71
+ System.rescue_all do
72
+ (1..n).each {
73
+ break if System.ntpdoffset
74
+ sleep 1
75
+ }
76
+ yield
77
+ end
72
78
  }
73
79
  end
74
80
 
@@ -79,8 +85,8 @@ module HelperClasses
79
85
  ret = System.run_str('ntpq -c "rv 0 stratum,offset"')
80
86
  return nil if ret =~ /connection refused/i
81
87
  stratum, offset = ret.split(/, /).collect { |s| s.gsub(/.*=/, '') }
82
- return nil if stratum == '16'
83
- return offset
88
+ #return nil if stratum == '16'
89
+ return offset.to_f
84
90
  end
85
91
  end
86
- end
92
+ end
@@ -0,0 +1,25 @@
1
+ require 'test/unit'
2
+
3
+ class TC_Arraysym < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_simple
9
+ a = {}
10
+ a._hi = 'there'
11
+ assert_equal 'there', a[:hi]
12
+ end
13
+
14
+ def test_replace
15
+ a = {'one' => 1, two: 2}
16
+ assert_equal 1, a._one
17
+ assert_equal 2, a._two
18
+
19
+ a._one = 3
20
+ a._two = 4
21
+ assert_equal 3, a._one
22
+ assert_equal 4, a._two
23
+ assert_equal ['one', :two], a.keys
24
+ end
25
+ end
@@ -7,9 +7,9 @@ class TC_Service < Test::Unit::TestCase
7
7
  end
8
8
 
9
9
  def test_service_get
10
- Service.system = :ArchLinux
10
+ Platform.system = :ArchLinux
11
11
 
12
- assert_equal %w(smbd nmbd), Service.service_get(:samba)
13
- assert_equal 'dnsmasq', Service.service_get(:dnsmasq)
12
+ assert_equal %w(smbd nmbd), Platform.service_get(:samba)
13
+ assert_equal 'dnsmasq', Platform.service_get(:dnsmasq)
14
14
  end
15
15
  end
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
- $LOAD_PATH.push '../lib', '.'
2
+ require 'bundler/setup'
3
+ $LOAD_PATH.push '.', '../lib'
3
4
 
4
5
  require 'test/unit'
5
6
  require 'helper_classes'
6
7
  include HelperClasses
7
8
 
8
9
  tests = Dir.glob( 'hc_*.rb' )
9
- #tests = %w( )
10
+ tests = %w( hashaccessor )
10
11
 
11
12
  tests.each{|t|
12
13
  begin
metadata CHANGED
@@ -1,23 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: helper_classes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 1.9.13.pre.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linus Gasser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-20 00:00:00.000000000 Z
11
+ date: 2017-10-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Added accessors to Hash, to_sym to Array and a nice debugging-interface
14
14
  called DPuts
15
- email: ineiti@linusetviviane.ch
15
+ email: ineiti.blue
16
16
  executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - ".gitignore"
21
+ - Gemfile
22
+ - Gemfile.lock
21
23
  - LICENSE
22
24
  - README.md
23
25
  - helper_classes.gemspec
@@ -25,11 +27,12 @@ files:
25
27
  - lib/helper_classes/arraysym.rb
26
28
  - lib/helper_classes/dputs.rb
27
29
  - lib/helper_classes/hashaccessor.rb
30
+ - lib/helper_classes/platform.rb
28
31
  - lib/helper_classes/readconfig.rb
29
- - lib/helper_classes/service.rb
30
32
  - lib/helper_classes/system.rb
31
33
  - lib/helper_classes/timing.rb
32
34
  - lib/helper_classes/virtual.rb
35
+ - test/hc_hashaccessor.rb
33
36
  - test/hc_service.rb
34
37
  - test/test.rb
35
38
  - test/test_arraysym.rb
@@ -39,7 +42,7 @@ files:
39
42
  - test/test_system.rb
40
43
  homepage: https://github.com/ineiti/HelperClasses
41
44
  licenses:
42
- - GPLv3
45
+ - GPL-3.0
43
46
  metadata: {}
44
47
  post_install_message:
45
48
  rdoc_options: []
@@ -52,16 +55,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
52
55
  version: '0'
53
56
  required_rubygems_version: !ruby/object:Gem::Requirement
54
57
  requirements:
55
- - - ">="
58
+ - - ">"
56
59
  - !ruby/object:Gem::Version
57
- version: '0'
60
+ version: 1.3.1
58
61
  requirements: []
59
62
  rubyforge_project:
60
- rubygems_version: 2.2.2
63
+ rubygems_version: 2.6.13
61
64
  signing_key:
62
65
  specification_version: 4
63
66
  summary: Hash._accessor Array.to_sym and DPuts
64
67
  test_files:
68
+ - test/hc_hashaccessor.rb
65
69
  - test/hc_service.rb
66
70
  - test/test.rb
67
71
  - test/test_arraysym.rb