mirror of
https://github.com/Erreur32/cheat.git
synced 2024-12-23 06:02:12 +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
1 changed files with 30 additions and 21 deletions
51
cheat
51
cheat
|
@ -69,7 +69,7 @@ class CheatSheets(object):
|
||||||
if not self.dirs:
|
if not self.dirs:
|
||||||
error_msg = 'The {default} dir does not exist or the CHEATPATH var is not set.'
|
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)
|
print >> sys.stderr, error_msg.format(default=DEFAULT_CHEAT_DIR)
|
||||||
exit()
|
exit(1)
|
||||||
self.sheets = self.__cheat_files()
|
self.sheets = self.__cheat_files()
|
||||||
|
|
||||||
def __cheat_directories(self):
|
def __cheat_directories(self):
|
||||||
|
@ -106,29 +106,38 @@ class CheatSheets(object):
|
||||||
# Assert that the EDITOR environment variable is set and that at least 3
|
# Assert that the EDITOR environment variable is set and that at least 3
|
||||||
# arguments have been given
|
# arguments have been given
|
||||||
if 'EDITOR' not in os.environ:
|
if 'EDITOR' not in os.environ:
|
||||||
print('In order to use "create" or "edit" you must set your '
|
print >> sys.stderr, ('In order to create/edit a cheatsheet you '
|
||||||
'EDITOR environment variable to your favorite editor\'s path')
|
'must set your EDITOR environment variable to your favorite '
|
||||||
exit()
|
'editor\'s path.')
|
||||||
|
exit(1)
|
||||||
# if the cheatsheet already exists, open it for editing
|
elif os.environ['EDITOR'] == "":
|
||||||
if cheat in sheets.sheets:
|
print >> sys.stderr, ('Your EDITOR environment variable is set '
|
||||||
subprocess.call([os.environ['EDITOR'],
|
'to nothing, in order to create/edit a cheatsheet your must '
|
||||||
os.path.join(self.sheets[cheat], cheat)])
|
'set it to a valid editor\'s path.')
|
||||||
|
exit(1)
|
||||||
# otherwise, create it
|
|
||||||
else:
|
else:
|
||||||
import cheatsheets as cs
|
editor = os.environ['EDITOR'].split()
|
||||||
# Attempt to write the new cheatsheet to the user's ~/.cheat dir if it
|
# if the cheatsheet already exists, open it for editing
|
||||||
# exists. If it does not exist, attempt to create it.
|
try:
|
||||||
if os.access(DEFAULT_CHEAT_DIR, os.W_OK) or os.makedirs(DEFAULT_CHEAT_DIR):
|
if cheat in sheets.sheets:
|
||||||
subprocess.call([os.environ['EDITOR'],
|
subprocess.call(editor + [os.path.join(self.sheets[cheat], cheat)])
|
||||||
os.path.join(DEFAULT_CHEAT_DIR, cheat)])
|
|
||||||
|
|
||||||
# If the directory cannot be created, write to the python package
|
# otherwise, create it
|
||||||
# directory, though that will likely require the use of sudo
|
|
||||||
else:
|
else:
|
||||||
subprocess.call([os.environ['EDITOR'],
|
import cheatsheets as cs
|
||||||
os.path.join(cs.cheat_dir, cheat)])
|
# 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):
|
def list(self):
|
||||||
"""Lists the cheatsheets that are currently available"""
|
"""Lists the cheatsheets that are currently available"""
|
||||||
|
|
Loading…
Reference in a new issue