#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment.rb'
require 'optparse'
require 'optparse/time'
require 'csv'

options = {}
options[:sep] = ';'

OptionParser.new do |opts|
  opts.banner = "Usage: user_update users_list.csv -s ;"

  opts.on("-s", "--separator", String, "fields separator (default is ;) ") do |l|
    options[:sep] = l
  end

  opts.on_tail("-h", "--help", "Show this message") do
    puts opts
    exit
  end

end.parse!

if ARGV.blank?
  puts 'error : no arguments, use -h or --help for help'
  exit
end

ARGV.collect do |f|
  CSV.foreach(f,headers: false,col_sep: options[:sep]) do |user_line|
    firstname,lastname,login,pwd = user_line
    begin
      User.update(User.select(:id).where("login='#{login}'").first, first_name: firstname, last_name: lastname, password: pwd, password_confirmation: pwd)
      puts "login: '#{login}' -> updated"
      if Server.itself?(PP2_SERVER_NAME)
        plu = Pixlog.find_by(username: login)
        action=''
        if plu.nil?
          plu = Pixlog.new(username: login, company: pwd)
          action = 'created'
        else
          Pixlog.update(plu, company: pwd)
          action = 'updated'
        end
        if plu.save
          puts "* pixlogs record #{action}"
        else
          puts "* pixlogs record not #{action}, error : #{user_created.errors.full_messages} "
        end
      end
    rescue Exception => e
      puts "login: #{login} -> ERROR : #{e}"      
    end
  end
end
