Class: RailsPwnerer::Scaffolds::HookDyndns

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/rails_pwnerer/scaffolds/hook_dyndns.rb

Overview

hooks up the dynamic dns service

Class Method Summary collapse

Instance Method Summary collapse

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_daemonObject

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