Prechádzať zdrojové kódy

add images to the README, clean up the imports in the python code

Pat Beirne 2 rokov pred
rodič
commit
925ae23f64
5 zmenil súbory, kde vykonal 46 pridanie a 29 odobranie
  1. 34 15
      README.md
  2. 3 3
      dirnotes
  3. 2 3
      dirnotes-cli
  4. 3 0
      dirnotes-cli.md
  5. 4 8
      dirnotes-tui

+ 34 - 15
README.md

@@ -40,6 +40,9 @@ or if terminal apps are your preference.
 The <code>**dirnotes-cli**</code> is a command line tool, 
 The <code>**dirnotes-cli**</code> is a command line tool, 
 which may be handy for scripting. This all can also do maintenance on the database.
 which may be handy for scripting. This all can also do maintenance on the database.
 
 
+<img src=images/gui_sample.png alt="gui sample" />
+<img src=images/tui_sample.png alt="tui sample" />
+
 ## USAGE
 ## USAGE
 
 
 The <code>**dirnotes**</code> program displays usage and keystoke info 
 The <code>**dirnotes**</code> program displays usage and keystoke info 
@@ -49,7 +52,7 @@ The <code>**dirnotes-cli**</code> program has a man page.
 
 
 In short, you navigate <code>**dirnotes**</code> and 
 In short, you navigate <code>**dirnotes**</code> and 
 <code>**dirnotes-tui**</code> by using the up/down arrow keys, 
 <code>**dirnotes-tui**</code> by using the up/down arrow keys, 
-<enter> to enter into a directory. 
+\<enter\> to enter into a directory. 
 The **-tui** version accepts _e_ for edit, _s_ for sort, _M_ to change 
 The **-tui** version accepts _e_ for edit, _s_ for sort, _M_ to change 
 between xattr/database priority.
 between xattr/database priority.
 
 
@@ -68,10 +71,22 @@ The <code>**dirnotes**</code> app requires _Python3_ and the _Qt5_ framework.
 The <code>**dirnotes-tui**</code> and <code>**dirnotes-cli**</code> apps 
 The <code>**dirnotes-tui**</code> and <code>**dirnotes-cli**</code> apps 
 simply require _Python3_.
 simply require _Python3_.
 
 
-Simply copy the file into your path, to ~/.local/bin for example. 
+Simply mark the 3 python files as executable copy them into your 
+path, to <code>\~/.local/bin/</code> or <code>/usr/local/bin/</code>. 
+
+        chmod a+x dirnotes dirnotes-tui dirnotes-cli
+        cp dirnotes dirnotes-tui dirnotes-cli \~/.local/bin/
+ 
 For a better GUI experience, copy 
 For a better GUI experience, copy 
-<code>dirnotes.desktop</code> to <code>~/.local/share/applications</code> and 
-<code>dirnotes.xpm</code> to <code>~/.local/share/icons/</code> 
+<code>dirnotes.desktop</code> to <code>\~/.local/share/applications</code> and 
+<code>dirnotes.xpm</code> to <code>\~/.local/share/icons/</code> 
+
+If you are using the command-line tool <code>**dirnotes-cli**</code>, 
+you can generate a man page using
+
+        pandoc -s -t man -o dirnotes-cli.1 dirnotes-cli.md
+
+and copy that to ```~/.local/share/man/man1```
 
 
 ### CONFIG FILE
 ### CONFIG FILE
 
 
@@ -79,9 +94,9 @@ By default, the file **~/.config/dirnotes/dirnotes.conf** will be used to
 load the user's config. 
 load the user's config. 
 This is a JSON file, with three attributes that are important:
 This is a JSON file, with three attributes that are important:
 
 
-> * xattr_tag (default: <code>usrr.xdg.comment</code>)
-> * database (default: <code>~/.local/share/dirnotes/dirnotes.db</code>, sensible alt: <code>/var/lib/dirnotes.db</code>) 
-> * start_mode (_xattr_ or _db_ display priority)
+* xattr_tag (default: <code>user.xdg.comment</code>)
+* database (default: <code>~/.local/share/dirnotes/dirnotes.db</code>, sensible alt: <code>/var/lib/dirnotes.db</code>) 
+* start_mode (_xattr_ or _db_ display priority)
 
 
 The _config_file_ should be auto-generated the first time one of 
 The _config_file_ should be auto-generated the first time one of 
 the **dirnotes** apps is run.
 the **dirnotes** apps is run.
