Convert: Pass sub folder as first argument to limit scope #1081

see https://github.com/photoprism/photoprism/discussions/1081
This commit is contained in:
Michael Mayer
2021-04-20 08:54:44 +02:00
parent 55d502bbca
commit cd63d33bc1
2 changed files with 26 additions and 12 deletions

View File

@@ -2,6 +2,9 @@ package commands
import ( import (
"context" "context"
"github.com/photoprism/photoprism/pkg/txt"
"path/filepath"
"strings"
"time" "time"
"github.com/photoprism/photoprism/internal/config" "github.com/photoprism/photoprism/internal/config"
@@ -13,6 +16,7 @@ import (
var ConvertCommand = cli.Command{ var ConvertCommand = cli.Command{
Name: "convert", Name: "convert",
Usage: "Converts originals in other formats to JPEG and AVC sidecar files", Usage: "Converts originals in other formats to JPEG and AVC sidecar files",
UsageText: `To limit scope, a sub folder may be passed as first argument.`,
Action: convertAction, Action: convertAction,
} }
@@ -34,11 +38,20 @@ func convertAction(ctx *cli.Context) error {
return err return err
} }
log.Infof("converting originals in %s", conf.OriginalsPath()) convertPath := conf.OriginalsPath()
// Use first argument to limit scope if set.
subPath := strings.TrimSpace(ctx.Args().First())
if subPath != "" {
convertPath = filepath.Join(convertPath, subPath)
}
log.Infof("converting originals in %s", txt.Quote(convertPath))
convert := service.Convert() convert := service.Convert()
if err := convert.Start(conf.OriginalsPath()); err != nil { if err := convert.Start(convertPath); err != nil {
log.Error(err) log.Error(err)
} }

View File

@@ -17,6 +17,7 @@ import (
var IndexCommand = cli.Command{ var IndexCommand = cli.Command{
Name: "index", Name: "index",
Usage: "Indexes media files in originals folder", Usage: "Indexes media files in originals folder",
UsageText: `To limit scope, a sub folder may be passed as first argument.`,
Flags: indexFlags, Flags: indexFlags,
Action: indexAction, Action: indexAction,
} }
@@ -48,13 +49,13 @@ func indexAction(ctx *cli.Context) error {
conf.InitDb() conf.InitDb()
// get cli first argument // Use first argument to limit scope if set.
subPath := strings.TrimSpace(ctx.Args().First()) subPath := strings.TrimSpace(ctx.Args().First())
if subPath == "" { if subPath == "" {
log.Infof("indexing photos in %s", txt.Quote(conf.OriginalsPath())) log.Infof("indexing originals in %s", txt.Quote(conf.OriginalsPath()))
} else { } else {
log.Infof("indexing originals folder %s", txt.Quote(filepath.Join(conf.OriginalsPath(), subPath))) log.Infof("indexing originals in %s", txt.Quote(filepath.Join(conf.OriginalsPath(), subPath)))
} }
if conf.ReadOnly() { if conf.ReadOnly() {