vpm: fix and improve `outdated` (#5902)

pull/5926/head
Lukas Neubert 2020-07-22 02:25:20 +02:00 committed by GitHub
parent f4251dded0
commit 0cc8d840a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 26 deletions

View File

@ -21,8 +21,8 @@ const (
'git': 'git clone --depth=1'
'hg': 'hg clone'
}
supported_vcs_outdate_cmds = {
'git': ['git rev-parse @{u}', 'git rev-parse @']
supported_vcs_outdated_steps = {
'git': ['git fetch', 'git rev-parse @', 'git rev-parse @{u}']
}
)
@ -250,26 +250,23 @@ fn vpm_outdated() {
continue
}
if vcs[0] != 'git' {
println('Listing outdated modules is not supported with VCS {$vcs}.')
exit(1)
println('Check for $name was skipped.')
verbose_println('VCS ${vcs[0]} does ot support `v outdated`.')
continue
}
local_vcs_cmd := supported_vcs_outdate_cmds[vcs[0]][0]
local_res := os.exec(local_vcs_cmd) or {
vcs_cmd_steps := supported_vcs_outdated_steps[vcs[0]]
mut outputs := []string{}
for step in vcs_cmd_steps {
res := os.exec(step) or {
errors++
println('Could not get local commit sha of "$name".')
verbose_println('Error command: $local_vcs_cmd')
println('Error while checking latest commits for "$name".')
verbose_println('Error command: git fetch')
verbose_println('Error details:\n$err')
continue
}
upstream_vcs_cmd := supported_vcs_outdate_cmds[vcs[0]][1]
upstream_res := os.exec(upstream_vcs_cmd) or {
errors++
println('Could not read upstream commit sha of "$name".')
verbose_println('Error command: $upstream_vcs_cmd')
verbose_println('Error details:\n$err')
continue
outputs << res.output
}
if local_res.output != upstream_res.output {
if outputs[1] != outputs[2] {
outdated << name
}
}