blob: f08d29f00132bc6e018e172c732624bcbb0ab269 [file] [log] [blame]
Mike Frysinger0707e932021-01-27 13:23:58 -05001Warn users whenever `python2` is invoked.
2
3--- a/Modules/main.c
4+++ b/Modules/main.c
Mike Frysingera865c812021-02-10 21:35:24 -05005@@ -237,6 +237,20 @@ static int RunMainFromImporter(char *filename)
6 return -1;
7 }
Mike Frysinger0707e932021-01-27 13:23:58 -05008
Mike Frysingera865c812021-02-10 21:35:24 -05009+void deprecate_warn(FILE *fp)
10+{
Mike Frysinger0707e932021-01-27 13:23:58 -050011+ int tty = isatty(2);
12+ if (tty)
Mike Frysingera865c812021-02-10 21:35:24 -050013+ 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 Frysinger0707e932021-01-27 13:23:58 -050019+ if (tty)
Mike Frysingera865c812021-02-10 21:35:24 -050020+ fprintf(fp, "\e[m");
21+ fprintf(fp, "\n");
22+}
Mike Frysinger0707e932021-01-27 13:23:58 -050023
Mike Frysingera865c812021-02-10 21:35:24 -050024 /* 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;