local_pac 0.5.0 → 0.6.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.
- data/.travis.yml +1 -1
- data/Gemfile.lock +1 -3
- data/app/controllers/git_hook_controller.rb +25 -4
- data/app/controllers/lookup_controller.rb +1 -0
- data/app/locales/en.yml +9 -1
- data/bin/local_pac +5 -129
- data/config.ru +2 -2
- data/features/{show_status.feature_ → show_status.feature} +2 -1
- data/features/step_definitions.rb +4 -0
- data/lib/local_pac.rb +9 -2
- data/lib/local_pac/actions/get_system_information.rb +2 -2
- data/lib/local_pac/actions/handle_error.rb +26 -0
- data/lib/local_pac/actions/initialize_application.rb +71 -0
- data/lib/local_pac/actions/reload_local_storage.rb +2 -0
- data/lib/local_pac/actions/show_application_status.rb +39 -0
- data/lib/local_pac/actions/show_pac_file.rb +29 -0
- data/lib/local_pac/actions/validate_pac_file.rb +34 -0
- data/lib/local_pac/cli/main.rb +122 -0
- data/lib/local_pac/cli/reload.rb +8 -4
- data/lib/local_pac/cli/show.rb +34 -0
- data/lib/local_pac/cli/validate.rb +22 -0
- data/lib/local_pac/config.rb +1 -1
- data/lib/local_pac/error_handler.rb +60 -0
- data/lib/local_pac/exceptions.rb +6 -0
- data/lib/local_pac/git_storage.rb +30 -10
- data/lib/local_pac/pac_file_validator.rb +17 -2
- data/lib/local_pac/version.rb +1 -1
- data/local_pac.gemspec +0 -2
- data/script/acceptance_test +4 -0
- data/script/bootstrap +5 -0
- data/script/ci +3 -0
- data/script/release +3 -0
- data/script/unit_test +3 -0
- data/spec/actions/handle_error_spec.rb +29 -0
- data/spec/{initializer_spec.rb → actions/initialize_application_spec.rb} +3 -3
- data/spec/{application_status_spec.rb → actions/show_application_status_spec.rb} +5 -5
- data/spec/actions/show_pac_file_spec.rb +36 -0
- data/spec/actions/validate_pac_file_spec.rb +62 -0
- data/spec/error_handler_spec.rb +70 -0
- data/spec/features/check_git_push_spec.rb +34 -6
- data/spec/git_repository_spec.rb +1 -0
- data/spec/git_storage_spec.rb +33 -0
- data/spec/pac_file_validator_spec.rb +19 -10
- metadata +30 -26
- data/lib/local_pac/application_status.rb +0 -37
- data/lib/local_pac/initializer.rb +0 -69
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
local_pac (0.
|
4
|
+
local_pac (0.5.0)
|
5
5
|
activesupport
|
6
6
|
addressable
|
7
7
|
bootstrap-sass
|
8
8
|
compass
|
9
9
|
facter
|
10
|
-
git_hook-pre_receive (~> 0.1.0)
|
11
10
|
haml
|
12
11
|
i18n
|
13
12
|
pac
|
@@ -105,7 +104,6 @@ GEM
|
|
105
104
|
ruby-progressbar (~> 1.3)
|
106
105
|
gherkin (2.12.2)
|
107
106
|
multi_json (~> 1.3)
|
108
|
-
git_hook-pre_receive (0.1.0)
|
109
107
|
github-markup (1.0.1)
|
110
108
|
haml (4.0.5)
|
111
109
|
tilt
|
@@ -48,19 +48,40 @@ module LocalPac
|
|
48
48
|
)
|
49
49
|
end
|
50
50
|
|
51
|
+
error Exceptions::ApiKeyInvalid do
|
52
|
+
halt 403, json(
|
53
|
+
error_summary: I18n.t('errors.invalid_api_key.summary'),
|
54
|
+
error_details: I18n.t('errors.invalid_api_key.details', name: env['sinatra.error']),
|
55
|
+
result: :failure,
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
59
|
+
error Exceptions::ReloadOfLocalStorageFailed do
|
60
|
+
halt 500, json(
|
61
|
+
error_summary: I18n.t('errors.reload_of_local_storage_failed.summary'),
|
62
|
+
error_details: I18n.t('errors.reload_of_local_storage_failed.details'),
|
63
|
+
result: :failure,
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
before do
|
68
|
+
fail Exceptions::ApiKeyInvalid unless params['api_key'] == LocalPac.config.api_key
|
69
|
+
end
|
70
|
+
|
51
71
|
post '/pre-receive' do
|
52
72
|
param :old_commit_id, String, required: true
|
53
73
|
param :new_commit_id, String, required: true
|
54
74
|
param :reference, String, required: true
|
55
75
|
param :api_key, String, required: true
|
56
76
|
|
57
|
-
repo = GitRepository.new(LocalPac.config.local_storage)
|
58
|
-
files = repo.added_files(params[:old_commit_id], params[:new_commit_id])
|
59
77
|
validator = PacFileValidator.new
|
60
78
|
|
61
|
-
LocalPac.
|
79
|
+
repo = GitStorage.new(LocalPac.config.local_storage)
|
80
|
+
repo.each_added_pac_file(params[:old_commit_id], params[:new_commit_id]) do |f|
|
81
|
+
fail Exceptions::PacFileInvalid, f.path unless validator.valid?(f)
|
82
|
+
end
|
62
83
|
|
63
|
-
|
84
|
+
LocalPac::Actions::ReloadLocalStorage.new([LocalPac::App::FileServeController, LocalPac::App::LookupController]).run
|
64
85
|
|
65
86
|
json result: :success
|
66
87
|
end
|
data/app/locales/en.yml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
2
|
en:
|
3
3
|
errors:
|
4
|
-
|
4
|
+
reload_of_local_storage_failed:
|
5
|
+
summary: Reload failure...
|
6
|
+
details: The reload of local storage failed. Please ask the administrator for support.
|
7
|
+
invalid_api_key:
|
8
|
+
summary: Invalid API-key...
|
9
|
+
details: Your request does not contain a valid api key.
|
10
|
+
invalid_proxy_pac:
|
11
|
+
summary: Invalid ProxyPac-file...
|
12
|
+
details: The requested proxy.pac-file "%{name}" is invalid.
|
5
13
|
unknown_proxy_pac:
|
6
14
|
summary: Unknown ProxyPac-file...
|
7
15
|
details: Sorry, but I cannot find proxy.pac-file "%{name}".
|
data/bin/local_pac
CHANGED
@@ -1,135 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
|
-
$LOAD_PATH
|
3
|
+
$LOAD_PATH << ::File.expand_path('../../lib', __FILE__)
|
4
4
|
require 'local_pac'
|
5
5
|
|
6
|
-
module LocalPac
|
7
|
-
module Cli
|
8
|
-
class Main < Thor
|
9
|
-
class_option :config_file, type: :string, desc: 'Config file'
|
10
|
-
class_option :log_level, default: 'info', type: :string, desc: 'Log level for ui logging'
|
11
|
-
class_option :debug_mode, type: :boolean, desc: 'Run application in debug mode'
|
12
6
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
desc 'serve', 'Serve pacfiles'
|
18
|
-
option :access_log, type: :string, desc: 'File to write access log to'
|
19
|
-
option :listen, type: :string, desc: 'Listen for requests'
|
20
|
-
option :environment, type: :string, desc: 'Rack environment for application'
|
21
|
-
option :with, type: :string, default: 'puma', desc: 'Server used to serve proxy pac'
|
22
|
-
def serve
|
23
|
-
LocalPac.config = LocalPac::Config.new(options[:config_file]) if options[:config_file]
|
24
|
-
LocalPac.config.access_log = options[:access_log] if options[:access_log]
|
25
|
-
LocalPac.config.log_level = options[:log_level] if options[:log_level]
|
26
|
-
LocalPac.config.debug_mode = options[:debug_mode] if options[:debug_mode]
|
27
|
-
LocalPac.config.environment = options[:environment] if options[:environment]
|
28
|
-
LocalPac.config.listen = options[:listen] if options[:listen]
|
29
|
-
LocalPac.config.lock
|
30
|
-
|
31
|
-
LocalPac.ui_logger.level = LocalPac.config.log_level
|
32
|
-
LocalPac.enable_debug_mode if LocalPac.config.debug_mode
|
33
|
-
|
34
|
-
LocalPac.ui_logger.debug('Options: ' + options.to_s)
|
35
|
-
LocalPac.ui_logger.debug("Config:\n" + LocalPac.config.to_s)
|
36
|
-
|
37
|
-
command_klass = case options[:with].to_sym
|
38
|
-
when :puma
|
39
|
-
ServerCommands::Puma
|
40
|
-
when :rackup
|
41
|
-
ServerCommands::Rackup
|
42
|
-
else
|
43
|
-
ServerCommands::Rackup
|
44
|
-
end
|
45
|
-
|
46
|
-
command = command_klass.new(
|
47
|
-
listen: LocalPac.config.listen,
|
48
|
-
environment: LocalPac.config.environment,
|
49
|
-
)
|
50
|
-
|
51
|
-
ENV['DEBUG'] = LocalPac.config.debug_mode.to_s if LocalPac.config.debug_mode
|
52
|
-
ENV['ACCESS_LOG'] = LocalPac.config.access_log.to_s if LocalPac.config.access_log
|
53
|
-
ENV['LOG_LEVEL'] = LocalPac.config.log_level.to_s if LocalPac.config.log_level
|
54
|
-
|
55
|
-
Server.new(command).start
|
56
|
-
end
|
57
|
-
|
58
|
-
desc 'init', 'Create files/directories to use local_pac in dir or $PWD'
|
59
|
-
option :force, type: :boolean, default: false, desc: 'Overwrite existing files?'
|
60
|
-
option :pre_seed, type: :boolean, default: false, desc: 'Add some example files to git repository'
|
61
|
-
option :config_file, type: :string, desc: 'Path to config file'
|
62
|
-
|
63
|
-
option :local_storage, type: :string, desc: 'Path to local storage'
|
64
|
-
option :pid_file, type: :string, desc: 'Path to pid file'
|
65
|
-
option :access_log, type: :string, desc: 'Path to access log'
|
66
|
-
option :sass_cache, type: :string, desc: 'Path to sass cache'
|
67
|
-
option :reload_config_signal, type: :string, desc: 'Signal to reload config'
|
68
|
-
option :reload_storage_signal, type: :string, desc: 'Signal to reload local storage'
|
69
|
-
option :api_key, type: :string, desc: 'API key for communication between git hook and web application'
|
70
|
-
option :listen, type: :string, desc: 'Listen statement for rack server'
|
71
|
-
option :environment, type: :string, desc: 'Default environment for rack server'
|
72
|
-
|
73
|
-
option :create_pid_directory, type: :boolean, desc: 'Create pid directory', default: true
|
74
|
-
option :create_log_directory, type: :boolean, desc: 'Create log directory', default: true
|
75
|
-
option :create_sass_cache, type: :boolean, desc: 'Create sass cache directory', default: true
|
76
|
-
option :create_local_storage, type: :boolean, desc: 'Create local storage directory', default: true
|
77
|
-
option :create_pre_receive_hook, type: :boolean, desc: 'Create pre receive hook', default: true
|
78
|
-
option :create_config_file, type: :boolean, desc: 'Create config_directory', default: true
|
79
|
-
def init
|
80
|
-
LocalPac.config = LocalPac::Config.new(options[:config_file]) if options[:config_file]
|
81
|
-
|
82
|
-
LocalPac.config.log_level = options[:log_level] if options[:log_level]
|
83
|
-
LocalPac.config.debug_mode = options[:debug_mode] if options[:debug_mode]
|
84
|
-
LocalPac.config.local_storage = options[:local_storage] if options[:local_storage]
|
85
|
-
LocalPac.config.pid_file = options[:pid_file] if options[:pid_file]
|
86
|
-
LocalPac.config.access_log = options[:access_log] if options[:access_log]
|
87
|
-
LocalPac.config.sass_cache = options[:sass_cache] if options[:sass_cache]
|
88
|
-
LocalPac.config.reload_config_signal = options[:reload_config_signal] if options[:reload_config_signal]
|
89
|
-
LocalPac.config.reload_storage_signal = options[:reload_storage_signal] if options[:reload_storage_signal]
|
90
|
-
LocalPac.config.log_level = options[:log_level] if options[:log_level]
|
91
|
-
LocalPac.config.api_key = options[:api_key] if options[:api_key]
|
92
|
-
LocalPac.config.listen = options[:listen] if options[:listen]
|
93
|
-
LocalPac.config.environment = options[:environment] if options[:environment]
|
94
|
-
|
95
|
-
LocalPac.config.lock
|
96
|
-
|
97
|
-
LocalPac.ui_logger.level = LocalPac.config.log_level
|
98
|
-
LocalPac.enable_debug_mode if LocalPac.config.debug_mode
|
99
|
-
|
100
|
-
LocalPac.ui_logger.debug('Options: ' + options.to_s)
|
101
|
-
LocalPac.ui_logger.debug("Config:\n" + LocalPac.config.to_s)
|
102
|
-
|
103
|
-
Initializer.new(
|
104
|
-
force: options[:force],
|
105
|
-
pre_seed: options[:pre_seed],
|
106
|
-
create_pid_directory: options[:create_pid_directory],
|
107
|
-
create_log_directory: options[:create_log_directory],
|
108
|
-
create_sass_cache: options[:create_sass_cache],
|
109
|
-
create_local_storage: options[:create_local_storage],
|
110
|
-
create_pre_receive_hook: options[:create_pre_receive_hook],
|
111
|
-
create_config_file: options[:create_config_file],
|
112
|
-
).run
|
113
|
-
end
|
114
|
-
|
115
|
-
desc 'status', 'Show status of local_pac: configuration, known proxy pacs, server running etc.'
|
116
|
-
def status
|
117
|
-
LocalPac.config = LocalPac::Config.new(options[:config_file]) if options[:config_file]
|
118
|
-
LocalPac.config.log_level = options[:log_level] if options[:log_level]
|
119
|
-
LocalPac.config.debug_mode = options[:debug_mode] if options[:debug_mode]
|
120
|
-
LocalPac.config.lock
|
121
|
-
|
122
|
-
LocalPac.ui_logger.level = LocalPac.config.log_level
|
123
|
-
LocalPac.enable_debug_mode if LocalPac.config.debug_mode
|
124
|
-
|
125
|
-
ApplicationStatus.new.show
|
126
|
-
end
|
127
|
-
|
128
|
-
desc 'reload', 'Reload configuration, local storage etc.'
|
129
|
-
option :pid_file, type: :string, desc: 'Pid file of daemon'
|
130
|
-
subcommand 'reload', LocalPac::Cli::Reload
|
131
|
-
end
|
132
|
-
|
133
|
-
end
|
7
|
+
begin
|
8
|
+
LocalPac::Cli::Main.start
|
9
|
+
rescue StandardError => e
|
10
|
+
LocalPac::Actions::HandleError.new(e).run
|
134
11
|
end
|
135
|
-
LocalPac::Cli::Main.start
|
data/config.ru
CHANGED
@@ -17,7 +17,7 @@ trap LocalPac.config.reload_config_signal do
|
|
17
17
|
LocalPac.ui_logger.warn 'Reload of configuration requested'
|
18
18
|
LocalPac::Actions::ReloadConfiguration.new.run
|
19
19
|
LocalPac.ui_logger.info 'Reload of configuration successful'
|
20
|
-
rescue => e
|
20
|
+
rescue Exceptions::ReloadOfLocalStorageFailed => e
|
21
21
|
LocalPac.ui_logger.fatal "Reload of configuration failed: #{e.message}"
|
22
22
|
end
|
23
23
|
end
|
@@ -27,7 +27,7 @@ trap LocalPac.config.reload_storage_signal do
|
|
27
27
|
LocalPac.ui_logger.warn 'Reload of local storage requested'
|
28
28
|
LocalPac::Actions::ReloadLocalStorage.new([LocalPac::App::FileServeController, LocalPac::App::LookupController]).run
|
29
29
|
LocalPac.ui_logger.info 'Reload of local storage successful'
|
30
|
-
rescue => e
|
30
|
+
rescue Exceptions::ReloadOfLocalStorageFailed => e
|
31
31
|
LocalPac.ui_logger.fatal "Reload of local storage failed: #{e.message}"
|
32
32
|
end
|
33
33
|
end
|
@@ -4,6 +4,7 @@ Feature: Show status
|
|
4
4
|
In order to make less mistakes
|
5
5
|
|
6
6
|
@wip
|
7
|
+
@slow_process
|
7
8
|
Scenario: Default
|
8
9
|
Given a file named "config.yaml" with:
|
9
10
|
"""
|
@@ -12,7 +13,7 @@ Feature: Show status
|
|
12
13
|
access_log: 'log/access.log'
|
13
14
|
executable: 'bin/local_pac'
|
14
15
|
"""
|
15
|
-
When I successfully run `local_pac status`
|
16
|
+
When I successfully run `local_pac status --config-file config.yaml`
|
16
17
|
Then the stdout should contain:
|
17
18
|
"""
|
18
19
|
pid_file: 'run/pid'
|
data/lib/local_pac.rb
CHANGED
@@ -35,6 +35,7 @@ require 'active_support/cache'
|
|
35
35
|
require 'active_support/core_ext/string/inflections'
|
36
36
|
|
37
37
|
require 'local_pac/exceptions'
|
38
|
+
require 'local_pac/error_handler'
|
38
39
|
require 'local_pac/config'
|
39
40
|
require 'local_pac/ui_logger'
|
40
41
|
require 'local_pac/main'
|
@@ -54,6 +55,8 @@ require 'local_pac/template_repository'
|
|
54
55
|
require 'local_pac/template_file'
|
55
56
|
require 'local_pac/pac_file_validator'
|
56
57
|
require 'local_pac/actions/show_available_proxy_pac_files'
|
58
|
+
require 'local_pac/actions/show_pac_file'
|
59
|
+
require 'local_pac/actions/validate_pac_file'
|
57
60
|
require 'local_pac/actions/get_system_information'
|
58
61
|
require 'local_pac/actions/send_signal'
|
59
62
|
require 'local_pac/actions/create_repository'
|
@@ -67,12 +70,16 @@ require 'local_pac/actions/print_title'
|
|
67
70
|
require 'local_pac/actions/reload_configuration'
|
68
71
|
require 'local_pac/actions/reload_local_storage'
|
69
72
|
require 'local_pac/actions/add_examples_to_local_storage'
|
73
|
+
require 'local_pac/actions/show_application_status'
|
74
|
+
require 'local_pac/actions/initialize_application'
|
75
|
+
require 'local_pac/actions/handle_error'
|
70
76
|
require 'local_pac/server_commands/rackup'
|
71
77
|
require 'local_pac/server_commands/puma'
|
72
78
|
require 'local_pac/cli/helper'
|
73
79
|
require 'local_pac/cli/reload'
|
74
|
-
require 'local_pac/
|
75
|
-
require 'local_pac/
|
80
|
+
require 'local_pac/cli/show'
|
81
|
+
require 'local_pac/cli/validate'
|
82
|
+
require 'local_pac/cli/main'
|
76
83
|
require 'local_pac/local_storage'
|
77
84
|
require 'local_pac/server'
|
78
85
|
require 'local_pac/proxy_pac/html_table_style'
|
@@ -21,11 +21,11 @@ module LocalPac
|
|
21
21
|
private
|
22
22
|
|
23
23
|
def data
|
24
|
-
Timeout::timeout(
|
24
|
+
Timeout::timeout(10) do
|
25
25
|
Facter.to_hash.keep_if { |key,_| fields.include?(key.to_s) }
|
26
26
|
end
|
27
27
|
rescue Timeout::Error
|
28
|
-
LocalPac.ui_logger.warn 'Getting environment information took to long. Please make sure the name resolver is
|
28
|
+
LocalPac.ui_logger.warn 'Getting environment information took to long. Please make sure the name resolver is available. This might cause the latency.'
|
29
29
|
{}
|
30
30
|
end
|
31
31
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module LocalPac
|
3
|
+
module Actions
|
4
|
+
class HandleError
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
attr_reader :exception, :original_message, :handler_klass
|
9
|
+
|
10
|
+
public
|
11
|
+
|
12
|
+
def initialize(exception, handler_klass = ErrorHandler)
|
13
|
+
@exception = exception.class
|
14
|
+
@original_message = exception.message
|
15
|
+
@handler_klass = handler_klass
|
16
|
+
end
|
17
|
+
|
18
|
+
def run
|
19
|
+
handler = handler_klass.find exception
|
20
|
+
handler.original_message = original_message
|
21
|
+
|
22
|
+
handler.run
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module LocalPac
|
2
|
+
module Actions
|
3
|
+
class InitializeApplication
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
attr_reader :config, :options
|
8
|
+
|
9
|
+
public
|
10
|
+
|
11
|
+
def initialize(options = {}, config = LocalPac.config)
|
12
|
+
@options = options
|
13
|
+
@config = config
|
14
|
+
end
|
15
|
+
|
16
|
+
def run
|
17
|
+
create_pid_directory if options[:create_pid_directory]
|
18
|
+
create_log_directory if options[:create_log_directory]
|
19
|
+
create_sass_cache if options[:create_sass_cache]
|
20
|
+
create_local_storage if options[:create_local_storage]
|
21
|
+
create_pre_receive_hook if options[:create_pre_receive_hook]
|
22
|
+
create_config_file if options[:create_config_file]
|
23
|
+
pre_seed if options[:pre_seed]
|
24
|
+
|
25
|
+
show_example_config
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def create_pid_directory
|
31
|
+
LocalPac.ui_logger.info "Creating pid directory: #{::File.dirname(config.pid_file)}"
|
32
|
+
Actions::CreateDirectory.new(::File.dirname(config.pid_file), force: options[:force]).run
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_log_directory
|
36
|
+
LocalPac.ui_logger.info "Creating log directory: #{::File.dirname(config.access_log)}"
|
37
|
+
Actions::CreateDirectory.new(::File.dirname(config.access_log), force: options[:force]).run
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_sass_cache
|
41
|
+
LocalPac.ui_logger.info "Creating sass cache #{config.sass_cache}"
|
42
|
+
Actions::CreateDirectory.new(config.sass_cache, force: options[:force]).run
|
43
|
+
end
|
44
|
+
|
45
|
+
def create_local_storage
|
46
|
+
LocalPac.ui_logger.info "Creating local storage: #{config.local_storage}"
|
47
|
+
Actions::CreateRepository.new(config.local_storage, bare: true, force: options[:force]).run
|
48
|
+
end
|
49
|
+
|
50
|
+
def create_pre_receive_hook
|
51
|
+
LocalPac.ui_logger.info "Creating pre-receive hook in local storage \"#{config.local_storage}\"."
|
52
|
+
Actions::CreateFile.new(:'git-hook.rb', ::File.join(config.local_storage, 'hooks', 'pre-receive'), Data.new(config), force: options[:force], executable: true).run
|
53
|
+
end
|
54
|
+
|
55
|
+
def create_config_file
|
56
|
+
LocalPac.ui_logger.info "Creating config file at \"#{config.config_file}\"."
|
57
|
+
Actions::CreateFile.new(:'example-config', config.config_file, Data.new(config), force: options[:force], create_directories: true).run
|
58
|
+
end
|
59
|
+
|
60
|
+
def pre_seed
|
61
|
+
LocalPac.ui_logger.info "Adding examples to repository at #{config.local_storage}/examples"
|
62
|
+
Actions::AddExamplesToLocalStorage.new(config.local_storage).run
|
63
|
+
end
|
64
|
+
|
65
|
+
def show_example_config
|
66
|
+
LocalPac.ui_logger.info "Showing the configuration of local_pac on your system."
|
67
|
+
Actions::CreateOutput.new(:'example-config', $stdout, Data.new(config)).run
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module LocalPac
|
3
|
+
module Actions
|
4
|
+
class ShowApplicationStatus
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
include Pager
|
9
|
+
|
10
|
+
attr_reader :should_page
|
11
|
+
|
12
|
+
public
|
13
|
+
|
14
|
+
def initialize(options = {})
|
15
|
+
@should_page = options.fetch(:pager, :true)
|
16
|
+
config = options.fetch(:config, LocalPac.config)
|
17
|
+
|
18
|
+
@actions = []
|
19
|
+
@actions << Actions::PrintTitle.new('System Information')
|
20
|
+
@actions << Actions::GetSystemInformation.new
|
21
|
+
@actions << Actions::PrintNewline.new(2)
|
22
|
+
@actions << Actions::PrintTitle.new('Application Configuration')
|
23
|
+
@actions << Actions::ShowConfig.new
|
24
|
+
@actions << Actions::PrintNewline.new(2)
|
25
|
+
@actions << Actions::PrintTitle.new('Process Information')
|
26
|
+
@actions << Actions::ShowProcessInformation.new(config.pid_file)
|
27
|
+
@actions << Actions::PrintNewline.new(2)
|
28
|
+
@actions << Actions::PrintTitle.new('Available Proxy.Pac-Files')
|
29
|
+
@actions << Actions::ShowAvailableProxyPacFiles.new(config.local_storage)
|
30
|
+
end
|
31
|
+
|
32
|
+
def run
|
33
|
+
page if should_page
|
34
|
+
|
35
|
+
@actions.each(&:run)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|