Sha256: 90266c87288ee9b4fe9facc40d9ec3e19fe61cfa84e633dd60d8acd4f4bfbec6

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

require_relative "../base"

module Neetob
  class CLI
    module FetchorupdateRepos
      class Execute < Base
        attr_accessor :sandbox, :apps, :all_neeto_repos

        def initialize(sandbox = false, all_neeto_repos = false, apps = ["*"])
          super()
          @sandbox = sandbox
          @apps = apps
          @all_neeto_repos = all_neeto_repos
        end

        def run
          neeto_apps = find_all_matching_apps_or_repos(apps, :github, sandbox, false, all_neeto_repos)
          neeto_apps.each do |app|
            app_name = app.split("/").last
            ui.info("\nWorking on #{app_name}\n")
            if directory_exists(app_name)
              checkout_to_main_and_fetch_commits(app_name)
            else
              clone_repo(app_name)
            end
          end
        end

        def directory_exists(app_name)
          File.directory?(app_name)
        end

        def checkout_to_main_and_fetch_commits(app_name)
          %x[ cd #{app_name} && git checkout main && git pull origin main ]
          if $?.success?
            puts "------Successfully pulled main branch of #{app_name}------"
          else
            puts "------Unable to pull the main branch of #{app_name} due to conflicts------"
          end
        end

        def clone_repo(app_name)
          `git clone git@github.com:bigbinary/#{app_name}.git`
          if $?.success?
            puts "------Done cloning #{app_name}------"
          else
            puts "------Failed cloning #{app_name}------"
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
neetob-0.2.3 lib/neetob/cli/fetchorupdate_repos/execute.rb