module Dialog::Triggers

Public Class Methods

deploy_background_systemd() click to toggle source
# File lib/triggers/deploy.rb, line 64
def deploy_background_systemd
  erbGen('systemd/dialog_background.service', "#{Dir.home}/.config/systemd/user/dialog_background.service")
  systemd('dialog_background', 'enstart')        
  Dialog.logger.info "Background systemd services deployed OK!"
end
deploy_binaries_notice() click to toggle source
# File lib/triggers/deploy.rb, line 78
def deploy_binaries_notice
  Dialog.logger.warn "Please install neccessary binaries:"
  Dialog.logger.info "openSUSE: zypper ar -cf https://download.opensuse.org/repositories/home:/in4ops:/4wrap/openSUSE_Leap_15.0/home:in4ops:4wrap.repo"
  #will be 'home:in4ops:Innosense:libs'
  Dialog.logger.info "openSUSE: zypper --no-gpg-checks --non-interactive in zbar tdlib" 
  Dialog.logger.info "sudo loginctl enable-linger $USER"
end
deploy_bot_dev_systemd() click to toggle source
# File lib/triggers/deploy.rb, line 71
def deploy_bot_dev_systemd
  erbGen('systemd/dialog_runner@.path',    "#{Dir.home}/.config/systemd/user/dialog_bot_dev@.path", {:desc => 'dialog_bot_dev runner', :path => "#{Dialog.config.path.dialog}/dialect/dialect.sqlite"})                  
  erbGen('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_bot_dev@.service", {:mode => 'dialect', :env => 'bot', :systemdChain => 'dialog_bot'}) 
  Dialog.logger.info "Bot development systemd services deployed OK!"        
end
deploy_bot_systemd() click to toggle source
# File lib/triggers/deploy.rb, line 50
def deploy_bot_systemd
  erbGen('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_bot@.service", {:mode => 'bot'})
  erbGen('systemd/dialog_runner@.path',    "#{Dir.home}/.config/systemd/user/dialog_bot_pre@.path", {:desc => "dialog_bot_pre runner", :path => "/tmp/in4/dialog_touch_%i"})            
  erbGen('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_bot_pre@.service",  {:mode => 'check', :env => 'bot', :systemdChain => "dialog_bot"})  
  Dialog.logger.info "Bot systemd services deployed OK!"                  
end
deploy_gems() click to toggle source
# File lib/triggers/deploy.rb, line 87
def deploy_gems
  stderr, status = Open3.capture3("gem specific_install -u -l https://gitlab.com/Innosense/libs/dialog_bot_ruby.git", :stdin_data => 'stdin')
  Dialog.logger.info stderr
  stderr, status = Open3.capture3("gem specific_install -u -l https://gitlab.com/Innosense/MVP/dialect_lookup.git", :stdin_data => 'stdin')
  Dialog.logger.info stderr
  stderr, status = Open3.capture3("gem specific_install -u -l https://gitlab.com/Innosense/MVP/dialog_ruby.git", :stdin_data => 'stdin')
  Dialog.logger.info stderr        
  Dialog.logger.info "Gems deployment OK!"                  
end
deploy_gitsync() click to toggle source
# File lib/triggers/deploy.rb, line 98
def deploy_gitsync
end
deploy_redis_run() click to toggle source
# File lib/triggers/deploy.rb, line 33
def deploy_redis_run
  if File.file?('/usr/sbin/redis-server')
    redisDir = "#{Dialog.config.path.dialogData}/redis"
    FileUtils.mkdir_p redisDir
    erbGen('systemd/dialog_redis.service', "#{Dir.home}/.config/systemd/user/dialog_redis.service")
    erbGen('conf/redis_local.conf', "#{redisDir}/redis_local.conf")
    erbGen('conf/redis_global.conf', "#{redisDir}/redis_global.conf")
    systemd('dialog_redis', 'enstart')
    Dialog.logger.info "Redis deployment OK!"          
  else
    Dialog.logger.error "Please install Redis binary"
    Dialog.logger.info "openSUSE: zypper --no-gpg-checks --non-interactive in redis"
    exit(false)
  end
end
deploy_tdlib_systemd() click to toggle source
# File lib/triggers/deploy.rb, line 58
def deploy_tdlib_systemd
  erbGen('systemd/dialog_runMode@.service', "#{Dir.home}/.config/systemd/user/dialog_tdlib@.service", {:mode => 'tdlib'})   
  Dialog.logger.info "TDLib systemd services deployed OK!"
end
erbGen(erbFile, dst, erb={}) click to toggle source
# File lib/triggers/_func.rb, line 17
def erbGen(erbFile, dst, erb={})
  if not File.file?(dst)
    tmpl = ERB.new(File.read("#{Dialog.config.path.dialog_ruby}/exec/#{erbFile}")).result(binding)
    File.open(dst, 'w') do |f| f.write tmpl; end         
  end
end
systemd(service, mode) click to toggle source
# File lib/triggers/_func.rb, line 25
def systemd(service, mode)
  Open3.popen3('/usr/bin/systemctl', '--user', 'daemon-reload')
  if mode == 'enstart'
    Open3.popen3('/usr/bin/systemctl', '--user', 'enable',  service)        
    Open3.popen3('/usr/bin/systemctl', '--user', 'restart', service)
  end
end
trigger__run() click to toggle source
# File lib/triggers/_func.rb, line 33
def trigger__run
  Dialog._run
end
trigger_console_start() click to toggle source
# File lib/triggers/console_start.rb, line 18
def trigger_console_start
  Dialog._run      
end
trigger_deploy() click to toggle source
# File lib/triggers/deploy.rb, line 17
def trigger_deploy
  require 'erb'      
  mode = Dialog.config.run.mode
  Dialog.logger.debug "Using mode '#{mode}'"      
  FileUtils.mkdir_p "#{Dir.home}/.config/systemd/user"
  deploy_redis_run unless File.file?("#{Dialog.config.path.dialogData}/redis/dump.rdb")
  deploy_background_systemd
  deploy_binaries_notice
  deploy_bot_systemd
  deploy_tdlib_systemd
  deploy_bot_dev_systemd if Dialog.config.run.mode == 'dev' 
  Open3.popen3('/usr/bin/systemctl', '--user', 'daemon-reload')
  deploy_gems unless File.file?("#{Dir.home}/.config/systemd/user/dialog_bot_dev@.service")
end
trigger_false() click to toggle source
# File lib/triggers/false.rb, line 17
def trigger_false
  Dialog.logger.error "Something wrong in runtime scenario, please use dialog.sh"
end
trigger_init() click to toggle source
# File lib/triggers/init.rb, line 17
def trigger_init
  require 'erb'      
  send("trigger_init_#{Dialog.config.run.mode.to_sym}", Dialog.config.run.mode)
  Dialog.logger.info "#{Dialog.config.run.mode} init finished successfully!"                          
end
trigger_init_bot(mode) click to toggle source
# File lib/triggers/init.rb, line 30
def trigger_init_bot(mode)
  true
end
trigger_init_bot_dev(mode) click to toggle source
# File lib/triggers/init.rb, line 34
def trigger_init_bot_dev(mode)
  true
end
trigger_init_tdlib(mode) click to toggle source
# File lib/triggers/init.rb, line 23
def trigger_init_tdlib(mode)
  require 'tdlib-ruby'
  Dir.glob(File.join("#{Dialog.config.path.dialog_rubyLib}/tdlib/**", "*.rb")).each{|f| require f}         
  sess = Dialog::TDLib.tdlibInit
  Dialog::TDLib.tdlibAuth('user', sess)
end
trigger_systemd_start() click to toggle source
# File lib/triggers/systemd_start.rb, line 17
def trigger_systemd_start
  systemd("dialog_#{Dialog.config.run.mode}@#{Dialog.config.naming.instance}", 'enstart')
  systemd("dialog_#{Dialog.config.run.mode}_pre@#{Dialog.config.naming.instance}.path", 'enstart')                    
end