Fix bug in spack debug create-db-tarball
- Fix a bug handling '/' characters in branch names. - Make tarballs use a descriptive name for the top-level directory, not just `opt`.
This commit is contained in:
parent
f0edfa6edf
commit
9c5c8b22c8
@ -23,6 +23,7 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from glob import glob
|
from glob import glob
|
||||||
|
|
||||||
@ -53,8 +54,12 @@ def _debug_tarball_suffix():
|
|||||||
if not os.path.isdir('.git'):
|
if not os.path.isdir('.git'):
|
||||||
return 'nobranch.nogit.%s' % suffix
|
return 'nobranch.nogit.%s' % suffix
|
||||||
|
|
||||||
|
# Get symbolic branch name and strip any special chars (mainly '/')
|
||||||
symbolic = git(
|
symbolic = git(
|
||||||
'rev-parse', '--abbrev-ref', '--short', 'HEAD', output=str).strip()
|
'rev-parse', '--abbrev-ref', '--short', 'HEAD', output=str).strip()
|
||||||
|
symbolic = re.sub(r'[^\w.-]', '-', symbolic)
|
||||||
|
|
||||||
|
# Get the commit hash too.
|
||||||
commit = git(
|
commit = git(
|
||||||
'rev-parse', '--short', 'HEAD', output=str).strip()
|
'rev-parse', '--short', 'HEAD', output=str).strip()
|
||||||
|
|
||||||
@ -69,12 +74,23 @@ def create_db_tarball(args):
|
|||||||
tarball_name = "spack-db.%s.tar.gz" % _debug_tarball_suffix()
|
tarball_name = "spack-db.%s.tar.gz" % _debug_tarball_suffix()
|
||||||
tarball_path = os.path.abspath(tarball_name)
|
tarball_path = os.path.abspath(tarball_name)
|
||||||
|
|
||||||
with working_dir(spack.spack_root):
|
base = os.path.basename(spack.install_path)
|
||||||
|
transform_args = []
|
||||||
|
if 'GNU' in tar('--version', output=str):
|
||||||
|
transform_args = ['--transform', 's/^%s/%s/' % (base, tarball_name)]
|
||||||
|
else:
|
||||||
|
transform_args = ['-s', '/^%s/%s/' % (base, tarball_name)]
|
||||||
|
|
||||||
|
wd = os.path.dirname(spack.install_path)
|
||||||
|
with working_dir(wd):
|
||||||
files = [spack.installed_db._index_path]
|
files = [spack.installed_db._index_path]
|
||||||
files += glob('%s/*/*/*/.spack/spec.yaml' % spack.install_path)
|
files += glob('%s/*/*/*/.spack/spec.yaml' % base)
|
||||||
files = [os.path.relpath(f) for f in files]
|
files = [os.path.relpath(f) for f in files]
|
||||||
|
|
||||||
tar('-czf', tarball_path, *files)
|
args = ['-czf', tarball_path]
|
||||||
|
args += transform_args
|
||||||
|
args += files
|
||||||
|
tar(*args)
|
||||||
|
|
||||||
tty.msg('Created %s' % tarball_name)
|
tty.msg('Created %s' % tarball_name)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user