summaryrefslogtreecommitdiff
path: root/scripts/check-unpetrify-refs.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/check-unpetrify-refs.py')
-rwxr-xr-xscripts/check-unpetrify-refs.py76
1 files changed, 0 insertions, 76 deletions
diff --git a/scripts/check-unpetrify-refs.py b/scripts/check-unpetrify-refs.py
deleted file mode 100755
index c70b680..0000000
--- a/scripts/check-unpetrify-refs.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env python
-# Copyright (C) 2016 Codethink Limited
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import os
-import glob
-import argparse
-import subprocess
-
-import scriptslib
-
-
-'''
-Script for checking unpetrify-refs in strata.
-
-Without args this script will check everything in strata/, or each stratum
-given on the command-line and will print on stdout whether a chunk has
-a missing or non-existent unpetrify-ref and if it fails to check the remote
-(missing repo).
-'''
-
-strata_dir = "strata"
-
-def ref_exists(remote, ref):
- output = subprocess.check_output(
- ["git", "ls-remote", remote, str(ref)],
- stderr=subprocess.STDOUT).strip()
- return True if output else False
-
-def main():
- parser = argparse.ArgumentParser(
- description="Sanity checks unpetrify-refs in Baserock strata")
- parser.add_argument("--trove-host", default="git.baserock.org",
- help="Trove host to map repo aliases to")
- parser.add_argument("strata", nargs="*", metavar="STRATA",
- help="The strata to check (checks all by default)")
- args = parser.parse_args()
-
- if args.strata:
- strata = args.strata
- else:
- strata_path = os.path.join(scriptslib.definitions_root(), strata_dir)
- strata = glob.glob("%s/*.morph" % strata_path)
-
- for stratum in strata:
- path = os.path.relpath(stratum)
- morphology = scriptslib.load_yaml_file(stratum)
- for chunk in morphology['chunks']:
- unpetrify_ref = chunk.get("unpetrify-ref")
- if not unpetrify_ref:
- print ("%s: '%s' has no unpetrify-ref!" %
- (path, chunk['name']))
- continue
- remote = scriptslib.parse_repo_alias(chunk['repo'], args.trove_host)
- try:
- if not ref_exists(remote, unpetrify_ref):
- print ("%s: unpetrify-ref for '%s' is not present on the "
- "remote (%s)!" % (path, chunk['name'], remote))
- except subprocess.CalledProcessError as e:
- print ("%s: failed to ls-remote (%s) for chunk '%s':\n%s" %
- (path, remote, chunk['name'], e.output.strip()))
-
-if __name__ == "__main__":
- main()