Module: Git

Defined in:
lib/atk/git.rb

Class Method Summary collapse

Class Method Details

.ensure_cloned_and_up_to_date(target_dir, git_repo_url) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/atk/git.rb', line 2

def self.ensure_cloned_and_up_to_date(target_dir, git_repo_url)
    # check if it exists
    if FS.folder?(target_dir)
        # check if its a git repo
        if FS.folder?(target_dir/".git")
            # fetch master
            FS.in_dir(target_dir) do
                system("git fetch origin master")
                if $?.success?
                    # force pull
                    system("git reset --hard origin/master")
                end
            end
            return
        else
            # clear the path
            FS.delete(target_dir)
        end
    end
    # clone the directory if pulling didn't occur
    system("git", "clone", git_repo_url, target_dir)
end

.repo_name(url) ⇒ Object



25
26
27
28
29
# File 'lib/atk/git.rb', line 25

def self.repo_name(url)
    require_relative './file_system'
    *folders, name, extension = FS.path_pieces(url)
    return name
end