Sha256: 7a7f07bb6586ebeab6928d2c8471f54d12eb955d8882b7336b3a8c7b7fc419b4
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
#!/usr/bin/env ruby require_relative '../lib/github_cloner' if ARGV.empty? OptParser.parse(%w[--help]) end include GithubCloner # Now we are ready to take the order # Show help if user forgot to type anything options = OptParser.parse(ARGV) # Mandatory options raise "base_dir is required" if options.base_dir.nil? raise "user is required" if options.user.nil? # Make use of the user name gh_id = options.user # Note: set to specific language to limit the cloning if options.language language = options.language #'Emacs Lisp' end args = { base_dir: options.base_dir, # mandatory oauth_token: options.oauth_token, # optional required for private repos user: options.user, # optional if org is used? org: options.org, # optional if user is used? all_repos: options.all_repos, # default to false group_by_user: options.group_by_user, # default to false clone_repos: options.clone_repos # default to false } repos = GithubCloner::GithubUtils.list_all(args) # List of language that have been used by the given user/organization languages = repos.map(&:language).uniq.compact puts "------------------------------------------" puts "List of languages by #{gh_id}" puts languages puts "------------------------------------------" repos_hash = GithubCloner::GithubUtils.repos_by_language(repos, languages) result = GithubCloner::GithubUtils.repos_as_list(repos_hash) if result && !result.empty? puts "------------------------------------------" puts "List of all repositories by #{gh_id}" result.each_with_index do |r,i| puts "#{i+1}/#{result.size}: #{r}" end puts "------------------------------------------" result.keep_if { |i| i.split(File::SEPARATOR)[1] == language } if language GithubCloner::GithubUtils.clone_all(result,args) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
github-cloner-0.3.0 | bin/github-cloner |