From a221189356ca81f3c5401440969a6cdee20f9914 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 16 Apr 2021 08:25:36 +0000
Subject: [PATCH] doc

---
 doc/ExampleBorgConfig.adoc |  116 ++++++++++++++++++++++++++++++++++++++
 README.adoc                |   10 +++
 doc/Development.adoc       |   18 ------
 3 files changed, 126 insertions(+), 18 deletions(-)

diff --git a/README.adoc b/README.adoc
index f4be5c5..cc6e078 100644
--- a/README.adoc
+++ b/README.adoc
@@ -69,6 +69,12 @@
 
 You may refer the log file through the web browser or in `$HOME/BorgButler/borgbutler.log`.
 
+=== Starting from Java zip
+You'll need OpenJDK 9+.
+
+1. Download BorgButler from https://sourceforge.net/projects/borgbutler/files/latest/download
+2. Unzip `borgbutler-server/build/distributions/borgbutler-server-<version>.zip`
+3. Run `bin/borgbutler-server` or `bin/borgbutler-server.bat`.
 
 === Starting from sources
 You'll need OpenJDK 9+ as well as gradle.
@@ -109,6 +115,10 @@
 showDemoRepos: false
 ----
 
+== Example on how to script backups (Linux/MacOS)
+Here: link:doc/ExampleBorgConfig{outfilesuffix}[Installation]
+
+
 ==== Backups of configuration files
 
 You may configure and initialize your repositories by the BorgButler app. The config file is generated by BorgButler. Before
diff --git a/doc/Development.adoc b/doc/Development.adoc
index c12086e..c819664 100644
--- a/doc/Development.adoc
+++ b/doc/Development.adoc
@@ -24,24 +24,6 @@
 
 == Build and start inside your IDE
 
-=== Lombok required
-[.text-center]
-https://github.com/mplushnikov/lombok-intellij-plugin[Lombok Intellij plugin description^] +
-[.text-left]
-Or go to
-[.text-center]
-https://projectlombok.org/[Lombok home page^] +
-[.text-left]
-
-* Using IDE built-in plugin system on Windows: +
-  File > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
-* Using IDE built-in plugin system on MacOs: +
-  Preferences > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
-* Manually: +
-  Download the latest release and install it manually using Preferences > Plugins > Install plugin from disk..
-* In your project: Click Preferences -> Build, Execution, Deployment -> Compiler, Annotation Processors. Click Enable Annotation Processing
-
-
 === Start borgbutler-server
 1. `cd borgbutler-webapp`
 2. `npm install`
diff --git a/doc/ExampleBorgConfig.adoc b/doc/ExampleBorgConfig.adoc
new file mode 100644
index 0000000..578e931
--- /dev/null
+++ b/doc/ExampleBorgConfig.adoc
@@ -0,0 +1,116 @@
+Micromata BorgBackup-Butler
+===========================
+Micromata GmbH, Kai Reinhard
+:toc:
+:toclevels: 4
+
+Copyright (C) 2018-2021
+
+ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+
+
+== Examples
+
+=== Borg script client
+
+[source,bash]
+----
+#!/bin/sh
+BORG_COMMAND=~/.borgbutler/bin/borg-macosx64-1.1.8
+
+# Setting this, so the repo does not need to be given on the commandline:
+export BORG_REPO=ssh://horst@borgbackup.acme.priv:23/backups/myLaptop
+export BORG_RSH='ssh -i /home/horst/.ssh/borgbackup'
+
+# Setting this, so you won't be asked for your repository passphrase:
+# export BORG_PASSPHRASE='XYZl0ngandsecurepa_55_phrasea&&123'
+# or this to ask an external program to supply the passphrase:
+export BORG_PASSCOMMAND="cat /home/horst/.borg-passphrase"
+
+# Intialization:
+# 1. export BORG_PASSCOMMAND="cat /home/horst/.borg-passphrase"
+# 2. BORG_RSH='ssh -i /home/horst/.ssh/borgbackup'
+# 3. borg init --encryption=repokey ssh://horst@@borgbackup.acme.priv:23/backups/myLaptop
+
+
+case "$1" in
+  break-lock)
+    borg break-lock $BORG_REPO
+    exit 1
+    ;;
+  info)
+    borg info $BORG_REPO
+    exit 1
+    ;;
+  create)
+    echo Creating backup
+    ;;
+  *)
+    echo "Usage: $0 {break-lock|create|info}" >&2
+    exit 1
+    ;;
+esac
+
+# some helpers and error handling:
+info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; }
+trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM
+
+info "Starting backup"
+
+# Backup the most important directories into an archive named after
+# the machine this script is currently running on:
+
+$BORG_COMMAND create                \
+    --filter AME                    \
+    --stats                         \
+    --progress                      \
+    --show-rc                       \
+    --compression lz4               \
+    --exclude-caches                \
+    --exclude '/home/*/.cache/*'    \
+    --exclude '/Users/*/.cache/*'   \
+    --exclude '/var/cache/*'        \
+    --exclude '/var/tmp/*'          \
+    --exclude '*/Caches/*'          \
+    --exclude '*/.m2/*'             \
+    --exclude '/Users/horst/Library/*' \
+    --exclude '/Users/horst/Music/iTunes/iTunes\ Music/*' \
+    --exclude '/Users/horst/Backup/Archive' \
+    --exclude '/Users/horst/Downloads' \
+    ::'myLaptop-{now}'               \
+    /home/horst                      \
+
+backup_exit=$?
+
+info "Pruning repository"
+
+# Use the `prune` subcommand to maintain 7 daily, 4 weekly and 6 monthly
+# archives of THIS machine. The '{hostname}-' prefix is very important to
+# limit prune's operation to this machine's archives and not apply to
+# other machines' archives also:
+
+$BORG_COMMAND prune                 \
+    --list                          \
+    --prefix 'myLaptop-'             \
+    --show-rc                       \
+    --keep-daily    7               \
+    --keep-weekly   4               \
+    --keep-monthly  6               \
+
+prune_exit=$?
+
+# use highest exit code as global exit code
+global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit ))
+
+if [ ${global_exit} -eq 1 ];
+then
+    info "Backup and/or Prune finished with a warning"
+fi
+
+if [ ${global_exit} -gt 1 ];
+then
+    info "Backup and/or Prune finished with an error"
+fi
+
+exit ${global_exit}
+----

--
Gitblit v1.10.0