init: move editor from spack/__init__.py to spack.util.editor
This commit is contained in:
parent
a4d276fbe4
commit
6e398c7f08
@ -207,25 +207,6 @@
|
|||||||
from spack.util.executable import *
|
from spack.util.executable import *
|
||||||
__all__ += spack.util.executable.__all__
|
__all__ += spack.util.executable.__all__
|
||||||
|
|
||||||
|
|
||||||
# Set up the user's editor
|
|
||||||
# $EDITOR environment variable has the highest precedence
|
|
||||||
editor = os.environ.get('EDITOR')
|
|
||||||
|
|
||||||
# if editor is not set, use some sensible defaults
|
|
||||||
if editor is not None:
|
|
||||||
editor = Executable(editor)
|
|
||||||
else:
|
|
||||||
editor = which('vim', 'vi', 'emacs', 'nano')
|
|
||||||
|
|
||||||
# If there is no editor, only raise an error if we actually try to use it.
|
|
||||||
if not editor:
|
|
||||||
def editor_not_found(*args, **kwargs):
|
|
||||||
raise EnvironmentError(
|
|
||||||
'No text editor found! Please set the EDITOR environment variable '
|
|
||||||
'to your preferred text editor.')
|
|
||||||
editor = editor_not_found
|
|
||||||
|
|
||||||
from spack.package import \
|
from spack.package import \
|
||||||
install_dependency_symlinks, flatten_dependencies, \
|
install_dependency_symlinks, flatten_dependencies, \
|
||||||
DependencyConflictError, InstallError, ExternalPackageError
|
DependencyConflictError, InstallError, ExternalPackageError
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
import spack.paths
|
import spack.paths
|
||||||
from spack.spec import Spec
|
from spack.spec import Spec
|
||||||
from spack.repository import Repo
|
from spack.repository import Repo
|
||||||
|
from spack.util.editor import editor
|
||||||
|
|
||||||
description = "open package files in $EDITOR"
|
description = "open package files in $EDITOR"
|
||||||
section = "packaging"
|
section = "packaging"
|
||||||
@ -64,7 +65,7 @@ def edit_package(name, repo_path, namespace):
|
|||||||
tty.die("No package for '{0}' was found.".format(spec.name),
|
tty.die("No package for '{0}' was found.".format(spec.name),
|
||||||
" Use `spack create` to create a new package")
|
" Use `spack create` to create a new package")
|
||||||
|
|
||||||
spack.editor(path)
|
editor(path)
|
||||||
|
|
||||||
|
|
||||||
def setup_parser(subparser):
|
def setup_parser(subparser):
|
||||||
@ -137,9 +138,9 @@ def edit(parser, args):
|
|||||||
path))
|
path))
|
||||||
path = files[0] # already confirmed only one entry in files
|
path = files[0] # already confirmed only one entry in files
|
||||||
|
|
||||||
spack.editor(path)
|
editor(path)
|
||||||
elif name:
|
elif name:
|
||||||
edit_package(name, args.repo, args.namespace)
|
edit_package(name, args.repo, args.namespace)
|
||||||
else:
|
else:
|
||||||
# By default open the directory where packages live
|
# By default open the directory where packages live
|
||||||
spack.editor(path)
|
editor(path)
|
||||||
|
54
lib/spack/spack/util/editor.py
Normal file
54
lib/spack/spack/util/editor.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
##############################################################################
|
||||||
|
# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC.
|
||||||
|
# Produced at the Lawrence Livermore National Laboratory.
|
||||||
|
#
|
||||||
|
# This file is part of Spack.
|
||||||
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
||||||
|
# LLNL-CODE-647188
|
||||||
|
#
|
||||||
|
# For details, see https://github.com/spack/spack
|
||||||
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License (as
|
||||||
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
||||||
|
#
|
||||||
|
# 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 terms and
|
||||||
|
# conditions of the GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
##############################################################################
|
||||||
|
"""Module for finding the user's preferred text editor.
|
||||||
|
|
||||||
|
Defines one variable: ``editor``, which is a
|
||||||
|
``spack.util.executable.Executable`` object that can be called to invoke
|
||||||
|
the editor.
|
||||||
|
|
||||||
|
If no ``editor`` is found, an ``EnvironmentError`` is raised when
|
||||||
|
``editor`` is invoked.
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
from spack.util.executable import Executable, which
|
||||||
|
|
||||||
|
# Set up the user's editor
|
||||||
|
# $EDITOR environment variable has the highest precedence
|
||||||
|
editor = os.environ.get('EDITOR')
|
||||||
|
|
||||||
|
# if editor is not set, use some sensible defaults
|
||||||
|
if editor is not None:
|
||||||
|
editor = Executable(editor)
|
||||||
|
else:
|
||||||
|
editor = which('vim', 'vi', 'emacs', 'nano')
|
||||||
|
|
||||||
|
# If there is no editor, only raise an error if we actually try to use it.
|
||||||
|
if not editor:
|
||||||
|
def editor_not_found(*args, **kwargs):
|
||||||
|
raise EnvironmentError(
|
||||||
|
'No text editor found! Please set the EDITOR environment variable '
|
||||||
|
'to your preferred text editor.')
|
||||||
|
editor = editor_not_found
|
Loading…
Reference in New Issue
Block a user