brisk 0.2.0 → 0.2.1

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: 399ca02fec584349bbd680f46241c3fbb2ccd460
4
- data.tar.gz: bd23cd438ac9b8a2565e8e953198bc5ddb4d7144
3
+ metadata.gz: 76fbd2e35a7b55d3bd7601cb83f8536c0614f4a6
4
+ data.tar.gz: aeb7b76485f8cd579b477b8f690ab80837020901
5
5
  SHA512:
6
- metadata.gz: 1a6c748372dc5f9dcf5353bc9f9fc4a09b9717f1dbf7be9b81e5c956164618ea7b9aecea66bcdaa0c0db9c6e449774208480fc8f83f255eccac21f6ead2252d8
7
- data.tar.gz: ddce60ca094595a5145a472ca97e68751df3bcec8a4fe43e8aa0b39f8fa1fb85b147d4c530ca5d5739bcbce900d56410247917e29cee95c9c9580632ccbaf255
6
+ metadata.gz: 769b4414c67e1a44a74911e9de84625b61a7120361119232d87cd7e4e48016ab8361a192bb15751d925ff345e5dca910d8b0b65e8acf47436db1d09c4cfdf08d
7
+ data.tar.gz: e5a7a6c482986629f202b79dd294b46682ea89ce0bcb17c38885e9e84a763bf87f87d6940876d708af8209d3269de9f51fd6a13306ef6eee7b721c3a1976ae03
data/lib/brisk.rb CHANGED
@@ -57,7 +57,7 @@ class Valet < Thor
57
57
 
58
58
  desc "domain DOMAIN", "Sets a new domain"
59
59
  def domain(value)
60
- old_domain = Configuration.read['domain']
60
+ old_domain = JSON.parse(FileSystem.read(Configuration.path))['domain']
61
61
 
62
62
  Configuration.update_domain(value)
63
63
 
@@ -69,7 +69,7 @@ class Valet < Thor
69
69
 
70
70
  desc "secure", "Secures the site with a SSL connection"
71
71
  def secure
72
- domain = dirname = File.basename(Dir.getwd) + '.' + Configuration.read['domain']
72
+ domain = dirname = File.basename(Dir.getwd) + '.' + JSON.parse(FileSystem.read(Configuration.path))['domain']
73
73
 
74
74
  Site.secure(domain)
75
75
  Configuration.add('secured', File.basename(Dir.getwd))
@@ -80,7 +80,7 @@ class Valet < Thor
80
80
 
81
81
  desc "unsecure", "Unsecures the site from a SSL connection"
82
82
  def unsecure
83
- domain = dirname = File.basename(Dir.getwd) + '.' + Configuration.read['domain']
83
+ domain = dirname = File.basename(Dir.getwd) + '.' + JSON.parse(FileSystem.read(Configuration.path))['domain']
84
84
 
85
85
  Site.unsecure(domain)
86
86
  Configuration.remove('secured', File.basename(Dir.getwd))
data/lib/brisk/caddy.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'brisk/configuration'
2
2
  require 'brisk/constants'
3
+ require 'brisk/file_system'
4
+
3
5
  class Caddy
4
6
 
5
7
  def self.install
@@ -24,26 +26,22 @@ class Caddy
24
26
  end
25
27
 
26
28
  def self.install_caddy_file
27
- FileUtils.copy(File.expand_path("../../stubs/Caddyfile", __dir__), Constants.valet_home + '/Caddyfile')
28
- file = File.read(Constants.valet_home + '/Caddyfile')
29
+ FileSystem.copy_file(File.expand_path("../../stubs/Caddyfile", __dir__), Constants.valet_home + '/Caddyfile')
30
+ file = FileSystem.read(Constants.valet_home + '/Caddyfile')
29
31
  new_file = file.gsub("BRISK_HOME_PATH", Constants.valet_home)
30
- File.open(Constants.valet_home + '/Caddyfile', 'w+') do |file|
31
- file.write(new_file)
32
- end
32
+ File.write(Constants.valet_home + '/Caddyfile', new_file)
33
33
  end
34
34
 
35
35
  def self.install_caddy_directory
36
- Configuration.create_dir(Constants.valet_home + '/Caddy')
37
- File.new(Constants.valet_home + '/Caddy/.keep', 'w')
36
+ FileSystem.create_dir(Constants.valet_home + '/Caddy')
37
+ FileSystem.create_file(Constants.valet_home + '/Caddy/.keep')
38
38
  end
39
39
 
40
40
  def self.install_caddy_daemon
