summaryrefslogtreecommitdiff
path: root/readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'readme.txt')
-rw-r--r--readme.txt79
1 files changed, 79 insertions, 0 deletions
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..f8fd8af
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,79 @@
+gempost.sh
+==========
+
+gempost.sh is a simple bash script for "publishing" gemini posts.
+
+usage
+-----
+
+To publish a singel file you can simply run:
+ ./gempost.sh <target-file>
+
+If you're using the index file mode you can optionally add a link description with:
+ ./gempost.sh <target-file> <link-description>
+
+It will based on your configuration:
+
+1. upload the file to your server
+2. modify an indexfile if configured
+3. run any remote post processing (like update your rss feed!)
+
+config
+------
+
+There is a "complete" sample config.sh file in the repository.
+It will look for configs in:
+ 1. GEMPOST_CONFIG_HOME
+ 2. $XDG_CONFIG_HOME/gempost/config.sh
+ 3. $HOME/.config/gempost/config.sh
+
+Then it will simply source the files making the values available.
+
+The available configurations are:
+
+ - GEMPOST_SSH_HOST
+ - the ssh host you wish to publish to - this is used as the entrypoint for both: scp and ssh
+ - scp $FILE $GEMPOST_SSH_HOST:$GEMPOST_REMOTE_PATH/$FILE_NAME
+ - ssh $GEMPOST_SSH_HOST "${GEMPOST_REMOTE_POST_PROCESS}"
+ - GEMPOST_REMOTE_PATH
+ - shown above - this will be where we publish the file to
+ - **NOTE** All paths get "realized" locally - so ~ or $HOME will be your LOCAL HOME FOLDER - use absolute paths to be safe!
+ - GEMPOST_REMOTE_POST_PROCESS
+ - This optional config is a remote ssh command
+ - GEMPOST_INDEX_ON
+ - 0 for disabled, 1 for enabled
+ - This enables the index update logic
+ - GEMPOST_REMOTE_INDEX_FILE
+ - The absolute path to the remote index file you wish to update
+ - GEMPOST_INDEX_LINK_PREFIX
+ - This will be the actual link prefix so "/gemlog" for example
+ - then we'll append ${GEMPOST_INDEX_LINK_PREFIX}/${FILE_NAME}
+ - GEMPOST_PREVIOUS_TITLE_FILE
+ - In order to properly prepend our link to the index file we need a target location we use the previous post as a target
+
+The previous title file is stored in one of:
+ 1. GEMPOST_PREVIOUS_TITLE_FILE
+ 2. $XDG_DATA_HOME/gempost/previous-index-title.txt
+ 3. $HOME/.local/share/gempost/previous-index-title.txt
+
+After the index file is update it'll put the current file name into this file to be used as the next marker.
+
+errors
+------
+
+There are a few errors that can occur (mostly around setups) - We don't trap remote process errors or scp/ssh errors - those will exit and usuall print out an error.
+
+But we have a few error codes in the file:
+
+ # Invalid arguments - Missing file to post
+ ERR_MISSING_TARGET_FILE=2
+ # Supplied file is not found
+ ERR_TARGET_FILE_NOT_FOUND=3
+ # No configuration file in expected locations
+ ERR_CONFIG_FILE_NOT_FOUND=4
+ # GEMPOST_INDEX_ON enabled but the previous title file supplied is empty
+ ERR_PREV_TITLE_EMPTY=5
+ # GEMPOST_INDEX_ON enabled but no previous title file found in expected locations
+ ERR_PREV_TITLE_FILE_NOT_FOUND=6
+
+An error will be written out for any of these, but if you're scripting around it these will be the error codes.