Mike Frysinger | 0707e93 | 2021-01-27 13:23:58 -0500 | [diff] [blame] | 1 | Warn users whenever `python2` is invoked. |
| 2 | |
| 3 | --- a/Modules/main.c |
| 4 | +++ b/Modules/main.c |
Mike Frysinger | a865c81 | 2021-02-10 21:35:24 -0500 | [diff] [blame] | 5 | @@ -237,6 +237,20 @@ static int RunMainFromImporter(char *filename) |
| 6 | return -1; |
| 7 | } |
Mike Frysinger | 0707e93 | 2021-01-27 13:23:58 -0500 | [diff] [blame] | 8 | |
Mike Frysinger | a865c81 | 2021-02-10 21:35:24 -0500 | [diff] [blame] | 9 | +void deprecate_warn(FILE *fp) |
| 10 | +{ |
Mike Frysinger | 0707e93 | 2021-01-27 13:23:58 -0500 | [diff] [blame] | 11 | + int tty = isatty(2); |
| 12 | + if (tty) |
Mike Frysinger | a865c81 | 2021-02-10 21:35:24 -0500 | [diff] [blame] | 13 | + fprintf(fp, "\e[5;1;31m"); |
| 14 | + fprintf(fp, "%s: warning: Python 2.7 is deprecated and will be removed from CrOS by end of 2021. All users must migrate ASAP.\n", |
| 15 | + orig_argv[0]); |
| 16 | + fprintf(fp, "%s: commandline:", orig_argv[0]); |
| 17 | + for (int i = 1; i < orig_argc; ++i) |
| 18 | + fprintf(fp, " %s", orig_argv[i]); |
Mike Frysinger | 0707e93 | 2021-01-27 13:23:58 -0500 | [diff] [blame] | 19 | + if (tty) |
Mike Frysinger | a865c81 | 2021-02-10 21:35:24 -0500 | [diff] [blame] | 20 | + fprintf(fp, "\e[m"); |
| 21 | + fprintf(fp, "\n"); |
| 22 | +} |
Mike Frysinger | 0707e93 | 2021-01-27 13:23:58 -0500 | [diff] [blame] | 23 | |
Mike Frysinger | a865c81 | 2021-02-10 21:35:24 -0500 | [diff] [blame] | 24 | /* Main program */ |
| 25 | |
| 26 | @@ -372,6 +372,7 @@ Py_Main(int argc, char **argv) |
| 27 | _Py_QnewFlag = 1; |
| 28 | break; |
| 29 | } |
| 30 | + deprecate_warn(stderr); |
| 31 | fprintf(stderr, |
| 32 | "-Q option should be `-Qold', " |
| 33 | "`-Qwarn', `-Qwarnall', or `-Qnew' only\n"); |
| 34 | @@ -458,14 +459,19 @@ Py_Main(int argc, char **argv) |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | - if (help) |
| 39 | + if (help) { |
| 40 | + deprecate_warn(stderr); |
| 41 | return usage(0, argv[0]); |
| 42 | + } |
| 43 | |
| 44 | if (version) { |
| 45 | + deprecate_warn(stdout); |
| 46 | fprintf(stderr, "Python %s\n", PY_VERSION); |
| 47 | return 0; |
| 48 | } |
| 49 | |
| 50 | + deprecate_warn(stderr); |
| 51 | + |
| 52 | if (Py_Py3kWarningFlag && !Py_TabcheckFlag) |
| 53 | /* -3 implies -t (but not -tt) */ |
| 54 | Py_TabcheckFlag = 1; |