41
- path = File.expand_path("../../stubs/caddy_daemon.plist", __dir__)
42
- file = File.read(path)
41
+ path = FileSystem.get_path("../../stubs/caddy_daemon.plist", __dir__)
42
+ file = FileSystem.read(path)
43
43
  new_file = file.gsub("BRISK_HOME_PATH", Constants.valet_home)
44
- File.open("/Library/LaunchDaemons/com.frankleef.caddyBriskServer.plist", "w+") do |file|
45
- file.write(new_file)
46
- end
44
+ FileSystem.write("/Library/LaunchDaemons/com.frankleef.caddyBriskServer.plist", new_file)
47
45
  end
48
46
 
49
47
  def self.restart
@@ -1,61 +1,39 @@
1
1
  require 'brisk/constants'
2
+ require 'brisk/file_system'
2
3
  require 'fileutils'
3
4
  require 'json'
4
5
 
5
6
  class Configuration
6
7
 
7
8
  def self.install
8
- create_dir(Constants.valet_home)
9
- create_dir(Constants.valet_home + '/Certificates')
9
+ FileSystem.create_dir(Constants.valet_home)
10
+ FileSystem.create_dir(Constants.valet_home + '/Certificates')
10
11
 
11
- unless file_exists?(path)
12
- write({:domain => 'dev', 'paths' => [], 'secured' => []})
12
+ unless FileSystem.file_exists?(path)
13
+ config = {:domain => 'dev', 'paths' => [], 'secured' => []}
14
+ FileSystem.write(path, config.to_json)
13
15
  end
14
16
  end
15
17
 
16
- def self.create_dir(directory)
17
- unless dir_exists?(directory)
18
- FileUtils.mkdir_p(directory, :mode => 0755)
19
- end
20
- end
21
-
22
- def self.dir_exists?(directory)
23
- File.directory?(directory)
24
- end
25
-
26
- def self.file_exists?(file)
27
- File.file?(file)
28
- end
29
-
30
18
  def self.add(key, value)
31
- config = read
19
+ config = JSON.parse(FileSystem.read(Configuration.path))
32
20
  config[key].push(value)
33
- write(config)
21
+ FileSystem.write(Configuration.path, config.to_json)
34
22
  end
35
23
 
36
24
  def self.remove(key, value)
37
- config = read
25
+ config = JSON.parse(FileSystem.read(path))
38
26
  config[key].delete_if {|i| i == value}
39
- write(config)
40
- end
41
-
42
- def self.path
43
- return Constants.valet_home + '/config.json'
44
- end
45
-
46
- def self.read
47
- JSON.parse(File.read(path))
48
- end
49
-
50
- def self.write(config)
51
- File.open(path, "w+") do |f|
52
- f.write(config.to_json)
53
- end
27
+ FileSystem.write(Configuration.path, config.to_json)
54
28
  end
55
29
 
56
30
  def self.update_domain(domain)
57
- config = read
31
+ config = JSON.parse(FileSystem.read(path))
58
32
  config['domain'] = domain
59
- write(config)
33
+ FileSystem.write(Configuration.path, config.to_json)
34
+ end
35
+
36
+ def self.path
37
+ return Constants.valet_home + '/config.json'
60
38
  end
61
39
  end
data/lib/brisk/dnsmasq.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'colorize'
2
+ require 'brisk/file_system'
2
3
 
3
4
  class DnsMasq
4
5
 
@@ -41,30 +42,28 @@ class DnsMasq
41
42
 
42
43
  def self.create_custom_configuration(domain)
43
44
 
44
- unless File.file?(config_path)
45
- FileUtils.copy(example_config_path,config_path)
45
+ unless FileSystem.file_exists?(config_path)
46
+ FileSystem.copy_file(example_config_path,config_path)
46
47
  end
47
48
 
48
- if File.read(config_path).index(dnsmasq_path) == nil
49
- File.open(config_path, 'a') { |f| f.puts "conf-file=" + dnsmasq_path }
49
+ if FileSystem.read(config_path).index(dnsmasq_path) == nil
50
+ FileSystem.append(config_path, "conf-file=#{dnsmasq_path}")
50
51
  end
51
52
 
52
- File.write(dnsmasq_path, "address=/.#{domain}/127.0.0.1")
53
+ FileSystem.write(dnsmasq_path, "address=/.#{domain}/127.0.0.1")
53
54
  end
54
55
 
55
56
  def self.create_resolver(domain)
56
- unless File.directory?(resolver_path)
57
- FileUtils.mkdir_p(resolver_path)
57
+ unless FileSystem.dir_exists?(resolver_path)
58
+ FileSystem.create_dir(resolver_path)
58
59
  end
