diff --git a/docs/guide/img/absorb.png b/docs/guide/img/absorb.png new file mode 100644 index 0000000..9adb17d Binary files /dev/null and b/docs/guide/img/absorb.png differ diff --git a/docs/guide/img/build.png b/docs/guide/img/build.png index 5241ba4..9ad15c6 100644 Binary files a/docs/guide/img/build.png and b/docs/guide/img/build.png differ diff --git a/docs/guide/img/decoy-hidden.png b/docs/guide/img/decoy-hidden.png index 449e0af..5f08977 100644 Binary files a/docs/guide/img/decoy-hidden.png and b/docs/guide/img/decoy-hidden.png differ diff --git a/docs/guide/img/decoy-views.png b/docs/guide/img/decoy-views.png index 89d7ca6..bb109b6 100644 Binary files a/docs/guide/img/decoy-views.png and b/docs/guide/img/decoy-views.png differ diff --git a/docs/guide/img/list.png b/docs/guide/img/list.png index 782f673..365d513 100644 Binary files a/docs/guide/img/list.png and b/docs/guide/img/list.png differ diff --git a/docs/guide/img/locking.png b/docs/guide/img/locking.png index a7b7423..a7395e3 100644 Binary files a/docs/guide/img/locking.png and b/docs/guide/img/locking.png differ diff --git a/docs/guide/img/mirror.png b/docs/guide/img/mirror.png new file mode 100644 index 0000000..6875b19 Binary files /dev/null and b/docs/guide/img/mirror.png differ diff --git a/docs/guide/img/mv-rm.png b/docs/guide/img/mv-rm.png index b8e5411..ca41f1a 100644 Binary files a/docs/guide/img/mv-rm.png and b/docs/guide/img/mv-rm.png differ diff --git a/docs/guide/img/on-disk.png b/docs/guide/img/on-disk.png index 6983c9a..52b7430 100644 Binary files a/docs/guide/img/on-disk.png and b/docs/guide/img/on-disk.png differ diff --git a/docs/guide/img/scripting.png b/docs/guide/img/scripting.png index 42d51fe..6896ea9 100644 Binary files a/docs/guide/img/scripting.png and b/docs/guide/img/scripting.png differ diff --git a/docs/guide/vault-guide.tex b/docs/guide/vault-guide.tex index 3d231dc..54ac788 100644 --- a/docs/guide/vault-guide.tex +++ b/docs/guide/vault-guide.tex @@ -567,6 +567,8 @@ the whole site, one request at a time, into a folder named after its host. Links inside pages and stylesheets are rewritten to relative paths, so the copy still browses once you get it out. Only the same host is followed. +\shot{mirror}{Mirroring a small site. The links in each page now point at the copy.} + \subsection{From a tar archive: \texttt{absorb}} \cmd{absorb} reads a tar archive, gzipped or not, from standard input and stores every plain file in it, optionally under a folder: @@ -583,6 +585,8 @@ name that tries to climb out with \file{..} are skipped with a note. If the archive stops halfway through a file, that file isn't stored and vault stops; everything before it is already safely in. +\shot{absorb}{A gzipped tarball and a plain tar stream, both absorbed.} + \subsection{Moving in: \texttt{migrate}} \cmd{migrate} works exactly like \cmd{add}, but deletes each original once it's safely stored, then tidies away any folders left empty. It won't take a @@ -956,7 +960,8 @@ covered. \section{Locking is automatic} -Commands that change the vault (\cmd{add}, \cmd{mv}, \cmd{rm}) take an +Commands that change the vault (\cmd{add}, \cmd{migrate}, \cmd{mirror}, +\cmd{absorb}, \cmd{mv}, \cmd{rm}) take an \hl{exclusive} lock. Commands that only read (\cmd{list}, \cmd{get}) take a \hl{shared} one, so several can read at once. If a command has to wait, it says so, then carries on by itself: @@ -1260,12 +1265,16 @@ passphrase. Nothing in this chapter helps with that. Back up your key. enhanced,colback=vmist,colframe=vline,boxrule=0.4pt,arc=4pt,left=9pt,right=9pt,top=7pt,bottom=7pt] \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault genkey}\\[2pt]\small Make a key. Asks for a passphrase and an optional decoy.\end{tcolorbox} \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault init}\\[2pt]\small Make an empty vault, with filler. \texttt{--filler 2G} for more.\end{tcolorbox} -\begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault add FILE|DIR [FOLDER]}\\[2pt]\small Encrypt in, keeping the name. Replaces an existing name.\end{tcolorbox} +\begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault add FILE|DIR|URL [FOLDER]}\\[2pt]\small Encrypt in, keeping the name. Replaces an existing name.\end{tcolorbox} +\begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault migrate FILE|DIR [FOLDER]}\\[2pt]\small Like add, then delete the originals. Asks before replacing.\end{tcolorbox} +\begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault mirror URL [FOLDER]}\\[2pt]\small Crawl a website in, links rewritten to work offline.\end{tcolorbox} +\begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault absorb [FOLDER] < TAR}\\[2pt]\small Every file in a tar or .tar.gz from standard input.\end{tcolorbox} \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault list [FOLDER]}\\[2pt]\small Size, modified time and name, sorted.\end{tcolorbox} \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault get NAME [-o OUT]}\\[2pt]\small Decrypt out. Never overwrites. Verifies first.\end{tcolorbox} \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault mv OLD NEW}\\[2pt]\small Rename, using the full new name. Instant.\end{tcolorbox} \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault rm NAME}\\[2pt]\small Delete one file. No undo.\end{tcolorbox} \begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries vault help}\\[2pt]\small Show the command summary.\end{tcolorbox} +\begin{tcolorbox}{\ttfamily\color{vtealdeep}\bfseries man vault}\\[2pt]\small A manual page for vault and for every command.\end{tcolorbox} \end{tcbraster} \section*{Options and variables} @@ -1277,6 +1286,7 @@ passphrase. Nothing in this chapter helps with that. Back up your key. \textrm{(genkey prompt)} & VAULT\_DECOY\_PASSPHRASE & asked; empty means none \\ -o OUT & \textrm{---} & the file's own name, here \\ --filler SIZE & \textrm{---} & a few tens of MB, for \cmd{init} \\ +--yes & \textrm{---} & ask, for \cmd{migrate} \\ \end{vtable} \section*{Numbers worth knowing}