2015-11-02 04:37:27 +02:00
|
|
|
require 'yaml'
|
|
|
|
|
|
|
|
CONFIGURATIONS = YAML.load_file('configurations.yml')['configurations']
|
|
|
|
CONFIG_DIR = File.expand_path(File.dirname(__FILE__))
|
|
|
|
OUT_DIR = File.expand_path(File.join(File.dirname(__FILE__), "out"))
|
|
|
|
|
2015-11-04 16:10:17 +02:00
|
|
|
def mixins(name)
|
|
|
|
CONFIGURATIONS[name]['mixins'].each do |mixin|
|
|
|
|
`cp -rp #{CONFIG_DIR}/files/#{mixin}/* #{OUT_DIR}/#{name}/files`
|
2015-11-02 04:37:27 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-11-04 16:10:17 +02:00
|
|
|
def wifi(name)
|
|
|
|
config_path = File.join(OUT_DIR, name, "/files/etc/config/wireless")
|
|
|
|
wlans = CONFIGURATIONS[name]['wlans']
|
2015-11-02 04:37:27 +02:00
|
|
|
wlan_config = File.read(config_path)
|
|
|
|
|
|
|
|
wlans.each do |id, wlan|
|
2019-10-28 12:18:30 +02:00
|
|
|
wlan_config.sub!("<radio#{id}-channel>", wlan['channel'].to_s)
|
2015-11-02 04:37:27 +02:00
|
|
|
wlan_config.sub!("<wlan#{id}-macaddr>", wlan['bssid'].to_s)
|
2019-10-30 15:19:29 +02:00
|
|
|
wlan_config.sub!("<wlan#{id}-txpower>", wlan['txpower'].to_s)
|
2022-10-10 17:26:39 +03:00
|
|
|
wlan_config.sub!("<wlan#{id}-key>", wlan['key'].to_s)
|
2015-11-02 04:37:27 +02:00
|
|
|
end
|
2019-10-28 12:18:30 +02:00
|
|
|
#wlan_config.gsub!("# option channel", " option channel")
|
|
|
|
wlan_config.gsub!("# option macaddr", " option macaddr")
|
2015-11-02 04:37:27 +02:00
|
|
|
|
|
|
|
File.open(config_path, 'w') do |f|
|
|
|
|
f.puts wlan_config
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-11-04 16:10:17 +02:00
|
|
|
def hostname(name)
|
|
|
|
`sed -i "s/<hostname>/#{name}/g" #{OUT_DIR}/#{name}/files/etc/config/system`
|
|
|
|
`sed -i "s/<hostname>/#{name}/g" #{OUT_DIR}/#{name}/files/etc/collectd.conf`
|
2015-11-02 04:37:27 +02:00
|
|
|
end
|
|
|
|
|
2016-11-02 18:02:36 +02:00
|
|
|
def ip(name)
|
|
|
|
ip = CONFIGURATIONS[name]['ip']
|
|
|
|
`sed -i "s/<ip>/#{ip}/g" #{OUT_DIR}/#{name}/files/etc/config/network`
|
|
|
|
end
|
|
|
|
|
2015-11-04 16:10:17 +02:00
|
|
|
def config(name)
|
|
|
|
config = CONFIGURATIONS[name]['config']
|
2016-11-02 18:02:36 +02:00
|
|
|
`cp #{File.join(CONFIG_DIR, "%s.configdiff" % config)} #{File.join(OUT_DIR, name, '.config')}`
|
2015-11-02 04:37:27 +02:00
|
|
|
end
|
|
|
|
|
2015-11-04 16:10:17 +02:00
|
|
|
def outdir(name)
|
|
|
|
`mkdir -p #{File.join(OUT_DIR, name, 'files')}`
|
2015-11-02 04:37:27 +02:00
|
|
|
end
|
|
|
|
|
2015-11-04 16:10:17 +02:00
|
|
|
task :ap, [:name] do |t, args|
|
|
|
|
outdir args.name
|
|
|
|
mixins args.name
|
|
|
|
hostname args.name
|
|
|
|
wifi args.name
|
2016-11-02 18:02:36 +02:00
|
|
|
ip args.name
|
|
|
|
config args.name
|
2015-11-04 16:10:17 +02:00
|
|
|
end
|
2015-11-02 04:37:27 +02:00
|
|
|
|
|
|
|
task :all do
|
2022-10-11 21:40:21 +03:00
|
|
|
aps = %W(ap-ws-ws1 ap-ws-ws2) # Workshops, linksys
|
|
|
|
aps += %W(ap-cf-srv ap-cf-f-l ap-cf-f-r ap-cf-a-2 ap-cf-b ap-cf-ws) # top floor, dap
|
|
|
|
aps += %W(ap-cf-tr ap-cf-sc) # top floor, c5
|
2015-11-04 16:10:17 +02:00
|
|
|
|
|
|
|
aps.each do |ap|
|
|
|
|
Rake::Task["ap"].reenable
|
|
|
|
Rake::Task["ap"].invoke ap
|
|
|
|
end
|
2015-11-02 04:37:27 +02:00
|
|
|
end
|