@@ -190,9 +205,7 @@ As comments are editted or appended, new records are added to the database.
 Older records are are not purged. This gives you a history of the comments, 
 Older records are are not purged. This gives you a history of the comments, 
 but it means that fetching the most recent comment involves something like
 but it means that fetching the most recent comment involves something like
 
 
-~~~~
-  SELECT * FROM dirnotes WHERE name=? ORDER BY comment_date DESC
-~~~~
+        SELECT * FROM dirnotes WHERE name=? ORDER BY comment_date DESC
 
 
 and just fetch the first record.
 and just fetch the first record.
 
 
@@ -202,7 +215,12 @@ The database is created the first time one of the **dirnotes** apps is run.
 
 
 The <code>**dirnotes**</code> gui app has a desktop icon built into the code. 
 The <code>**dirnotes**</code> gui app has a desktop icon built into the code. 
 There is not need for an external .icon file, but there is an .xpm file included
 There is not need for an external .icon file, but there is an .xpm file included
-in the project, which can be copied to ~/.local/share/icons/
+in the project, which can be copied to <code>~/.local/share/icons/</code>
+
+The 3 apps share a big block of common code. At this point, the code is embedded
+in each executable, but perhaps in the future it will be brought out as a library.
+I just like apps to be a single file I can copy to my various devices and servers,
+but it does create a problem of keepint the 3 apps in sync.
 
 
 ### comment date & author
 ### comment date & author
 
 
@@ -262,10 +280,10 @@ Does anyone have an opinion?
 
 
 2. Is it ok to put the config file and database file buried in ~/.config and ~/.local? 
 2. Is it ok to put the config file and database file buried in ~/.config and ~/.local? 
 
 
-These directories exist on computers with a gui/windowing system installed, 
-but don't neccessarily exist on headless servers. 
-Perhaps the default locations should be in the user directory? 
-(~/.dirnotes.conf and ~/.dirnotes.db)
+    These directories exist on computers with a gui/windowing system installed, 
+    but don't neccessarily exist on headless servers. 
+    Perhaps the default locations should be in the user directory? 
+    (~/.dirnotes.conf and ~/.dirnotes.db)
 
 
 3. Who needs translations?
 3. Who needs translations?
 
 
@@ -284,3 +302,4 @@ Perhaps the default locations should be in the user directory?
         - so, for example, the user can't add comments to /usr/bin/\*
         - so, for example, the user can't add comments to /usr/bin/\*
 
 
 6. Is anyone interested in the MacOS version?
 6. Is anyone interested in the MacOS version?
+

+ 3 - 3
dirnotes

@@ -2,6 +2,7 @@
 
 
 # TODO: XDG compatibility: config in ~/.config/dirnotes/dirnotes.conf and data in ~/.local/share/dirnotes/dirnotes.db
 # TODO: XDG compatibility: config in ~/.config/dirnotes/dirnotes.conf and data in ~/.local/share/dirnotes/dirnotes.db
 # TODO: clearing a comment out to '' doesn't seem to work on both sides
 # TODO: clearing a comment out to '' doesn't seem to work on both sides
+# TODO: change banner line to indicate the CWD 
 
 
 """ a simple gui or command line app
 """ a simple gui or command line app
 to view and create/edit file comments
 to view and create/edit file comments
@@ -61,11 +62,10 @@ the comment box gets a light yellow background.
 double-click the mouse, or hit &lt;Enter&gt;.
 double-click the mouse, or hit &lt;Enter&gt;.
 """
 """
 
 
-import sys,os,time,argparse,stat,getpass,shutil,logging,math
+import sys,argparse,logging
 from   PyQt5.QtGui     import *
 from   PyQt5.QtGui     import *
 from   PyQt5.QtWidgets import *
 from   PyQt5.QtWidgets import *
 from   PyQt5.QtCore    import Qt, pyqtSignal
 from   PyQt5.QtCore    import Qt, pyqtSignal
