Class: RailsPwnerer::Scaffolds::HookDyndns
- Inherits:
-
Object
- Object
- RailsPwnerer::Scaffolds::HookDyndns
- Includes:
- Base
- Defined in:
- lib/rails_pwnerer/scaffolds/hook_dyndns.rb
Overview
hooks up the dynamic dns service
Class Method Summary collapse
-
.go(ddns_hostname, ddns_username, ddns_password) ⇒ Object
standalone runner.
Instance Method Summary collapse
-
#configure(ddns_hostname, ddns_username, ddns_password) ⇒ Object
configures ddclient.
-
#enable_daemon ⇒ Object
patches the ddclient boot script and configuration to enable the daemon.
-
#run(ddns_hostname, ddns_username, ddns_password) ⇒ Object
runner.
Methods included from Base
_setup_unix, _setup_windows, all_packages, all_packages_without_caching, #atomic_erase, #atomic_read, #atomic_write, #best_package_matching, #check_rails_root, #control_boot_script, #cpu_cores, #current_user, #gem_exists?, #gid_for_username, #group_for_username, #hook_boot_script, #install_gem, #install_gems, #install_package, #install_package_impl, #install_package_matching, #install_packages, #kill_tree, #os_distro, package_info_hash, #path_to_boot_script, #path_to_boot_script_defaults, #path_to_gemdir, #process_info, #prompt_user_for_password, #remove_package, #remove_packages, #search_packages, #uid_for_username, #unroll_collection, #update_all_packages, #update_all_packages_impl, #update_gems, #update_package_metadata, #upgrade_gem, #upgrade_gems, #upgrade_package, #upgrade_package_impl, #upgrade_packages, #with_package_source, #with_temp_dir
Class Method Details
.go(ddns_hostname, ddns_username, ddns_password) ⇒ Object
standalone runner
43 44 45 |
# File 'lib/rails_pwnerer/scaffolds/hook_dyndns.rb', line 43 def self.go(ddns_hostname, ddns_username, ddns_password) self.new.run ddns_hostname, ddns_username, ddns_password end |
Instance Method Details
#configure(ddns_hostname, ddns_username, ddns_password) ⇒ Object
configures ddclient
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rails_pwnerer/scaffolds/hook_dyndns.rb', line 18 def configure(ddns_hostname, ddns_username, ddns_password) File.open(RailsPwnerer::Config.path_to(:ddclient_config), 'w') do |f| f << <<END_CONFIG pid=/var/run/ddclient.pid use=web, web=checkip.dyndns.com/, web-skip='IP Address' protocol=dyndns2 server=members.dyndns.org login=#{ddns_username} password='#{ddns_password}' #{ddns_hostname} END_CONFIG end end |
#enable_daemon ⇒ Object
patches the ddclient boot script and configuration to enable the daemon
7 8 9 10 11 12 13 14 15 |
# File 'lib/rails_pwnerer/scaffolds/hook_dyndns.rb', line 7 def enable_daemon boot_script = File.open(path_to_boot_script('ddclient'), 'r') { |f| f.read } boot_script.gsub!(/run_daemon\=false/, 'run_daemon=true') File.open(path_to_boot_script('ddclient'), 'w') { |f| f.write boot_script } dd_defaults = File.open(path_to_boot_script_defaults('ddclient'), 'r') { |f| f.read } dd_defaults.gsub!(/run_daemon\=\"false\"/, 'run_daemon="true"') File.open(path_to_boot_script_defaults('ddclient'), 'w') { |f| f.write dd_defaults } end |
#run(ddns_hostname, ddns_username, ddns_password) ⇒ Object
runner
35 36 37 38 39 40 |
# File 'lib/rails_pwnerer/scaffolds/hook_dyndns.rb', line 35 def run(ddns_hostname, ddns_username, ddns_password) control_boot_script 'ddclient', :stop configure ddns_hostname, ddns_username, ddns_password enable_daemon control_boot_script 'ddclient', :start end |