require "./config" require "./fzf" module GX class Cli @home_dir : String @config : Config def initialize() # Main execution starts here if !ENV["HOME"]? raise "Home directory not found" end @home_dir = ENV["HOME"] @config = Config.new(File.join(@home_dir, ".config/gx-vault.yml")) ## FIXME: check that FZF is installed end def run() # Correcting the fzf interaction part names_display = @config.vaults.map do |vault| vault.mounted? ? "#{vault.name} [#{ "open".colorize(:green) }]" : vault.name end selected_vault_name = Fzf.run(names_display.sort) puts ">> #{selected_vault_name}".colorize(:yellow) selected_vault = @config.vaults.find { |v| v.name == selected_vault_name } if selected_vault selected_vault.mounted? ? selected_vault.unmount : selected_vault.mount else STDERR.puts "Vault not found.".colorize(:red) end end end end