diff options
Diffstat (limited to 'migrations/run-all')
-rwxr-xr-x | migrations/run-all | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/migrations/run-all b/migrations/run-all deleted file mode 100755 index 5a817ee5..00000000 --- a/migrations/run-all +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python -# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>. - - -'''Run a set of migration scripts. - -This script does exactly what `PYTHONPATH=. run-parts --exit-on-error` would -do. I avoided using 'run-parts' purely because the implementation in Fedora 22 -doesn't have an '--exit-on-error' option. The Busybox and Debian -implementations do have that option. - -Please fix run-parts in https://git.fedorahosted.org/cgit/crontabs.git/tree/ -so we can simplify this script :-) - -''' - - -import os -import subprocess -import sys - - -if len(sys.argv) == 2: - migration_dir = sys.argv[1] -elif len(sys.argv) == 1: - migration_dir = os.path.dirname(__file__) -else: - sys.stderr.write("Usage: %s [MIGRATION_DIR]\n" % sys.argv[0]) - sys.exit(1) - - -def is_executable(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - -env = os.environ -if 'PYTHONPATH' in env: - env['PYTHONPATH'] = env['PYTHONPATH'] + ':' + migration_dir -else: - env['PYTHONPATH'] = migration_dir - -try: - migrations_found = 0 - for fname in sorted(os.listdir(migration_dir)): - migration_fpath = os.path.join(migration_dir, fname) - if is_executable(migration_fpath): - if not os.path.samefile(migration_fpath, __file__) and \ - fname != 'indent': - migrations_found += 1 - sys.stdout.write(migration_fpath + ":\n") - subprocess.check_call( - migration_fpath, env=env) - - if migrations_found == 0: - sys.stderr.write("No migration files found in '%s'\n" % migration_dir) - sys.exit(1) - else: - sys.exit(0) - -except (subprocess.CalledProcessError, RuntimeError) as e: - sys.stderr.write(str(e) + '\n') - sys.exit(1) |