Move CLI code in the lib.

This commit is contained in:
Glenn Y. Rolland 2015-08-10 16:59:47 +02:00
parent 73605910ed
commit 283303e45c
3 changed files with 79 additions and 83 deletions

View file

@ -8,92 +8,11 @@
# #
require 'bundler/setup' require 'bundler/setup'
require 'pp' require 'pp'
require 'thor'
# #
# project libraries # project libraries
# #
require 'qasim' require 'qasim'
module Qasim
class Cli < Thor
desc "init", "initialize user configuration"
def init
raise NotImplementedError
end
desc "list", "list"
def list
raise NotImplementedError
end
desc "mount MAPS", "mount selected maps"
def mount
raise NotImplementedError
end
private
#
#
#
def initializez
@all_maps = nil
@active_maps = nil
puts "-- sshfs-mapper --"
@config = Config.new
@config.parse_cmd_line ARGV
@config.parse_file
@all_maps = {}
pp @config
end
# create default map for each selected map
# or default.map if none selected
def run_init
end
def run_mount
# asynchronous mount
selected_maps = @config.maps.select do |map|
pp map
map.online?
# if map.available? then
# map.connect!
# end
end
end
def run_umount
end
#
#
#
def run
case @config.action
when Config::ACTION_INIT
run_init
when Config::ACTION_MOUNT
run_mount
when Config::ACTION_UMOUNT
run_umount
else
raise RuntimeError, "Unknown action"
end
puts "--run"
end
end
end
Qasim::Cli.start(ARGV) Qasim::Cli.start(ARGV)

View file

@ -1,11 +1,10 @@
require 'qasim/version'
require 'qasim/constants' require 'qasim/constants'
module Qasim module Qasim
autoload :Config, 'qasim/config' autoload :Config, 'qasim/config'
autoload :Map, 'qasim/map' autoload :Map, 'qasim/map'
autoload :Ui, 'qasim/ui' autoload :Ui, 'qasim/ui'
autoload :Cli, 'qasim/cli'
end end

78
lib/qasim/cli.rb Normal file
View file

@ -0,0 +1,78 @@
require 'thor'
module Qasim
class Cli < Thor
desc "init", "initialize user configuration"
def init
raise NotImplementedError
end
desc "list", "list"
def list
raise NotImplementedError
end
desc "mount MAPS", "mount selected maps"
def mount
raise NotImplementedError
end
private
#
#
#
def initializez
@all_maps = nil
@active_maps = nil
puts "-- sshfs-mapper --"
@config = Config.new
@config.parse_cmd_line ARGV
@config.parse_file
@all_maps = {}
pp @config
end
# create default map for each selected map
# or default.map if none selected
def run_init
end
def run_mount
# asynchronous mount
selected_maps = @config.maps.select do |map|
pp map
map.online?
# if map.available? then
# map.connect!
# end
end
end
def run_umount
end
#
#
#
def run
case @config.action
when Config::ACTION_INIT
run_init
when Config::ACTION_MOUNT
run_mount
when Config::ACTION_UMOUNT
run_umount
else
raise RuntimeError, "Unknown action"
end
puts "--run"
end
end
end