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