47 lines
1.6 KiB
Ruby
47 lines
1.6 KiB
Ruby
#!/usr/bin/env ruby
|
|
require 'optparse'
|
|
require 'set'
|
|
require 'fileutils'
|
|
|
|
# Informal Spec:
|
|
#
|
|
# A User may have multiple Repositories
|
|
# A Repositories contains Packages
|
|
#
|
|
# A User will search for a repository giving a name and optional version
|
|
# Each Repository will be scanned for matching Packages
|
|
# If only one Package matches, that Package will be opened
|
|
# If more than one Package matches, then the user will be prompted to pick one
|
|
# While any two Packages share the same name their parent dir is appended
|
|
# If no Repository matches, then qwandry will exit with a 404 (repo not found)
|
|
#
|
|
module Qwandry
|
|
autoload :Launcher, "qwandry/launcher"
|
|
autoload :Repository, "qwandry/repository"
|
|
autoload :FlatRepository, "qwandry/flat_repository"
|
|
autoload :LibraryRepository, "qwandry/library_repository"
|
|
autoload :Package, "qwandry/package"
|
|
autoload :Configuration, "qwandry/configuration"
|
|
end
|
|
|
|
# If defined, Qwandry will use XDG_CONFIG_HOME as the xdg spec. If not it
|
|
# will check for an existing `~/.qwandry`. Finally it will fall back to
|
|
# `~/.config/qwandry`.
|
|
#
|
|
# Returns either the path the +config_dir+ or +nil+ if HOME is not defined.
|
|
#
|
|
# XDG Spec:
|
|
# http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
|
#
|
|
def Qwandry.config_dir
|
|
subdir = '/.qwandry/'
|
|
if ENV['XDG_CONFIG_HOME']
|
|
File.join(ENV['XDG_CONFIG_HOME'], subdir)
|
|
elsif File.exist? File.join(ENV['HOME'], subdir)
|
|
File.join(ENV['HOME'], subdir)
|
|
elsif ENV['HOME']
|
|
File.join(ENV['HOME'],'.config', subdir)
|
|
else
|
|
nil
|
|
end
|
|
end |