README.md: Update according to thumbnail generation
This commit is contained in:
parent
77327e7c2d
commit
2f1caebaae
33
README.md
33
README.md
|
@ -23,6 +23,9 @@ portability, minimalism, simplicity and efficiency.
|
||||||
- Uses [`libweb`](https://gitea.privatedns.org/xavi/libweb), a tiny web framework.
|
- Uses [`libweb`](https://gitea.privatedns.org/xavi/libweb), a tiny web framework.
|
||||||
- A simple JSON file as the credentials database.
|
- A simple JSON file as the credentials database.
|
||||||
- No JavaScript.
|
- No JavaScript.
|
||||||
|
- Thumbnail generation can be optionally provided via a
|
||||||
|
[separate application](thumbnail/README-md) and enabled by `slcl` via a command
|
||||||
|
line option. Inter-process communication is achieved via a named pipe.
|
||||||
|
|
||||||
### TLS
|
### TLS
|
||||||
|
|
||||||
|
@ -123,16 +126,32 @@ anything users put into them.
|
||||||
|
|
||||||
**Note:** `slcl` creates the given directory if it does not exist.
|
**Note:** `slcl` creates the given directory if it does not exist.
|
||||||
|
|
||||||
|
[Generated thumbnails](thumbnail/README.md) are stored into another directory,
|
||||||
|
namely `thumbnails`, which is automatically created with directory mode bits
|
||||||
|
set to `0700`.
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── db.json
|
||||||
|
├── public
|
||||||
|
├── thumbnails
|
||||||
|
└── user
|
||||||
|
```
|
||||||
|
|
||||||
A more complete example:
|
A more complete example:
|
||||||
|
|
||||||
```
|
```
|
||||||
.
|
.
|
||||||
├── db.json
|
├── db.json
|
||||||
├── public
|
├── public
|
||||||
│ └── 44e03ab1bc3b0eff1567c76619186596 -> user/alice/file.txt
|
│ └── 44e03ab1bc3b0eff1567c76619186596 -> user/alice/file.jpg
|
||||||
|
├── thumbnails
|
||||||
|
│ ├── alice
|
||||||
|
│ │ └── file.jpg
|
||||||
|
│ └── john
|
||||||
└── user
|
└── user
|
||||||
├── alice
|
├── alice
|
||||||
│ └── file.txt
|
│ └── file.jpg
|
||||||
└── john
|
└── john
|
||||||
└── file2.txt
|
└── file2.txt
|
||||||
```
|
```
|
||||||
|
@ -199,6 +218,16 @@ temporary directory to the database, which might be an expensive operation.
|
||||||
Therefore, in order to avoid expensive copies, define a custom temporary
|
Therefore, in order to avoid expensive copies, define a custom temporary
|
||||||
directory that resides on the same filesystem.
|
directory that resides on the same filesystem.
|
||||||
|
|
||||||
|
#### Thumbnail generation and rendering
|
||||||
|
|
||||||
|
Optionally, `slcl` displays thumbnails when listing a directory, if available
|
||||||
|
from the `thumbnails/` directory. In order to update these thumbnails when
|
||||||
|
files are added/removed to/from the database, a separate application must be
|
||||||
|
executed. See its [`README.md`](thumbnail/README.md) for further reference.
|
||||||
|
|
||||||
|
`slcl` provides the `-F` command line option to enable the use of a named pipe
|
||||||
|
that shall be used by the [thumbnail generation tool](thumbnail/).
|
||||||
|
|
||||||
## Why this project?
|
## Why this project?
|
||||||
|
|
||||||
Previously, I had been recommended Nextcloud as an alternative to proprietary
|
Previously, I had been recommended Nextcloud as an alternative to proprietary
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Thumbnail generation tool for `slcl`
|
||||||
|
|
||||||
|
This directory defines a separation application to be used in conjunction with
|
||||||
|
`slcl`, aimed to update the thumbnail database automatically whenever files
|
||||||
|
are added/removed to/from the database.
|
||||||
|
|
||||||
|
### Root permissions
|
||||||
|
|
||||||
|
This application requires no `root` permissions. So, in order to avoid the
|
||||||
|
risk for security bugs, **please do not run this application as `root`**.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- A POSIX environment.
|
||||||
|
- [`dynstr`](https://gitea.privatedns.org/xavi92/dynstr)
|
||||||
|
(provided as a `git` submodule).
|
||||||
|
- MagickCore
|
||||||
|
- CMake (optional).
|
||||||
|
|
||||||
|
### Ubuntu / Debian
|
||||||
|
|
||||||
|
#### Mandatory packages
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install build-essential libmagickcore-6.q16-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Optional packages
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install cmake
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to use
|
||||||
|
### Build
|
||||||
|
|
||||||
|
Similarly to `slcl`, two build environments are provided - feel free to choose
|
||||||
|
any of them:
|
||||||
|
|
||||||
|
- A mostly POSIX-compliant [`Makefile`](Makefile).
|
||||||
|
- A [`CMakeLists.txt`](CMakeLists.txt).
|
||||||
|
|
||||||
|
`thumbnail` can be built using the standard build process:
|
||||||
|
|
||||||
|
#### Make
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ make
|
||||||
|
```
|
||||||
|
|
||||||
|
#### CMake
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ mkdir build/
|
||||||
|
$ cmake ..
|
||||||
|
$ cmake --build .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This tool only consumes one argument: the directory containing the instance
|
||||||
|
database, which must be the same used by `slcl`. For example:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
thumbnail ~/my-db
|
||||||
|
```
|
Loading…
Reference in New Issue