in ccmlib/repository.py [0:0]
def __setup(version, verbose=False):
fallback = True
if version.startswith('git:'):
clone_development(GIT_REPO, version, verbose=verbose)
return (version_directory(version), None, fallback)
elif version.startswith('local:'):
# local: slugs take the form of: "local:/some/path/:somebranch"
try:
_, path, branch = version.split(':')
except ValueError:
raise CCMError("local version ({}) appears to be invalid. Please format as local:/some/path/:somebranch".format(version))
clone_development(path, version, verbose=verbose)
version_dir = version_directory(version)
if version_dir is None:
raise CCMError("Path provided in local slug appears invalid ({})".format(path))
return (version_dir, None, fallback)
elif version.startswith('binary:'):
version = version.replace('binary:', '')
fallback = False
elif version.startswith('github:'):
user_name, _ = github_username_and_branch_name(version)
# make sure to use http for cloning read-only repos such as 'github:apache/cassandra-2.1'
if user_name == "apache":
clone_development(GITHUB_REPO, version, verbose=verbose)
else:
clone_development(github_repo_for_user(user_name), version, verbose=verbose)
return (directory_name(version), None, fallback)
elif version.startswith('source:'):
version = version.replace('source:', '')
elif version.startswith('clone:'):
# locally present C* source tree
version = version.replace('clone:', '')
return (version, None, fallback)
elif version.startswith('alias:'):
alias = version.split(":")[1].split("/")[0]
try:
git_repo = CCM_CONFIG.get("aliases", alias)
clone_development(git_repo, version, verbose=verbose, alias=True)
return (directory_name(version), None, fallback)
except ConfigParser.NoOptionError as e:
common.warning("Unable to find alias {} in configuration file.".format(alias))
raise e
return (None, version, fallback)