59
60
 
60
61
  # File.write('etc/resolver/dev', 'nameserver 127.0.0.1')
61
- File.open("#{resolver_path}/#{domain}", 'w+') do |f|
62
- f.write('nameserver 127.0.0.1')
63
- end
62
+ File.write("#{resolver_path}/#{domain}", "nameserver 127.0.0.1")
64
63
  end
65
64
 
66
65
  def self.update_domain(domain, old_domain)
67
- File.delete("#{resolver_path}/#{old_domain}")
66
+ FileSystem.delete("#{resolver_path}/#{old_domain}")
68
67
 
69
68
  install(domain)
70
69
  end
@@ -0,0 +1,46 @@
1
+ class FileSystem
2
+
3
+ def self.create_dir(directory)
4
+ unless dir_exists?(directory)
5
+ FileUtils.mkdir_p(directory, :mode => 0755)
6
+ end
7
+ end
8
+
9
+ def self.create_file(file, permissions = 'w')
10
+ File.new(file, permissions)
11
+ end
12
+
13
+ def self.copy_file(from, to)
14
+ FileUtils.copy(from, to)
15
+ end
16
+
17
+ def self.get_path(file, path)
18
+ File.expand_path(file, path)
19
+ end
20
+
21
+ def self.dir_exists?(directory)
22
+ File.directory?(directory)
23
+ end
24
+
25
+ def self.file_exists?(file)
26
+ File.file?(file)
27
+ end
28
+
29
+ def self.read(path)
30
+ File.read(path)
31
+ end
32
+
33
+ def self.write(file, value)
34
+ File.open(file, "w+") do |f|
35
+ f.write(value)
36
+ end
37
+ end
38
+
39
+ def self.append(file, value)
40
+ File.open(file, 'a') { |f| f.puts value}
41
+ end
42
+
43
+ def self.delete(file)
44
+ File.delete(file)
45
+ end
46
+ end
@@ -1,3 +1,5 @@
1
+ require 'brisk/file_system'
2
+
1
3
  class BriskRequestHelper
2
4
 
3
5
  def initialize(env)
@@ -16,6 +18,6 @@ class BriskRequestHelper
16
18
  end
17
19
 
18
20
  def get_config
19
- config = JSON.parse(File.read(valet_home_path + '/config.json'))
21
+ config = JSON.parse(FileSystem.read(valet_home_path + '/config.json'))
20
22
  end
21
23
  end
@@ -1,7 +1,4 @@
1
1
  require 'brisk/server/proxy'
2
- require 'brisk/server/server_middleware'
3
- require 'brisk/server/https_middleware'
4
2
 
5
3
  use ServerMiddleware
6
- use HttpsMiddleware
7
4
  run AppProxy.new
@@ -1,19 +1,23 @@
1
+ require 'brisk/file_system'
2
+
1
3
  class Pid
2
4
 
5
+ def self.get(port)
6
+ `sudo lsof -i tcp:#{port} | grep ruby | awk '{ print $2; }'`
7
+ end
8
+
3
9
  def self.write(path, pid)
4
- File.open("#{path}/pid.txt", 'w+') do |f|
5
- f.write(pid)
6
- end
10
+ FileSystem.write("#{path}/pid.txt", pid)
7
11
 
8
12
  sleep(1)
9
13
  end
10
14
 
11
15
  def self.read(path)
12
- File.read("#{path}/tmp/pids/thin.pid")
16
+ FileSystem.read("#{path}/tmp/pids/thin.pid")
13
17
  end
14
18
 
15
19
  def self.exists?(path)
16
- File.file?("#{path}/tmp/pids/thin.pid")
20
+ FileSystem.file_exists?("#{path}/tmp/pids/thin.pid")
17
21
  end
18
22
 
19
23
  def self.alive?(pid)
@@ -19,6 +19,13 @@ class AppProxy < Rack::Proxy
19
19
  config = request.get_config
20
20
  site_path = Site.get_site_paths(config, site)
21
21
 
22
+ port = "3001"
23
+ port = "3003" if Site.is_secured?(config, site)
24
+
25
+ # Check if site is running
26
+ # check if site is equal to written site
27
+ # Check if site is secured
28
+ # otherwise, kill process
22
29
  # Kill existing servers, so we don't get conflitcs
23
30
  if Server.is_running(valet_home_path)
24
31
 
@@ -34,7 +41,7 @@ class AppProxy < Rack::Proxy
34
41
  return env
35
42
  end
