summaryrefslogtreecommitdiff
path: root/editor.py
diff options
context:
space:
mode:
authorGavin Mak <gavinmak@google.com>2023-03-11 06:46:20 +0000
committerLUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-22 17:46:28 +0000
commitea2e330e43c182dc16b0111ebc69ee5a71ee4ce1 (patch)
treedc33ba0e56825b3e007d0589891756724725a465 /editor.py
parent1604cf255f8c1786a23388db6d5277ac7949a24a (diff)
downloadgit-repo-ea2e330e43c182dc16b0111ebc69ee5a71ee4ce1.tar.gz
git-repo-ea2e330e43c182dc16b0111ebc69ee5a71ee4ce1.zip
Format codebase with black and check formatting in CQ
Apply rules set by https://gerrit-review.googlesource.com/c/git-repo/+/362954/ across the codebase and fix any lingering errors caught by flake8. Also check black formatting in run_tests (and CQ). Bug: b/267675342 Change-Id: I972d77649dac351150dcfeb1cd1ad0ea2efc1956 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/363474 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: Gavin Mak <gavinmak@google.com> Commit-Queue: Gavin Mak <gavinmak@google.com>
Diffstat (limited to 'editor.py')
-rw-r--r--editor.py184
1 files changed, 95 insertions, 89 deletions
diff --git a/editor.py b/editor.py
index b84a42d41..96835abaa 100644
--- a/editor.py
+++ b/editor.py
@@ -23,93 +23,99 @@ import platform_utils
class Editor(object):
- """Manages the user's preferred text editor."""
-
- _editor = None
- globalConfig = None
-
- @classmethod
- def _GetEditor(cls):
- if cls._editor is None:
- cls._editor = cls._SelectEditor()
- return cls._editor
-
- @classmethod
- def _SelectEditor(cls):
- e = os.getenv('GIT_EDITOR')
- if e:
- return e
-
- if cls.globalConfig:
- e = cls.globalConfig.GetString('core.editor')
- if e:
- return e
-
- e = os.getenv('VISUAL')
- if e:
- return e
-
- e = os.getenv('EDITOR')
- if e:
- return e
-
- if os.getenv('TERM') == 'dumb':
- print(
- """No editor specified in GIT_EDITOR, core.editor, VISUAL or EDITOR.
+ """Manages the user's preferred text editor."""
+
+ _editor = None
+ globalConfig = None
+
+ @classmethod
+ def _GetEditor(cls):
+ if cls._editor is None:
+ cls._editor = cls._SelectEditor()
+ return cls._editor
+
+ @classmethod
+ def _SelectEditor(cls):
+ e = os.getenv("GIT_EDITOR")
+ if e:
+ return e
+
+ if cls.globalConfig:
+ e = cls.globalConfig.GetString("core.editor")
+ if e:
+ return e
+
+ e = os.getenv("VISUAL")
+ if e:
+ return e
+
+ e = os.getenv("EDITOR")
+ if e:
+ return e
+
+ if os.getenv("TERM") == "dumb":
+ print(
+ """No editor specified in GIT_EDITOR, core.editor, VISUAL or EDITOR.
Tried to fall back to vi but terminal is dumb. Please configure at
-least one of these before using this command.""", file=sys.stderr)
- sys.exit(1)
-
- return 'vi'
-
- @classmethod
- def EditString(cls, data):
- """Opens an editor to edit the given content.
-
- Args:
- data: The text to edit.
-
- Returns:
- New value of edited text.
-
- Raises:
- EditorError: The editor failed to run.
- """
- editor = cls._GetEditor()
- if editor == ':':
- return data
-
- fd, path = tempfile.mkstemp()
- try:
- os.write(fd, data.encode('utf-8'))
- os.close(fd)
- fd = None
-
- if platform_utils.isWindows():
- # Split on spaces, respecting quoted strings
- import shlex
- args = shlex.split(editor)
- shell = False
- elif re.compile("^.*[$ \t'].*$").match(editor):
- args = [editor + ' "$@"', 'sh']
- shell = True
- else:
- args = [editor]
- shell = False
- args.append(path)
-
- try:
- rc = subprocess.Popen(args, shell=shell).wait()
- except OSError as e:
- raise EditorError('editor failed, %s: %s %s'
- % (str(e), editor, path))
- if rc != 0:
- raise EditorError('editor failed with exit status %d: %s %s'
- % (rc, editor, path))
-
- with open(path, mode='rb') as fd2:
- return fd2.read().decode('utf-8')
- finally:
- if fd:
- os.close(fd)
- platform_utils.remove(path)
+least one of these before using this command.""", # noqa: E501
+ file=sys.stderr,
+ )
+ sys.exit(1)
+
+ return "vi"
+
+ @classmethod
+ def EditString(cls, data):
+ """Opens an editor to edit the given content.
+
+ Args:
+ data: The text to edit.
+
+ Returns:
+ New value of edited text.
+
+ Raises:
+ EditorError: The editor failed to run.
+ """
+ editor = cls._GetEditor()
+ if editor == ":":
+ return data
+
+ fd, path = tempfile.mkstemp()
+ try:
+ os.write(fd, data.encode("utf-8"))
+ os.close(fd)
+ fd = None
+
+ if platform_utils.isWindows():
+ # Split on spaces, respecting quoted strings
+ import shlex
+
+ args = shlex.split(editor)
+ shell = False
+ elif re.compile("^.*[$ \t'].*$").match(editor):
+ args = [editor + ' "$@"', "sh"]
+ shell = True
+ else:
+ args = [editor]
+ shell = False
+ args.append(path)
+
+ try:
+ rc = subprocess.Popen(args, shell=shell).wait()
+ except OSError as e:
+ raise EditorError(
+ "editor failed, %s: %s %s" % (str(e), editor, path)
+ )
+ if rc != 0:
+ raise EditorError(
+ "editor failed with exit status %d: %s %s"
+ % (rc, editor, path)
+ )
+
+ with open(path, mode="rb") as fd2:
+ return fd2.read().decode("utf-8")
+ finally:
+ if fd:
+ os.close(fd)
+ platform_utils.remove(path)