Skip to content

Commit 95c1929

Browse files
committedSep 5, 2019
improve error handling, add set to monitor to initializer
1 parent c20474e commit 95c1929

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
class SetDeviceToMonitorService
22
def self.set(interface=nil)
3-
interface ||= YAML.load(File.read('./config/config.yml'))['device']
3+
config_file = YAML.load(File.read('./config/config.yml'))
4+
return false if !config_file
5+
interface = config_file['device']
6+
return false if !interface
47
set_to_monitor(interface)
58
check_device(interface)
69
end
@@ -13,12 +16,8 @@ def self.check_device(interface)
1316
end
1417

1518
def self.set_to_monitor(interface)
16-
unless interface.empty?
17-
`sudo ip link set #{interface} down`
18-
`sudo iwconfig #{interface} mode monitor`
19-
`sudo ip link set #{interface} up`
20-
else
21-
"ERROR: No device specified! \n"
22-
end
19+
`sudo ip link set #{interface} down`
20+
`sudo iwconfig #{interface} mode monitor`
21+
`sudo ip link set #{interface} up`
2322
end
2423
end

‎config/environments/production.rb

+4
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@
7373
# Use a different logger for distributed setups.
7474
# require 'syslog/logger'
7575
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
76+
config.after_initialize do
77+
Rails.application.load_tasks
78+
Rake::Task['set_to_monitor'].invoke
79+
end
7680

7781
if ENV["RAILS_LOG_TO_STDOUT"].present?
7882
logger = ActiveSupport::Logger.new(STDOUT)

‎lib/tasks/set_to_monitor.rake

+2
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ task :set_to_monitor do
44
specified_interface = ENV["interface"]
55
if SetDeviceToMonitorService.set(specified_interface)
66
printf "Success\n"
7+
else
8+
printf "Failure! Please ensure you ran 'rake set_interface'\n"
79
end
810
end

0 commit comments

Comments
 (0)
Please sign in to comment.