36
43
 
37
- existing_pid = Server.read(valet_home_path)
44
+ existing_pid = Pid.get(port)
38
45
  Server.shutdown(existing_pid)
39
46
  end
40
47
 
@@ -43,12 +50,10 @@ class AppProxy < Rack::Proxy
43
50
 
44
51
  Server.start_https(site_path)
45
52
  # Check if proccess is up and running
46
- started = Server.is_started(site_path)
53
+ started = Server.is_started(site_path, port)
47
54
 
48
- # Write the pid to a file so we can delete it later on
55
+ # Write the pid to a file so we can delete it later on
49
56
  if started
50
- pid = Pid.read(site_path)
51
- Pid.write(valet_home_path, pid)
52
57
  Site.write_site(valet_home_path, site)
53
58
  end
54
59
 
@@ -64,12 +69,10 @@ class AppProxy < Rack::Proxy
64
69
  Server.start(site_path)
65
70
 
66
71
  # Check if proccess is up and running
67
- started = Server.is_started(site_path)
72
+ started = Server.is_started(site_path, port)
68
73
 
69
74
  # Write the pid to a file so we can delete it later on
70
75
  if started
71
- pid = Pid.read(site_path)
72
- Pid.write(valet_home_path, pid)
73
76
  Site.write_site(valet_home_path, site)
74
77
  end
75
78
 
@@ -1,19 +1,21 @@
1
1
  require 'brisk/server/pid'
2
+ require 'brisk/file_system'
2
3
 
3
4
  class Server
4
5
 
5
6
  def self.is_running(path)
6
- File.file?("#{path}/pid.txt")
7
- end
8
-
9
- def self.read(path)
10
- File.read("#{path}/pid.txt")
7
+ FileSystem.file_exists?("#{path}/pid.txt")
11
8
  end
12
9
 
13
10
  def self.kill(path)
14
- if is_running(path)
15
- pid = read path
16
- shutdown pid
11
+ http = Pid.get("3001")
12
+ https = Pid.get("3003")
13
+ unless http.nil?
14
+ shutdown http
15
+ end
16
+
17
+ unless https.nil?
18
+ shutdown https
17
19
  end
18
20
  end
19
21
 
@@ -25,17 +27,18 @@ class Server
25
27
  spawn "cd #{path} && /usr/local/bin/thin start -d -R config.ru -a localhost -p 3003 --ssl"
26
28
  end
27
29
 
28
- def self.is_started(path, counter = 0)
30
+ def self.is_started(path, port)
29
31
  sleep(0.5)
30
-
31
- if Pid.exists?(path)
32
- pid = Pid.read(path)
32
+
33
+ pid = Pid.get(port)
34
+
35
+ unless pid.nil?
33
36
  if Pid.alive?(pid)
34
37
  return true
35
38
  end
36
39
  end
37
40
 
38
- is_started(path, counter + 1)
41
+ is_started(path, port)
39
42
  end
40
43
 
41
44
  def self.shutdown(pid)
@@ -6,14 +6,12 @@ class Site
6
6
  def self.secure(url)
7
7
  unsecure(url)
8
8
 
9
- Configuration.create_dir(certificates_path)
9
+ FileSystem.create_dir(certificates_path)
10
10
  create_certificate(url)
11
11
 
12
12
  caddy_file = build_secure_caddy_file(url)
13
13
 
14
- File.open("#{Constants.valet_home}/Caddy/#{url}", "w+") do |f|
15
- f.write(caddy_file)
16
- end
14
+ FileSystem.write("#{Constants.valet_home}/Caddy/#{url}", caddy_file)
17
15
  end
18
16
 
19
17
  def self.create_certificate(url)
data/lib/brisk/thin.rb CHANGED
@@ -16,7 +16,7 @@ class Thin
16
16
 
17
17
  install_daemon
18
18
  install_secure_daemon
19
-
19
+ install_site_daemon
20
20
  end
21
21
 
22
22
  def self.update
@@ -26,27 +26,32 @@ class Thin
26
26
  end
27
27
 
28
28
  def self.install_daemon
29
- path = File.expand_path("../../stubs/daemon.plist", __dir__)
30
- server = File.expand_path("server/config.ru", __dir__)
29
+ path = FileSystem.get_path("../../stubs/daemon.plist", __dir__)
30
+ server = FileSystem.get_path("server/config.ru", __dir__)
31
31
 
32
- file = File.read(path)
32
+ file = FileSystem.read(path)
33
33
 
34
34
  new_file = file.gsub("SERVER_PATH", server)
