#!/usr/bin/ruby
require 'rubygems'
require 'duration'

directories = [
                {:source => '/location/of/server/1',
                :destination => '/var/www/demos/1'},
                {:source => '/location/of/server/2',
                :destination => '/var/www/demos/2'},
                {:source => '/location/of/server/2',
                :destination => '/var/www/demos/3'}
                ]

demozipstarttime = Time.now
puts "--------------------------------------"
puts "Starting demozip process"
directories.each do |directory|
  puts "--------------------------------------"
  puts "Start processing directory #{directory[:source]}"
  puts "--------------------------------------"
  demos = `ls #{directory[:source]}/*.dem`
  demos.each do |demo|
    demo = demo.match(/([^\/]*)$/)
    demo = demo.to_s.chomp!
    puts "Zipping #{demo} from #{directory[:source]} and moving to #{directory[:destination]}"
    starttime = Time.now
    `7za a #{directory[:destination]}/#{demo}.7z #{directory[:source]}/#{demo}`
    duration = Duration.new
    duration.seconds = (Time.now - starttime).to_i
    unless duration.to_s.empty?
      puts "Finished zipping in #{duration.to_s}..."
    else
      puts "Finished zipping in 0 seconds..."
    end
    puts "Removing #{directory[:source]}/#{demo}"
    `rm #{directory[:source]}/#{demo}`
  end
end
demozipduration = Duration.new
demozipduration.seconds = (Time.now - demozipstarttime).to_i
puts "-----------------------------------------------------------------"
unless demozipduration.to_s.empty?
  puts "Finished zipping and moving all demo's in #{demozipduration.to_s}"
else
  puts "Finished zipping and moving all demo's in 0 seconds"
end
puts "Rebooting all servers"
`killall srcds_i486`
puts "-----------------------------------------------------------------"
space = `du -h --max-depth=1 /var/www/demos`
puts "Demo's diskusage is now:"
puts "#{space}"
puts "-----------------------------------------------------------------"
puts "Space left on drive:"
drivespace = `df -h /dev/sda1`
puts "#{drivespace}"
