Commit 1dad57d4 authored by Alex Richardson's avatar Alex Richardson
Browse files

Handle git remotes that aren't called origin in _repository_name()

I was seeing `error: No such remote 'origin'` in the cmake output.
This commit avoids hardcoding `origin` as the upstream URL and instead
uses the `git rev-parse @{u}` to get the configured upstream.

As a follow-up we may want to check if this should be executed by default,
but for now this fixes a warning that I'm seeing with various projects.
parent 3df459ce
......@@ -297,14 +297,24 @@ endif()
# Download translations
function(_repository_name reponame dir)
execute_process(COMMAND git remote get-url --all origin
OUTPUT_VARIABLE giturl
execute_process(COMMAND git rev-parse --symbolic-full-name @{u}
OUTPUT_VARIABLE upstream_ref
RESULT_VARIABLE exitCode
WORKING_DIRECTORY "${dir}")
string(REGEX REPLACE "refs/remotes/([^/]+)/.*" "\\1" gitorigin "${upstream_ref}")
if(exitCode EQUAL 0)
message(DEBUG "Git upstream inferred as ${gitorigin}, upstream ref was ${upstream_ref}")
execute_process(COMMAND git remote get-url --all "${gitorigin}"
OUTPUT_VARIABLE giturl
RESULT_VARIABLE exitCode
WORKING_DIRECTORY "${dir}")
endif()
if(exitCode EQUAL 0)
message(DEBUG "Git URL inferred as ${giturl}")
string(REGEX MATCHALL ".+kde\\.org[:\\/]([-A-Za-z0-9\\/]+)(.git)?\\s*" "" ${giturl})
set(${reponame} ${CMAKE_MATCH_1})
message(DEBUG "Repository inferred as ${${reponame}}")
endif()
if(NOT ${reponame})
......
......@@ -339,7 +339,9 @@ def processAppstreamFile(appstreamFileName, desktopFileName, iconBaseName):
# Try to figure out the source repository
if arguments.source and os.path.exists(os.path.join(arguments.source, '.git')):
output = subprocess.check_output('git remote show -n origin', shell=True, cwd = arguments.source).decode('utf-8')
upstream_ref = subprocess.check_output(['git', 'rev-parse', '--symbolic-full-name', '@{u}'], cwd=arguments.source).decode('utf-8')
remote = upstream_ref.split('/')[2]
output = subprocess.check_output(['git', 'remote', 'show', '-n', remote], cwd=arguments.source).decode('utf-8')
result = re.search(' Fetch URL: (.*)\n', output)
data['source-repo'] = result.group(1)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment