From fe5c4788b694e2c092b50035f46023187a57d3a0 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Wed, 23 Jul 2025 12:14:21 +0300 Subject: [PATCH] Replace options with args for directories input --- README.md | 10 +++++----- main.go | 15 +++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c18531b..5017deb 100644 --- a/README.md +++ b/README.md @@ -65,25 +65,25 @@ go build -o photorg ### Основной синтаксис ```bash -./photorg -source <исходная_директория> -dest <целевая_директория> [опции] +./photorg <исходная_директория> <целевая_директория> [опции] ``` ### Параметры -- `-source` - исходная директория для сканирования (обязательный) -- `-dest` - целевая директория для организации файлов (обязательный) +- `исходная_директория` - исходная директория для сканирования (обязательный позиционный аргумент) +- `целевая_директория` - целевая директория для организации файлов (обязательный позиционный аргумент) - `-dry-run` - режим предварительного просмотра без фактического перемещения файлов ### Примеры использования #### Предварительный просмотр ```bash -./photorg -source /home/user/Pictures -dest /home/user/Organized -dry-run +./photorg /home/user/Pictures /home/user/Organized -dry-run ``` #### Организация фотографий ```bash -./photorg -source /home/user/Pictures -dest /home/user/Organized +./photorg /home/user/Pictures /home/user/Organized ``` ## Структура результата diff --git a/main.go b/main.go index 2bbe427..648b002 100644 --- a/main.go +++ b/main.go @@ -31,17 +31,24 @@ type FileInfo struct { func main() { var config Config - flag.StringVar(&config.SourceDir, "source", "", "Source directory to scan for photos") - flag.StringVar(&config.DestDir, "dest", "", "Destination directory to organize photos") flag.BoolVar(&config.DryRun, "dry-run", false, "Show what would be done without actually moving files") flag.Parse() - if config.SourceDir == "" || config.DestDir == "" { - fmt.Println("Usage: photorg -source -dest [-dry-run]") + // Получаем позиционные аргументы + args := flag.Args() + if len(args) != 2 { + fmt.Println("Usage: photorg [-dry-run]") + fmt.Println("\nArguments:") + fmt.Println(" source_dir Source directory to scan for photos") + fmt.Println(" dest_dir Destination directory to organize photos") + fmt.Println("\nOptions:") flag.PrintDefaults() os.Exit(1) } + config.SourceDir = args[0] + config.DestDir = args[1] + if err := validateDirectories(config.SourceDir, config.DestDir); err != nil { log.Fatal(err) }