aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Powers <markppowers0@gmail.com>2020-09-25 21:06:04 -0500
committerMark Powers <markppowers0@gmail.com>2020-09-25 21:06:04 -0500
commitb292b2906229e7054fcd2671307147e4f471e5ef (patch)
treec23f5b177f508b7b83a554fcbaf796b441b0ef32
parentb1d66f527869236b877207fb617c2660ef68e95e (diff)
Add open in editor option for create
-rwxr-xr-xmain.py39
1 files changed, 23 insertions, 16 deletions
diff --git a/main.py b/main.py
index d78b26f..9000aa7 100755
--- a/main.py
+++ b/main.py
@@ -10,12 +10,15 @@ def print_item(item):
print("| %6s | %20s | %44s |" % (item["id"], trimmmed_path, item["title"]) )
def create():
- if len(sys.argv) < 5:
- print("Usage: ./main.py create <path> <title> <content>")
+ if len(sys.argv) < 4:
+ print("Usage: ./main.py create <path> <title> <content?>")
sys.exit(1)
path = sys.argv[2]
title = sys.argv[3]
- content = sys.argv[4]
+ if len(sys.argv) == 4:
+ content = open_editor("/tmp/wikijscmd-create", "")
+ else:
+ content = sys.argv[4]
response = graphql_queries.create_page(content, title, path)
result = response["data"]["pages"]["create"]["responseResult"]
if not result["succeeded"]:
@@ -56,6 +59,20 @@ def single():
print("-" * 80)
print(page["content"])
+def open_editor(filename, initial_body):
+ if "VISUAL" in os.environ:
+ editor = os.environ['VISUAL']
+ else:
+ editor = os.environ['EDITOR']
+ if len(initial_body) > 0:
+ with open(filename, "w") as f:
+ f.write(initial_body)
+ subprocess.run([editor, filename])
+ with open(filename, "r") as f:
+ new_body = f.read()
+ os.remove(filename)
+ return new_body
+
def edit():
# Load content to edit
if len(sys.argv) < 3:
@@ -65,18 +82,9 @@ def edit():
body = page["content"]
# Open it in editor
- if "VISUAL" in os.environ:
- editor = os.environ['VISUAL']
- else:
- editor = os.environ['EDITOR']
- edit_filename = "/tmp/wikijscmd-edit"
- with open(edit_filename, "w") as f:
- f.write(body)
- subprocess.run([editor, edit_filename])
-
+ new_body = open_editor("/tmp/wikijscmd-edit", body)
+
# Prompt user to save it to the wiki
- with open(edit_filename, "r") as f:
- new_body = f.read()
print_item(page)
print("-" * 80)
print(new_body)
@@ -88,13 +96,12 @@ def edit():
print("Error!", result["message"])
sys.exit(1)
print(result["message"])
- os.remove(edit_filename)
def main():
if len(sys.argv) < 2:
print("Usage: ./main.py <command> <args>")
print("Commands:")
- print("\tcreate <path> <title> <content>")
+ print("\tcreate <path> <title> <content?>")
print("\ttree <contains?>")
print("\tsingle <id|path>")
print("\tedit <id|path>")