Sha256: fa5561baa7f885accc0a536bcbe45889ca248d66bed6475e122c0f33c5d4f8ef

Contents?: true

Size: 1.6 KB

Versions: 1

Compression:

Stored size: 1.6 KB

Contents

#!/usr/bin/env ruby
require_relative '../lib/github_cloner'

if ARGV.empty?
  OptParser.parse(%w[--help])
end

include GithubCloner

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

if options.languages
  languages = options.languages
end

args = {
  base_dir:      options.base_dir,
  oauth_token:   options.oauth_token,
  user:          options.user,
  org:           options.org,
  all_repos:     options.all_repos,
  group_by_user: options.group_by_user,
  clone_repos:   options.clone_repos
}

repos = GithubCloner::GithubUtils.list_all(args)

# List of language that have been used by the given user/organization
repo_languages = repos.map(&:language).uniq.compact
puts "------------------------------------------"
puts "List of languages by #{gh_id}"
puts repo_languages
puts "------------------------------------------"

repos_hash = GithubCloner::GithubUtils.repos_by_language(repos, repo_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 "------------------------------------------"

  # Need to get this from the list of language
  if languages && !languages.empty?
    result.keep_if do |i|
      lang = i.split(File::SEPARATOR)[1]
      languages.include?(lang)
    end
  end

  GithubCloner::GithubUtils.clone_all(result, args)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
github-cloner-0.4.0 bin/github-cloner