Rename project to docspell-cli
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Docspell Import
|
# Docspell CLI
|
||||||
|
|
||||||
Ein Tool zum Aufräumen des Docspell-Importverzeichnisses und zum automatischen Archivieren von bestätigten Dokumenten.
|
Ein Tool zum Aufräumen des Docspell-Importverzeichnisses und zum automatischen Archivieren von bestätigten Dokumenten.
|
||||||
|
|
||||||
@@ -16,23 +16,23 @@ Das Programm:
|
|||||||
|
|
||||||
- [Docspell Command Line Client (dsc)](https://docspell.org/docs/tools/cli/)
|
- [Docspell Command Line Client (dsc)](https://docspell.org/docs/tools/cli/)
|
||||||
- `jq` Kommandozeilentool
|
- `jq` Kommandozeilentool
|
||||||
- Eine Konfigurationsdatei unter `~/docspell-import.json`
|
- Eine Konfigurationsdatei unter `~/docspell-cli.json`
|
||||||
|
|
||||||
## Konfiguration
|
## Konfiguration
|
||||||
|
|
||||||
Erstellen Sie eine `docspell-import.json` Datei in Ihrem Home-Verzeichnis: [Beispiel-Konfiguration](./docspell-import-example.json)
|
Erstellen Sie eine `docspell-cli.json` Datei in Ihrem Home-Verzeichnis: [Beispiel-Konfiguration](./docspell-cli-example.json)
|
||||||
|
|
||||||
## Read-only FUSE mount
|
## Read-only FUSE mount
|
||||||
|
|
||||||
The `mount` subcommand exposes a Docspell collection as a read-only filesystem.
|
The `mount` subcommand exposes a Docspell collection as a read-only filesystem.
|
||||||
It uses the same `~/docspell-import.json` configuration and password command as the import command.
|
It uses the same `~/docspell-cli.json` configuration and password command as the import command.
|
||||||
Set `mountPath` in the config to define the default mount point and `mountQuery` to define the default Docspell query.
|
Set `mountPath` in the config to define the default mount point and `mountQuery` to define the default Docspell query.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p ~/mnt/docspell
|
mkdir -p ~/mnt/docspell
|
||||||
docspell-import mount ~/mnt/docspell # starts in the background
|
docspell-cli mount ~/mnt/docspell # starts in the background
|
||||||
# or, with mountPath configured:
|
# or, with mountPath configured:
|
||||||
docspell-import mount
|
docspell-cli mount
|
||||||
# unmount when done
|
# unmount when done
|
||||||
fusermount -u ~/mnt/docspell
|
fusermount -u ~/mnt/docspell
|
||||||
```
|
```
|
||||||
@@ -54,8 +54,8 @@ The mount is read-only. File contents are downloaded lazily from `/api/v1/sec/at
|
|||||||
Helper commands:
|
Helper commands:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docspell-import get-local-path <item-id-or-web-url>
|
docspell-cli get-local-path <item-id-or-web-url>
|
||||||
docspell-import get-url <local-mounted-path-or-item-id>
|
docspell-cli get-url <local-mounted-path-or-item-id>
|
||||||
```
|
```
|
||||||
|
|
||||||
`get-local-path` starts the configured mount in the background if it is not mounted yet.
|
`get-local-path` starts the configured mount in the background if it is not mounted yet.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
module git.javil.eu/jacob1123/docspell-import
|
module git.javil.eu/jacob1123/docspell-cli
|
||||||
|
|
||||||
go 1.23.4
|
go 1.23.4
|
||||||
|
|
||||||
|
|||||||
@@ -62,13 +62,6 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("##################### START #####################")
|
|
||||||
fmt.Println(" Docspell Import - v0.3")
|
|
||||||
fmt.Println(" by jacob1123")
|
|
||||||
fmt.Println(" (based on work by totti4ever) ")
|
|
||||||
fmt.Println("#################################################")
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
runImportCommand(cfg, password, os.Args[1:])
|
runImportCommand(cfg, password, os.Args[1:])
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +72,7 @@ func loadConfigAndPassword() (config, string) {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
configFile := filepath.Join(homeDir, "docspell-import.json")
|
configFile := filepath.Join(homeDir, "docspell-cli.json")
|
||||||
configData, err := os.ReadFile(configFile)
|
configData, err := os.ReadFile(configFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error reading config file:", err)
|
fmt.Println("Error reading config file:", err)
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ func runMountCommand(args []string, cfg config, password string) error {
|
|||||||
if mountPoint == "" {
|
if mountPoint == "" {
|
||||||
return fmt.Errorf("mount point missing: pass one or set MountPath in config")
|
return fmt.Errorf("mount point missing: pass one or set MountPath in config")
|
||||||
}
|
}
|
||||||
if os.Getenv("DOCSPELL_IMPORT_MOUNT_FOREGROUND") != "1" {
|
if os.Getenv("DOCSPELL_CLI_MOUNT_FOREGROUND") != "1" {
|
||||||
return startMountInBackground(args, mountPoint, false)
|
return startMountInBackground(args, mountPoint, false)
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(mountPoint, 0755); err != nil {
|
if err := os.MkdirAll(mountPoint, 0755); err != nil {
|
||||||
@@ -73,7 +73,7 @@ func runMountCommand(args []string, cfg config, password string) error {
|
|||||||
conn, err := fuse.Mount(
|
conn, err := fuse.Mount(
|
||||||
mountPoint,
|
mountPoint,
|
||||||
fuse.FSName("docspell"),
|
fuse.FSName("docspell"),
|
||||||
fuse.Subtype("docspell-import"),
|
fuse.Subtype("docspell-cli"),
|
||||||
fuse.ReadOnly(),
|
fuse.ReadOnly(),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -94,7 +94,7 @@ func startMountInBackground(args []string, mountPoint string, quiet bool) error
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
cmd := exec.Command(os.Args[0], append([]string{"mount"}, args...)...)
|
cmd := exec.Command(os.Args[0], append([]string{"mount"}, args...)...)
|
||||||
cmd.Env = append(os.Environ(), "DOCSPELL_IMPORT_MOUNT_FOREGROUND=1")
|
cmd.Env = append(os.Environ(), "DOCSPELL_CLI_MOUNT_FOREGROUND=1")
|
||||||
logFile, err := mountLogFile()
|
logFile, err := mountLogFile()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -226,9 +226,9 @@ func cleanMountPath(path string) string {
|
|||||||
func mountLogPath() string {
|
func mountLogPath() string {
|
||||||
cacheDir, err := os.UserCacheDir()
|
cacheDir, err := os.UserCacheDir()
|
||||||
if err != nil || cacheDir == "" {
|
if err != nil || cacheDir == "" {
|
||||||
return filepath.Join(os.TempDir(), "docspell-import-mount.log")
|
return filepath.Join(os.TempDir(), "docspell-cli-mount.log")
|
||||||
}
|
}
|
||||||
return filepath.Join(cacheDir, "docspell-import", "mount.log")
|
return filepath.Join(cacheDir, "docspell-cli", "mount.log")
|
||||||
}
|
}
|
||||||
|
|
||||||
func mountLogFile() (*os.File, error) {
|
func mountLogFile() (*os.File, error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user