35
- File.open("/Library/LaunchDaemons/com.frankleef.briskServer.plist", "w+") do |file|
36
- file.write(new_file)
37
- end
35
+
36
+ FileSystem.write("/Library/LaunchDaemons/com.frankleef.briskServer.plist", new_file)
38
37
  end
39
38
 
40
39
  def self.install_secure_daemon
41
- path = File.expand_path("../../stubs/secure_daemon.plist", __dir__)
42
- server = File.expand_path("server/config.ru", __dir__)
40
+ path = FileSystem.get_path("../../stubs/secure_daemon.plist", __dir__)
41
+ server = FileSystem.get_path("server/config.ru", __dir__)
43
42
 
44
- file = File.read(path)
43
+ file = FileSystem.read(path)
45
44
 
46
45
  new_file = file.gsub("SERVER_PATH", server)
47
- File.open("/Library/LaunchDaemons/com.frankleef.briskSecureServer.plist", "w+") do |file|
48
- file.write(new_file)
49
- end
46
+ FileSystem.write("/Library/LaunchDaemons/com.frankleef.briskSecureServer.plist", new_file)
47
+ end
48
+
49
+ def self.install_site_daemon
50
+ path = FileSystem.get_path("../../stubs/remove_site.plist", __dir__)
51
+ file = FileSystem.read(path)
52
+
53
+ new_file = file.gsub("USER", ENV["HOME"])
54
+ FileSystem.write("/Library/LaunchDaemons/com.frankleef.removeSite.plist", new_file)
50
55
  end
51
56
 
52
57
  def self.download
@@ -70,10 +75,12 @@ class Thin
70
75
  def self.start
71
76
  system "launchctl load /Library/LaunchDaemons/com.frankleef.briskServer.plist > /dev/null"
72
77
  system "launchctl load /Library/LaunchDaemons/com.frankleef.briskSecureServer.plist > /dev/null"
78
+ system "launchctl load /Library/LaunchDaemons/com.frankleef.removeSite.plist > /dev/null"
73
79
  end
74
80
 
75
81
  def self.stop
76
82
  system "launchctl unload /Library/LaunchDaemons/com.frankleef.briskServer.plist > /dev/null"
77
83
  system "launchctl unload /Library/LaunchDaemons/com.frankleef.briskSecureServer.plist > /dev/null"
84
+ system "launchctl unload /Library/LaunchDaemons/com.frankleef.removeSite.plist > /dev/null"
78
85
  end
79
86
  end
data/lib/brisk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Brisk
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.frankleef.removeSite</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>rm</string>
10
+ <string>USER/.brisk/site.txt</string>
11
+ </array>
12
+ <key>RunAtLoad</key>
13
+ <true/>
14
+ <key>StandardOutput</key>
15
+ <string>/tmp/com.frankleef.removeSite.out</string>
16
+ <key>StandardErrorPath</key>
17
+ <string>/tmp/com.frankleef.removeSite.err</string>
18
+ </dict>
19
+ </plist>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brisk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-17 00:00:00.000000000 Z
11
+ date: 2016-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,10 +122,10 @@ files:
122
122
  - lib/brisk/configuration.rb
123
123
  - lib/brisk/constants.rb
124
124
  - lib/brisk/dnsmasq.rb
125
+ - lib/brisk/file_system.rb
125
126
  - lib/brisk/rerun.rb
126
127
  - lib/brisk/server/brisk_request_helper.rb
127
128
  - lib/brisk/server/config.ru
128
- - lib/brisk/server/https_middleware.rb
129
129
  - lib/brisk/server/pid.rb
130
130
  - lib/brisk/server/proxy.rb
131
131
  - lib/brisk/server/server.rb
@@ -136,6 +136,7 @@ files:
136
136
  - stubs/Caddyfile
137
137
  - stubs/caddy_daemon.plist
138
138
  - stubs/daemon.plist
139
+ - stubs/remove_site.plist
139
140
  - stubs/secureCaddyfile
140
141
  - stubs/secure_daemon.plist
141
142
  homepage: https://www.github.com/frankieleef/brisk
@@ -1,18 +0,0 @@
1
- require 'brisk/server/site'
2
- require 'brisk/server/brisk_request_helper'
3
- class HttpsMiddleware
4
-
5
- def initialize(app)
6
- @app = app
7
- end
8
-
9
- def call(env)
10
- request = BriskRequestHelper.new env
11
- site = request.get_site
12
- #
13
- # return @app.call(env) unless Site.is_secured?(site)
14
-
15
-
16
- @app.call(env)
17
- end
18
- end