bin/goclone
#!/usr/bin/env python3
"""
Clone a go repository to its correct location under $GOPATH/src
"""
import os
import pathlib
import subprocess
import sys
if len(sys.argv) < 2:
print("No repository to goclone")
sys.exit(1)
# Generate path
repository = sys.argv[1]
repository_temp = repository.replace(":", "/")
repository_temp = repository_temp.split("@")[-1]
rel_path = repository_temp.split("/")
current_path = pathlib.Path().absolute()
symlink_path = current_path / rel_path[-1]
gopath_string = os.getenv("GOPATH")
if not gopath_string:
print("No GOPATH env var found")
sys.exit(1)
gopath = pathlib.Path(gopath_string)
abs_path = gopath / "src" / repository_temp
# Clone
cmd = ["git", "clone", repository, str(abs_path)]
subprocess.check_call(cmd)
# Add git submodules
os.chdir(abs_path)
cmd = ["git", "submodule", "update", "--init"]
subprocess.check_call(cmd)
# Symlink
cmd = ["ln", "-s", str(abs_path), str(symlink_path)]
subprocess.check_call(cmd)