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 *
|
||||
__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 \
|
||||
install_dependency_symlinks, flatten_dependencies, \
|
||||
DependencyConflictError, InstallError, ExternalPackageError
|
||||
|
@ -31,6 +31,7 @@
|
||||
import spack.paths
|
||||
from spack.spec import Spec
|
||||
from spack.repository import Repo
|
||||
from spack.util.editor import editor
|
||||
|
||||
description = "open package files in $EDITOR"
|
||||
section = "packaging"
|
||||
@ -64,7 +65,7 @@ def edit_package(name, repo_path, namespace):
|
||||
tty.die("No package for '{0}' was found.".format(spec.name),
|
||||
" Use `spack create` to create a new package")
|
||||
|
||||
spack.editor(path)
|
||||
editor(path)
|
||||
|
||||
|
||||
def setup_parser(subparser):
|
||||
@ -137,9 +138,9 @@ def edit(parser, args):
|
||||
path))
|
||||
path = files[0] # already confirmed only one entry in files
|
||||
|
||||
spack.editor(path)
|
||||
editor(path)
|
||||
elif name:
|
||||
edit_package(name, args.repo, args.namespace)
|
||||
else:
|
||||
# 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