diff options
Diffstat (limited to 'readme.txt')
-rw-r--r-- | readme.txt | 79 |
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. |