class GitHubBackup::Options

Attributes

options[RW]

Public Class Methods

is_valid?() click to toggle source

check required options

# File lib/utils/options.rb, line 78
def is_valid?
    return false unless self.options[:bakdir] && File.exists?(self.options[:bakdir])
    return false unless self.options[:username]
    true
end
parse() click to toggle source
# File lib/utils/options.rb, line 7
            def parse
                self.options ||= {}

                optparse = OptionParser.new do|opts|
                    
                    opts.banner = "Usage: github-backup -u [username] -o [dir]
e.g
github-backup -u hbt -o /tmp \n\n"


                    opts.on( '-u', '--username USERNAME', '*Required: GitHub username') do |f|
                        self.options[:username] = f
                    end

                    opts.on( '-o', '--output-dir DIR', '*Required: Backup directory') do |f|
                        self.options[:bakdir] = File.expand_path(f)
                    end

                    opts.on( '-p', '--password PASSWORD', 'Optional: GitHub password. Required for private repos') do |f|
                        self.options[:passwd] = f
                    end

                    opts.on( '-O', '--organization ORGANIZATION_NAME', 'Optional: Organization name of the organization to fetch repositories from') do |f|
                      self.options[:organization] = f
                    end

                    opts.on( '-r', '--repository-name NAME', 'Optional: limit to this repository name' ) do |f|
                        self.options[:reponame] = f
                    end

                    opts.on( '-f', '--forks', 'Optional: fetch all forks' ) do
                        self.options[:forks] = true
                    end

                    opts.on( '-b', '--init-branches', 'Optional: init all branches' ) do
                        self.options[:init_branches] = true
                    end

                    opts.on( '-i', '--dump-issues', 'Optional: dump all issues' ) do
                        self.options[:issues] = true
                    end

                    opts.on( '-w', '--wiki', 'Optional: dump wiki' ) do
                        self.options[:wiki] = true
                    end

                    opts.on( '-C', '--compress', 'Optional: run gc to compress git repo' ) do
                        self.options[:repack] = true
                    end

                    opts.on( '-v', '--version', 'Displays current version ' ) do
                        version = File.expand_path(File.dirname(__FILE__) + '../../../VERSION')
                        p "Version: " + File.read(version)[0...-1] if File.exists? version
                        exit
                    end

                    opts.on( '-h', '--help', 'Displays this screen' ) do
                        p opts
                        exit
                    end
                end

                optparse.parse!

                if !is_valid?
                    puts optparse
                    exit
                end
            end