mirror of
https://github.com/cheat/cheat.git
synced 2024-12-18 18:55:06 +01:00
Merge branch 'master' of https://github.com/0rax/cheat into 0rax-master
* 'master' of https://github.com/0rax/cheat: Added 1 check for EDITOR var, if EDITOR is set to "" + added try catch to catch subprocess error like EDITOR variable pointing to a non installed editor Split EDITOR variable to prevent error on popen while using EDITOR var with spaces prepare to merge Revert Print back to main, would be easier to integrate other positional option like that
This commit is contained in:
commit
545c35722a
51
cheat
51
cheat
@ -69,7 +69,7 @@ class CheatSheets(object):
|
||||
if not self.dirs:
|
||||
error_msg = 'The {default} dir does not exist or the CHEATPATH var is not set.'
|
||||
print >> sys.stderr, error_msg.format(default=DEFAULT_CHEAT_DIR)
|
||||
exit()
|
||||
exit(1)
|
||||
self.sheets = self.__cheat_files()
|
||||
|
||||
def __cheat_directories(self):
|
||||
@ -106,29 +106,38 @@ class CheatSheets(object):
|
||||
# Assert that the EDITOR environment variable is set and that at least 3
|
||||
# arguments have been given
|
||||
if 'EDITOR' not in os.environ:
|
||||
print('In order to use "create" or "edit" you must set your '
|
||||
'EDITOR environment variable to your favorite editor\'s path')
|
||||
exit()
|
||||
|
||||
# if the cheatsheet already exists, open it for editing
|
||||
if cheat in sheets.sheets:
|
||||
subprocess.call([os.environ['EDITOR'],
|
||||
os.path.join(self.sheets[cheat], cheat)])
|
||||
|
||||
# otherwise, create it
|
||||
print >> sys.stderr, ('In order to create/edit a cheatsheet you '
|
||||
'must set your EDITOR environment variable to your favorite '
|
||||
'editor\'s path.')
|
||||
exit(1)
|
||||
elif os.environ['EDITOR'] == "":
|
||||
print >> sys.stderr, ('Your EDITOR environment variable is set '
|
||||
'to nothing, in order to create/edit a cheatsheet your must '
|
||||
'set it to a valid editor\'s path.')
|
||||
exit(1)
|
||||
else:
|
||||
import cheatsheets as cs
|
||||
# Attempt to write the new cheatsheet to the user's ~/.cheat dir if it
|
||||
# exists. If it does not exist, attempt to create it.
|
||||
if os.access(DEFAULT_CHEAT_DIR, os.W_OK) or os.makedirs(DEFAULT_CHEAT_DIR):
|
||||
subprocess.call([os.environ['EDITOR'],
|
||||
os.path.join(DEFAULT_CHEAT_DIR, cheat)])
|
||||
editor = os.environ['EDITOR'].split()
|
||||
# if the cheatsheet already exists, open it for editing
|
||||
try:
|
||||
if cheat in sheets.sheets:
|
||||
subprocess.call(editor + [os.path.join(self.sheets[cheat], cheat)])
|
||||
|
||||
# If the directory cannot be created, write to the python package
|
||||
# directory, though that will likely require the use of sudo
|
||||
# otherwise, create it
|
||||
else:
|
||||
subprocess.call([os.environ['EDITOR'],
|
||||
os.path.join(cs.cheat_dir, cheat)])
|
||||
import cheatsheets as cs
|
||||
# Attempt to write the new cheatsheet to the user's ~/.cheat dir if it
|
||||
# exists. If it does not exist, attempt to create it.
|
||||
if os.access(DEFAULT_CHEAT_DIR, os.W_OK) or os.makedirs(DEFAULT_CHEAT_DIR):
|
||||
subprocess.call(editor + [os.path.join(DEFAULT_CHEAT_DIR, cheat)])
|
||||
|
||||
# If the directory cannot be created, write to the python package
|
||||
# directory, though that will likely require the use of sudo
|
||||
else:
|
||||
subprocess.call(editor + [os.path.join(cs.cheat_dir, cheat)])
|
||||
except OSError, e:
|
||||
print >> sys.stderr, ("Could not launch `%s` as your editor : %s"
|
||||
% (editor[0], e.strerror))
|
||||
exit(1)
|
||||
|
||||
def list(self):
|
||||
"""Lists the cheatsheets that are currently available"""
|
||||
|
Loading…
Reference in New Issue
Block a user