class MovieMasher::AzureInitService

initializes azure service

Public Instance Methods

init() click to toggle source
# File service/azure/azure_init.rb, line 8
def init
  me = 'AzureInitService#init'
  group = 'www-data'
  puts "#{Time.now} #{me} determining hostname and user..."
  user = Etc.getlogin
  cmd = 'hostname'
  stdin = Open3.capture3(cmd).first
  hostname = stdin.strip
  puts "#{cmd}\n#{stdin}"
  puts "#{Time.now} #{me} determining if #{user} user is in #{group} group"
  cmd = 'groups'
  stdin = Open3.capture3(cmd).first
  groups = stdin.strip
  puts "#{cmd}\n#{stdin}"
  unless groups.include?(group)
    puts "#{Time.now} #{me} adding #{user} user to #{group} group"
    cmd = "sudo usermod -a -G #{group} #{user}"
    stdin = Open3.capture3(cmd).first
    puts "#{cmd}\n#{stdin}"
  end
  unless hostname.empty?
    lines = IO.readlines('/var/www/config/moviemasher.ini')
    auth_key = 'authentication='
    new_lines = []
    found = false
    added = false
    auth_value = "#{auth_key}#{hostname}"
    lines.each do |line|
      line.strip!
      if line.start_with?(auth_key)
        found = true
        line[auth_key] = ''
        if line.strip.empty?
          new_lines << auth_value
          added = true
        else
          new_lines << line
        end
      else
        new_lines << line
      end
    end
    unless found
      new_lines << auth_value
      added = true
    end
    if added
      puts "#{Time.now} #{me} angular-moviemasher password now hostname..."
      IO.write('/var/www/config/moviemasher.ini', new_lines.join("\n"))
    end
  end
  false # so we don't overwrite user data
end