vpnmaker 1.0.10 → 1.0.11

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.
Files changed (6) hide show
  1. data/Gemfile +2 -0
  2. data/Rakefile +0 -63
  3. data/VERSION +1 -1
  4. data/bin/vpnmaker +50 -70
  5. data/vpnmaker.gemspec +5 -2
  6. metadata +19 -3
data/Gemfile CHANGED
@@ -48,3 +48,5 @@ gem 'ipaddr_extensions'
48
48
  # reporting
49
49
  # gem 'ruport'
50
50
  # gem 'ruport-util'
51
+
52
+ gem 'ya_email_validator'
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
1
  # encoding: utf-8
2
-
3
2
  require 'rubygems'
4
3
  require 'bundler'
5
4
  begin
@@ -26,23 +25,6 @@ Jeweler::Tasks.new do |gem|
26
25
  end
27
26
  Jeweler::RubygemsDotOrgTasks.new
28
27
 
29
- # require 'rake/testtask'
30
- # Rake::TestTask.new(:test) do |test|
31
- # test.libs << 'lib' << 'test'
32
- # test.pattern = 'test/**/test_*.rb'
33
- # test.verbose = true
34
- # end
35
-
36
- # require 'rcov/rcovtask'
37
- # Rcov::RcovTask.new do |test|
38
- # test.libs << 'test'
39
- # test.pattern = 'test/**/test_*.rb'
40
- # test.verbose = true
41
- # test.rcov_opts << '--exclude "gems/*"'
42
- # end
43
-
44
- # task :default => :test
45
-
46
28
  require 'rdoc/task'
47
29
  Rake::RDocTask.new do |rdoc|
48
30
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
@@ -52,48 +34,3 @@ Rake::RDocTask.new do |rdoc|
52
34
  rdoc.rdoc_files.include('README*')
53
35
  rdoc.rdoc_files.include('lib/**/*.rb')
54
36
  end
55
-
56
- # require 'highline/import'
57
- # require File.join(File.dirname(__FILE__), 'vpnmaker')
58
-
59
- # def get_arg(argname, echo=true)
60
- # return ENV[argname] if ENV[argname]
61
- # ask("Value for #{argname}?") { |q| q.echo = false unless echo }
62
- # end
63
-
64
- # namespace :config do
65
- # desc 'Generate server config'
66
- # task :server => :environment do
67
- # puts $manager.config_generator.server
68
- # end
69
-
70
- # desc 'Generate client config'
71
- # task :client => :environment do
72
- # username = get_arg('username')
73
- # puts $manager.config_generator.client($manager.user(username))
74
- # end
75
- # end
76
-
77
- # namespace :user do
78
- # desc 'Create a new user'
79
- # task :create => :environment do
80
- # cn = get_arg('cn')
81
- # name = get_arg('name')
82
- # email = get_arg('email')
83
- # password = get_arg('password', false)
84
- # confirm_password = get_arg('confirm_password', false)
85
- # raise ArgumentError.new("Password mismatch") unless password == confirm_password
86
-
87
- # if password.length > 0
88
- # $manager.create_user(cn, name, email, password)
89
- # else
90
- # $manager.create_user(cn, name, email)
91
- # end
92
- # end
93
- # end
94
-
95
- # # Set up environment
96
- # task :environment do
97
- # vpndir = get_arg('vpndir')
98
- # $manager = VPNMaker::Manager.new(vpndir)
99
- # end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.10
1
+ 1.0.11
@@ -2,35 +2,20 @@
2
2
  require_relative '../lib/vpnmaker.rb'
3
3
  #require 'micro-optparse'
4
4
  #require 'highline'
5
+ require 'ya_email_validator'
5
6
  require 'highline/import'
6
7
  require 'main'
7
8
 
9
+ # This validates email addresses
10
+ class String; include YaEmailValidator; end
11
+
8
12
  #TODO: use ~/.vpnmaker .vpnmaker and /etc/vpnmaker | maybe vpnmakerrc
9
13
  module VPNMaker
10
14
  module CLI
