]> arthur.barton.de Git - bup.git/commitdiff
Refuse to run by default if python version is not 2
authorRob Browning <rlb@defaultvalue.org>
Sun, 2 Sep 2018 17:29:01 +0000 (12:29 -0500)
committerRob Browning <rlb@defaultvalue.org>
Sun, 2 Sep 2018 17:29:04 +0000 (12:29 -0500)
Exit with an error if the python major version isn't 2, since we're
working on support for py3, and we'll probably reach a point before
we're finished where bup doesn't immediately crash with py3, but might
well do very bad things to the repository.

Allow overriding the check by setting
BUP_ALLOW_UNEXPECTED_PYTHON_VERSION=true so people can still test py3
if they like.

Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
main.py

diff --git a/main.py b/main.py
index 19675cd109e897e31fd718452ce21e3dc1e9daab..c0679e32919fa0a6b721ce70bd4eed8add70dcc4 100755 (executable)
--- a/main.py
+++ b/main.py
@@ -5,9 +5,15 @@ exec "$bup_python" "$0" ${1+"$@"}
 """
 # end of bup preamble
 
-from __future__ import absolute_import
+from __future__ import absolute_import, print_function
 import errno, re, sys, os, subprocess, signal, getopt
 
+if sys.version_info[0] != 2 \
+   and not os.environ.get('BUP_ALLOW_UNEXPECTED_PYTHON_VERSION') == 'true':
+    print('error: bup may crash with python versions other than 2, or eat your data',
+          file=sys.stderr)
+    sys.exit(2)
+
 from subprocess import PIPE
 from sys import stderr, stdout
 import select