From 9a407e8e61188bcbe3f8f90adf0f42998dbaaeba Mon Sep 17 00:00:00 2001 From: Cyrille L Date: Wed, 4 Jan 2023 09:38:25 +0100 Subject: [PATCH] lots of new littles things. Better wip management --- src/usr/bin/tyto | 4 +++- src/var/lib/tyto/program/check.py | 23 +++++++++++++++++++---- src/var/lib/tyto/program/domain.py | 8 +++++++- src/var/lib/tyto/program/tyto.py | 11 ++++++----- src/var/lib/tyto/program/wip.py | 25 +++++++++---------------- 5 files changed, 44 insertions(+), 27 deletions(-) diff --git a/src/usr/bin/tyto b/src/usr/bin/tyto index 1680482..8d97ea0 100755 --- a/src/usr/bin/tyto +++ b/src/usr/bin/tyto @@ -54,7 +54,9 @@ options = { '-R' : "Remove", 'remove' : "Remove", '-n' : "New", 'new' : "New", '-e' : "Edit", 'edit' : "Edit", - '-F' : "Force", 'force' : "Force" + '-F' : "Force", 'force' : "Force", + '-s' : "Show", + '-d' : 'DB' } # Set Argument 2 or 3 diff --git a/src/var/lib/tyto/program/check.py b/src/var/lib/tyto/program/check.py index c5513c6..a28b034 100644 --- a/src/var/lib/tyto/program/check.py +++ b/src/var/lib/tyto/program/check.py @@ -28,6 +28,7 @@ import tyto if tyto.domain_exists: exec(open(tyto.domain_conf).read()) post_err = False +date_wip = hash_wip = date_www = hash_www = '' #=========================# @@ -48,8 +49,20 @@ def manage_check(target, option): if option == 'Edit': tyto.edit_file(tyto.uri_root) return + elif option == 'Show': + article_raw = open(tyto.uri_root).read() + for line in article_raw.rsplit('\n'): + print(line) + return if db_exists: + # Just read the DB from command + if option == 'DB': + article_db = open(tyto.post_db).read() + for line in article_db.rsplit('\n'): + print(line) + return + try: exec(open(tyto.post_db).read(),globals()) try: @@ -64,6 +77,7 @@ def manage_check(target, option): # Specific to inline-code: check markers on same line check_icodes(article.rsplit('\n')) + # Protect inline-codes tyto.protect_icodes(post_bottom, article_bottom) post_bottom = tyto.protect_article.rsplit('\n') @@ -609,12 +623,13 @@ def create_database(): 'wip_uri = "%s%s"\n'%(srv_wip, web_uri) + \ 'www_uri = "%s%s"\n'%(srv_www, web_uri) + \ 'http_uri = "%s"\n'%tyto.web_uri + \ + '\n' + \ 'date_chk = "%s"\n'%tyto.nowdate() + \ 'hash_chk = "%s"\n'%tyto.hash_post + \ - 'date_wip = ""\n' + \ - 'hash_wip = ""\n' + \ - 'date_www = ""\n' + \ - 'hash_www = ""\n' + \ + 'date_wip = "%s"\n'%date_wip + \ + 'hash_wip = "%s"\n'%hash_wip + \ + 'date_www = "%s"\n'%date_www + \ + 'hash_www = "%s"\n'%hash_www + \ '\n# Post configuration from needed tags\n' + \ 'title = "%s"\n'%title + \ 'about = "%s"\n'%about + \ diff --git a/src/var/lib/tyto/program/domain.py b/src/var/lib/tyto/program/domain.py index 723dee6..1b45b75 100644 --- a/src/var/lib/tyto/program/domain.py +++ b/src/var/lib/tyto/program/domain.py @@ -29,7 +29,7 @@ def manage_domain(target, option): print(":D Edit domain configuration file:", tyto.domain_conf) tyto.edit_file(tyto.domain_conf) - if option == 'New': + elif option == 'New': if not tyto.domain_exists: create_domain(target) else: @@ -38,6 +38,12 @@ def manage_domain(target, option): if ask in ['y', 'Y']: create_domain(target) else: tyto.exiting("255", '', True) + elif option == 'DB' or option == 'Show': + if tyto.domain_exists: + domain_db = open(tyto.domain_conf).read() + for line in domain_db.rsplit('\n'): + print(line) + #=====================# # Check target if URL # diff --git a/src/var/lib/tyto/program/tyto.py b/src/var/lib/tyto/program/tyto.py index 248c40b..4d7e893 100644 --- a/src/var/lib/tyto/program/tyto.py +++ b/src/var/lib/tyto/program/tyto.py @@ -392,18 +392,19 @@ def protect_bcodes_quotes(process, post_bottom, article_bottom): # Count titles for check # Pass if line is a comment - if not in_bcode or not in_quote: + if not in_bcode and not in_quote: if line.startswith(titles_tags): if process == 'check': nbr_titles += 1 elif line.startswith('#'): - continue + continue if in_bcode: if not bcode: bcode = line else: bcode = '%s\n%s'%(bcode, line) elif in_quote: + if line.startswith('#'): continue if not quote: quote = line else: quote = '%s\n%s'%(quote, line) @@ -482,13 +483,13 @@ def exiting(nbr, value, out): '6' : ':< %sUnused "%s"%s in article'%(CR, CS, value), '7' : ':< Article is %snot valid yet%s'%(CR, CS), '8' : ':< %sNot paired%s: %s'%(CR, CS, value), - '9' : ':D Article has changed (wip is old)', + '9' : ':< Article %shas changed%s. Check it first'%(CR, CS), '10' : ':< %sUnused "%s"%s in article\'s header'%(CR, value, CS), '20' : ':D %sUp-to-date%s article on: %s'%(CG, CS, value), - '21' : ':D %sValid%s article to wip'%(CG, CS), + '21' : ':D %sValid%s article. Ready to wip'%(CG, CS), '22' : ':? %sNot paired%s symbols: %s'%(CY, CS, value), '23' : ':? %sCorrupted database%s: %s'%(CY, CS, value), - '24' : ':? %sMissing wip file%s: %s'%(CY, CS, value), + '24' : ':? %sfile missing%s (wip article): %s'%(CY, CS, value), '255' : ':| Maybe later...' } diff --git a/src/var/lib/tyto/program/wip.py b/src/var/lib/tyto/program/wip.py index dfd7511..55aab43 100644 --- a/src/var/lib/tyto/program/wip.py +++ b/src/var/lib/tyto/program/wip.py @@ -29,33 +29,26 @@ def manage_wip(target, option): if not db_exists: tyto.exiting("4", '', True) - # Has DB: conditions to process - is_wip = True - is_new = False - is_file = True - do_wip = False - # Load DB exec(open(tyto.post_db).read(),globals()) + # Exit if article has changed + if hash_chk != tyto.hash_post: tyto.exiting("9", '', True) + # In any case, if Force if option == 'Force': wip_article(target) return # Compare and check file - if not hash_wip == hash_chk: is_wip = False ; do_wip = True - if not hash_wip == tyto.hash_post: is_new = True ; do_wip = True - if not os.path.exists(wip_uri): is_file = False ; do_wip = True - - if do_wip: - # Show message if wip was done - if hash_wip: - if not is_file: tyto.exiting("24", wip_uri, False) - if is_new: tyto.exiting("9", '', False) + if hash_wip != hash_chk: wip_article(target) else: - tyto.exiting("20", date_wip, True) + if not os.path.exists(wip_uri): + tyto.exiting("24", wip_uri, False) + wip_article(target) + else: + tyto.exiting("20", date_wip, True) #===================#