11
- module RFC822
12
- EmailAddress = begin
13
- qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'
14
- dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'
15
- atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-' +
16
- '\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'
17
- quoted_pair = '\\x5c[\\x00-\\x7f]'
18
- domain_literal = "\\x5b(?:#{dtext}|#{quoted_pair})*\\x5d"
19
- quoted_string = "\\x22(?:#{qtext}|#{quoted_pair})*\\x22"
20
- domain_ref = atom
21
- sub_domain = "(?:#{domain_ref}|#{domain_literal})"
22
- word = "(?:#{atom}|#{quoted_string})"
23
- domain = "#{sub_domain}(?:\\x2e#{sub_domain})*"
24
- local_part = "#{word}(?:\\x2e#{word})*"
25
- addr_spec = "#{local_part}\\x40#{domain}"
26
- pattern = /\A#{addr_spec.force_encoding('ASCII-8BIT')}\z/
27
- end
28
- end
29
-
30
15
  class Options
31
16
  # main DSL
32
17
  Main do
33
- version '0.0.1'
18
+ version File.read(File.expand_path("../..", __FILE__) + "/VERSION")
34
19
  author 'Copyleft(cl) VoipScout - No rights reserved'
35
20
 
36
21
  mode('init') {
@@ -74,7 +59,7 @@ module VPNMaker
74
59
  required
75
60
  cast :string
76
61
  arity 1
77
- validate {|e| e =~ RFC822::EmailAddress}
62
+ validate {|e| e.email?}
78
63
  }
79
64
 
80
65
  } #mode 'cli'
@@ -90,46 +75,9 @@ module VPNMaker
90
75
  arity 1
91
76
  validate {|dir| File.directory?(File.expand_path(dir))}
92
77
  }
93
- def run
94
- name = params['conf_name'].value
95
- dir = params['new_dir_path'].value
96
-
97
- VPNMaker.generate name, dir
98
-
99
- data_dir = (File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + "_data")
100
- template_dir = (File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + "_templates")
101
- client_config_dir = (File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + "_client_configs")
102
78
 
103
- [data_dir, template_dir, client_config_dir].each {|dir| FileUtils.mkdir_p(dir)}
104
- lib_dir = File.dirname(File.expand_path __FILE__).gsub('/bin', '/lib')
105
- FileUtils.cp Dir.glob(lib_dir + "/*.haml"), template_dir
106
-
107
- if params['email'].given?
108
- initial_config = {
109
- :key_properties => {
110
- :country => params['country'].value,
111
- :province => params['province'].value,
112
- :city => params['city'].value,
113
- :organization => params['organization'].value,
114
- :organization_unit => params['organization_unit'].value,
115
- :common_name => params['common_name'].value,
116
- :name => params['key_name'].value,
117
- :email => params['email'].value
118
- },
119
- :site => {
120
- :data_dir => data_dir.split('/').last,
121
- :template_dir => template_dir.split('/').last,
122
- :client_conf_dir => client_config_dir.split('/').last
123
- }
124
- }
125
- example_config = YAML.load_file(lib_dir + "/example_vpnmaker_site.config.yaml").to_yaml.gsub(/\n|---/, "\n#")
126
- File.open((File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + ".config.yaml"), 'w') {|f| f.write(initial_config.to_yaml + example_config)}
127
- mgr = VPNMaker::Manager.new((File.expand_path(dir) + "/" + name + ".vpn"))
128
- mgr.build_ca
129
- say("Please edit files in #{template_dir} and #{dir}/#{name}.vpn/#{name}.config.yaml before proceeding further")
130
- else
131
- say('Time to mod yaml files')
132
- end
79
+ def run
80
+ get_init_config
133
81
  end
134
82
  }
135
83
 
@@ -294,23 +242,55 @@ EOS
294
242
 
295
243
  }
296
244
 
297
- # Global run() is overwritten by specific mode run
298
- def run
299
- puts "Hitting global run()"
300
- params.each {|p| pp "#{p.class} - #{p.name} => #{p.value}"}
301
- @opts = params
302
- pp @opts
303
- end
304
-
305
245
  def db
306
246
  VPNMaker::Manager.new params['dir'].value
307
247
  end
308
248
 
249
+ def get_init_config
250
+ name = params['conf_name'].value
251
+ dir = params['new_dir_path'].value
309
252
 
310
- end #
253
+ VPNMaker.generate name, dir
311
254
 
