exe/fusuma-sendkey in fusuma-plugin-sendkey-0.12.0 vs exe/fusuma-sendkey in fusuma-plugin-sendkey-0.13.0

- old
+ new

@@ -1,56 +1,63 @@ #!/usr/bin/env ruby # frozen_string_literal: true -require 'optparse' -require 'fusuma/config' -require 'fusuma/plugin/inputs/libinput_command_input.rb' -require_relative '../lib/fusuma/plugin/sendkey/keyboard.rb' -require_relative '../lib/fusuma/plugin/sendkey/version.rb' +require "optparse" +require "fusuma/config" +require "fusuma/plugin/executors/executor" +require "fusuma/plugin/inputs/libinput_command_input" +require_relative "../lib/fusuma/plugin/sendkey/keyboard" +require_relative "../lib/fusuma/plugin/executors/sendkey_executor" +require_relative "../lib/fusuma/plugin/sendkey/version" option = {} opt = OptionParser.new -opt.on('-l', '--list-keycodes', - 'List available keycodes') do |v| +opt.on("-l", "--list-keycodes", + "List available keycodes") do |v| option[:list] = v end -opt.on('--version', 'Show version') do |v| +opt.on("--version", "Show version") do |v| option[:version] = v end -opt.parse!(ARGV) - -device_name = Fusuma::Config.instance.fetch_config_params( - :device_name, - Fusuma::Config::Index.new([:plugin, :executors, :sendkey_executor]) -).fetch(:device_name) - -if option[:list] - puts Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: device_name).search_codes - return +begin + opt.parse!(ARGV) +rescue OptionParser::InvalidOption => e + warn e + warn opt.help + exit 1 end if option[:version] puts Fusuma::Plugin::Sendkey::VERSION return end +executor_index = Fusuma::Config::Index.new([:plugin, :executors, :sendkey_executor]) +name_patterns = Fusuma::Config.instance.fetch_config_params(:device_name, executor_index).fetch(:device_name) + +device = Fusuma::Plugin::Sendkey::Keyboard.find_device(name_patterns: name_patterns) +keyboard = Fusuma::Plugin::Sendkey::Keyboard.new(device: device) +if option[:list] + puts keyboard.search_codes("KEY_").map { |sym| sym.to_s.delete_prefix("KEY_") } + puts keyboard.search_codes("BTN_") + return +end + args = ARGV.first if args.nil? - warn 'fusuma-sendkey require 1 arugument' - warn 'e.g. fusuma-sendkey LEFTALT+LEFT' - warn 'e.g. fusuma-sendkey [A, B, C]' + warn "fusuma-sendkey require 1 arugument" + warn "e.g. fusuma-sendkey LEFTALT+LEFT" + warn "e.g. fusuma-sendkey [A, B, C]" exit 1 end - # remove [ and ] from args -params = args.delete('[]').split(',').map(&:strip) +params = args.delete("[]").split(",").map(&:strip) -keyboard = Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: device_name) return unless keyboard.valid?(params) if params.size == 1 keyboard.type(param: params.first) else