-import sqlite3, json
 
 
 xattr_comment = "user.xdg.comment"
 xattr_comment = "user.xdg.comment"
 xattr_author  = "user.xdg.comment.author"
 xattr_author  = "user.xdg.comment.author"
@@ -87,7 +87,7 @@ def print_d(*a):
 
 
 # >>> snip here <<<
 # >>> snip here <<<
 #============ the DnDataBase, UiHelper and FileObj code is shared with other dirnotes programs
 #============ the DnDataBase, UiHelper and FileObj code is shared with other dirnotes programs
-import getpass, time, stat, shutil
+import getpass, time, stat, shutil, sqlite3, json, os, math
 
 
 DEFAULT_CONFIG_FILE = "~/.config/dirnotes/dirnotes.conf" # or /etc/dirnotes.conf
 DEFAULT_CONFIG_FILE = "~/.config/dirnotes/dirnotes.conf" # or /etc/dirnotes.conf
 
 

+ 2 - 3
dirnotes-cli

@@ -3,7 +3,7 @@
 
 
 VERSION = "0.4"
 VERSION = "0.4"
 
 
-import os, sys, argparse, json, sqlite3
+import sys, argparse
 
 
 # global mutables 
 # global mutables 
 answer_json = []
 answer_json = []
@@ -23,8 +23,7 @@ def errorBox(*a):
 
 
 # >>> snip here <<<
 # >>> snip here <<<
 #============ the DnDataBase, UiHelper and FileObj code is shared with other dirnotes programs
 #============ the DnDataBase, UiHelper and FileObj code is shared with other dirnotes programs
-import getpass, time, stat, shutil
-
+import getpass, time, stat, shutil, sqlite3, json, os, math
 DEFAULT_CONFIG_FILE = "~/.config/dirnotes/dirnotes.conf" # or /etc/dirnotes.conf
 DEFAULT_CONFIG_FILE = "~/.config/dirnotes/dirnotes.conf" # or /etc/dirnotes.conf
 
 
 # config
 # config

+ 3 - 0
dirnotes-cli.md

@@ -184,6 +184,9 @@ Or, in json format:
 > <code>$ dirnotes-cli -j car_notes.txt</code>  
 > <code>$ dirnotes-cli -j car_notes.txt</code>  
 > <code>[{"file": "car_notes.txt", "comment": "notes on the car repair"}]</code>
 > <code>[{"file": "car_notes.txt", "comment": "notes on the car repair"}]</code>
 
 
+[NOTE: with json output, consider piping the results to <code>jq</code> for
+pretty-print]
+
 To append to a comment:
 To append to a comment:
 
 
 > <code>$ dirnotes-cli -a 'first quote: \$1,400' car_notes.txt</code>  
 > <code>$ dirnotes-cli -a 'first quote: \$1,400' car_notes.txt</code>  

+ 4 - 8
dirnotes-tui

@@ -17,12 +17,9 @@
 #   FileObj: a file with its xattr-comment and db-comment data
 #   FileObj: a file with its xattr-comment and db-comment data
 #   Files: a collection of FileObjs, sortable
 #   Files: a collection of FileObjs, sortable
 
 
-import os, time, stat, sys, shutil
-
-import time, math
-import curses, sqlite3, curses.textpad
-import logging, getpass, argparse
-import json
+import sys, time
+import curses, curses.textpad
+import logging, argparse
 
 
 VERSION = "1.9"
 VERSION = "1.9"
 # these may be different on MacOS
 # these may be different on MacOS
@@ -326,8 +323,7 @@ def errorBox(string):
   
   
 # >>> snip here <<<
 # >>> snip here <<<
 #============ the DnDataBase, UiHelper and FileObj code is shared with other dirnotes programs
 #============ the DnDataBase, UiHelper and FileObj code is shared with other dirnotes programs
-import getpass, time, stat, shutil
-
+import getpass, time, stat, shutil, sqlite3, json, os, math
 DEFAULT_CONFIG_FILE = "~/.config/dirnotes/dirnotes.conf" # or /etc/dirnotes.conf
 DEFAULT_CONFIG_FILE = "~/.config/dirnotes/dirnotes.conf" # or /etc/dirnotes.conf
 
 
 # config
 # config