2009-04-03 16:27:49 +00:00
|
|
|
#!/usr/bin/ruby
|
2009-12-14 23:56:06 +00:00
|
|
|
# vim: set ts=4 sw=4:
|
2009-04-03 16:27:49 +00:00
|
|
|
|
|
|
|
require 'optparse'
|
|
|
|
require 'ostruct'
|
|
|
|
require 'pp'
|
|
|
|
require 'find'
|
|
|
|
|
2011-03-07 23:51:29 +00:00
|
|
|
require 'rubygems'
|
|
|
|
require 'rdebug/base'
|
2011-07-31 21:23:37 +00:00
|
|
|
require 'qasim/constants'
|
2011-07-24 16:49:07 +00:00
|
|
|
require 'qasim/map'
|
2011-03-07 23:51:29 +00:00
|
|
|
|
2011-07-21 14:36:33 +00:00
|
|
|
module Qasim
|
2009-05-22 21:01:23 +00:00
|
|
|
class Config
|
2011-03-10 16:56:34 +00:00
|
|
|
|
2009-12-14 23:56:06 +00:00
|
|
|
attr_reader :maps_active
|
|
|
|
attr_reader :maps
|
2011-07-24 15:41:33 +00:00
|
|
|
attr_reader :mnt_dir
|
2011-03-10 16:56:34 +00:00
|
|
|
|
2011-03-07 23:25:47 +00:00
|
|
|
def initialize
|
2011-03-10 16:56:34 +00:00
|
|
|
|
2009-05-22 21:01:23 +00:00
|
|
|
user = if ENV['USER'] then
|
|
|
|
ENV['USER']
|
2009-04-03 16:27:49 +00:00
|
|
|
else
|
2009-05-22 21:01:23 +00:00
|
|
|
raise "Environment variable 'USER' is missing!"
|
2009-04-03 16:27:49 +00:00
|
|
|
end
|
|
|
|
|
2009-12-14 23:56:06 +00:00
|
|
|
home_dir = if ENV['HOME'] then
|
2009-05-22 21:01:23 +00:00
|
|
|
ENV['HOME']
|
|
|
|
else
|
|
|
|
"/home/" + user
|
|
|
|
end
|
|
|
|
|
|
|
|
xdg_dir = if ENV['XDG_CONFIG_HOME'] then
|
|
|
|
ENV['XDG_CONFIG_HOME']
|
|
|
|
else
|
|
|
|
home_dir + '/.config'
|
|
|
|
end
|
|
|
|
|
2011-07-24 16:49:07 +00:00
|
|
|
@mnt_dir = File.join home_dir, "mnt"
|
2011-07-24 15:41:33 +00:00
|
|
|
|
2009-12-14 23:56:06 +00:00
|
|
|
@config_dir = xdg_dir + '/sshfs-mapper'
|
2010-01-24 21:00:47 +00:00
|
|
|
@config_file = nil
|
2009-12-14 23:56:06 +00:00
|
|
|
@maps = []
|
|
|
|
@initialize_enable = false
|
|
|
|
@umount_enable = false
|
|
|
|
@target = nil
|
|
|
|
@verbose_enable = false
|
2011-03-07 23:51:29 +00:00
|
|
|
@debug = false
|
2009-05-22 21:01:23 +00:00
|
|
|
end
|
2009-04-03 16:27:49 +00:00
|
|
|
|
2011-07-24 15:41:33 +00:00
|
|
|
def parse_maps &blk
|
2011-03-07 23:51:29 +00:00
|
|
|
rdebug "Config: #{@config_dir}/config"
|
2009-05-22 21:01:23 +00:00
|
|
|
|
2011-03-15 16:57:02 +00:00
|
|
|
@maps = []
|
2011-07-31 21:23:37 +00:00
|
|
|
Find.find( @config_dir, APP_SYSCONFIG_DIR ) do |path|
|
2011-03-07 23:25:47 +00:00
|
|
|
if File.file? path
|
2009-05-22 21:01:23 +00:00
|
|
|
if File.basename( path ) =~ /.map$/
|
2009-12-14 23:56:06 +00:00
|
|
|
begin
|
2011-07-24 16:49:07 +00:00
|
|
|
map = Map.new self, path
|
2011-03-07 23:51:29 +00:00
|
|
|
yield map if block_given?
|
|
|
|
maps.push map
|
2009-12-14 23:56:06 +00:00
|
|
|
rescue
|
|
|
|
# error while parsing map
|
2009-09-19 23:51:18 +00:00
|
|
|
end
|
2009-05-22 21:01:23 +00:00
|
|
|
end
|
|
|
|
#total_size += FileTest.size(path)
|
2009-04-03 16:27:49 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|