312
- end #class Options
255
+ data_dir = (File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + "_data")
256
+ template_dir = (File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + "_templates")
257
+ client_config_dir = (File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + "_client_configs")
258
+
259
+ [data_dir, template_dir, client_config_dir].each {|dir| FileUtils.mkdir_p(dir)}
260
+ lib_dir = File.dirname(File.expand_path __FILE__).gsub('/bin', '/lib')
261
+ FileUtils.cp Dir.glob(lib_dir + "/*.haml"), template_dir
262
+
263
+ if params['email'].given?
264
+ initial_config = {
265
+ :key_properties => {
266
+ :country => params['country'].value,
267
+ :province => params['province'].value,
268
+ :city => params['city'].value,
269
+ :organization => params['organization'].value,
270
+ :organization_unit => params['organization_unit'].value,
271
+ :common_name => params['common_name'].value,
272
+ :name => params['key_name'].value,
273
+ :email => params['email'].value
274
+ },
275
+ :site => {
276
+ :data_dir => data_dir.split('/').last,
277
+ :template_dir => template_dir.split('/').last,
278
+ :client_conf_dir => client_config_dir.split('/').last
279
+ }
280
+ }
313
281
 
282
+ example_config = YAML.load_file(lib_dir + "/example_vpnmaker_site.config.yaml").to_yaml.gsub(/\n|---/, "\n#")
283
+ File.open((File.expand_path(dir) + "/" + name + ".vpn" + "/" + name + ".config.yaml"), 'w') {|f| f.write(initial_config.to_yaml + example_config)}
284
+ mgr = VPNMaker::Manager.new((File.expand_path(dir) + "/" + name + ".vpn"))
285
+ mgr.build_ca
286
+ say("Please edit files in #{template_dir} and #{dir}/#{name}.vpn/#{name}.config.yaml before proceeding further")
287
+ else
288
+ say('Time to mod yaml files')
289
+ end
290
+ end
291
+
292
+ end # Main {}
293
+ end #class Options
314
294
  end #module CLI
315
295
  end #module VPNMaker
316
296
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "vpnmaker"
8
- s.version = "1.0.10"
8
+ s.version = "1.0.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Voip Scout"]
12
- s.date = "2012-05-11"
12
+ s.date = "2012-05-12"
13
13
  s.description = "haml templates and key tracking"
14
14
  s.email = "voipscout@gmail.com"
15
15
  s.executables = ["vpnmaker"]
@@ -55,6 +55,7 @@ Gem::Specification.new do |s|
55
55
  s.add_runtime_dependency(%q<gibberish>, [">= 0"])
56
56
  s.add_runtime_dependency(%q<chronic>, [">= 0"])
57
57
  s.add_runtime_dependency(%q<ipaddr_extensions>, [">= 0"])
58
+ s.add_runtime_dependency(%q<ya_email_validator>, [">= 0"])
58
59
  s.add_development_dependency(%q<pry>, [">= 0"])
59
60
  s.add_development_dependency(%q<pry-doc>, [">= 0"])
60
61
  s.add_development_dependency(%q<pry-rails>, [">= 0"])
@@ -72,6 +73,7 @@ Gem::Specification.new do |s|
72
73
  s.add_dependency(%q<gibberish>, [">= 0"])
73
74
  s.add_dependency(%q<chronic>, [">= 0"])
74
75
  s.add_dependency(%q<ipaddr_extensions>, [">= 0"])
76
+ s.add_dependency(%q<ya_email_validator>, [">= 0"])
75
77
  s.add_dependency(%q<pry>, [">= 0"])
76
78
  s.add_dependency(%q<pry-doc>, [">= 0"])
77
79
  s.add_dependency(%q<pry-rails>, [">= 0"])
@@ -90,6 +92,7 @@ Gem::Specification.new do |s|
90
92
  s.add_dependency(%q<gibberish>, [">= 0"])
91
93
  s.add_dependency(%q<chronic>, [">= 0"])
92
94
  s.add_dependency(%q<ipaddr_extensions>, [">= 0"])
95
+ s.add_dependency(%q<ya_email_validator>, [">= 0"])
93
96
  s.add_dependency(%q<pry>, [">= 0"])
94
97
  s.add_dependency(%q<pry-doc>, [">= 0"])
95
98
  s.add_dependency(%q<pry-rails>, [">= 0"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vpnmaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-11 00:00:00.000000000 Z
12
+ date: 2012-05-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: haml
@@ -107,6 +107,22 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: ya_email_validator
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
110
126
  - !ruby/object:Gem::Dependency
111
127
  name: pry
112
128
  requirement: !ruby/object:Gem::Requirement
@@ -311,7 +327,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
311
327
  version: '0'
312
328
  segments:
313
329
  - 0
314
- hash: 3119479742236297403
330
+ hash: -930937730295424088
315
331
  required_rubygems_version: !ruby/object:Gem::Requirement
316
332
  none: false
317
333
  requirements: