9.0 KiB
dir-odt-to-pdf

Convert source directory with odt files to target path with pdf files
Note
Source files will be converted if are changed or not exist in target path
Table of Contents
Overview
The following extensions will be converted via LibreOffice soffice command.
FILES_TO_CONVERT: odt, doc, docx
The following extensions or path will be copied to target with any conversion
FILES_TO_COPY: jpg, jpeg, png, gif, bmp, tiff, webp, avif, txt, md
The following path will be ignored during clean_target_directory process after coversions and copy tasks
PATHS_TO_IGNORE: .DS_Store, .syncthing, .sync-conflict-, .stfolder, .stversions
Repository Content
. ├── Cargo.lock ├── Cargo.toml Rust Cargo defs ├── justfile File defs for just command ├── linux Files to pack app for Linux │ ├── install.sh Installer command (app and bin) │ └── README README for linux installation ├── macos │ ├── dir-odt-to-pdf.scpt Apple Script to build APP │ ├── DirOdtToPdf.app Apple app │ ├── install.command DMG Installer command (app and bin) │ └── README DMG README ├── packages Distribution Packages │ └── DirOdtToPdf.dmg DMG file ├── README.md ├── resources │ ├── icon │ ├── icon.psd │ ├── ins_background.png │ └── tools ├── run.sh Script model to run ├── src │ └── main.rs Rust source code └── test Path to test with run.sh ├── documents Target path PDFs files └── originals Source path ODTs files
dir-odt-to-pdf is the Cargo.toml pakage name and it should be directory name for path where just command will be used with justfile commands and recipes .
MacOS APP
DirOdtToPdf.app run run-dir-odt-to-pdf.sh located in /usr/local/bin
/usr/local/bin/run-dir-odt-to-pdf.sh can be used as a sequence of several executions of dir-odt-to-pdf
justfile settings:
MACOS_APP_PATH := "DirOdtToPdf.app"
Terminal Commands
dir-odt-to-pdf can be used via commands installed in BIN_APP_PATH(/usr/local/bin):
Command filename | Type | Descripción | Required parameters |
---|---|---|---|
dir-odt-to-pdf | Binary | Executable that converts .odt files to .pdf. Requires source and destination paths |
SOURCE (for .odt files) DEST (for .pdf files) |
run-dir-odt-to-pdf.sh | Script bash | Script to executes dir-odt-to-pdf binary with specific values for SOURCE and DEST To be used as model. |
Does not require (defines them internally) |
In MacOS install.command copy above commands to BIN_APP_PATH(/usr/local/bin)
Basic Usage
dir-odt-to-pdf <SOURCE_DIR> <TARGET_DIR> [OPTIONS]
Options
Required Arguments:
<SOURCE_DIR> Source directory with .odt, .doc, or .docx files
<TARGET_DIR> Target directory for PDFs converted files
Optional Arguments:
--log-file <path> Write logs to file instead of console
--log-level <level> Set log level (error/warn/info/debug/trace)
Default: info
--append-log Append to existing log file instead of overwriting
-h, --help Print help
-V, --version Print version
Examples
- Basic conversion (logs to console):
dir-odt-to-pdf /path/to/documents /path/to/pdfs
- Log to file:
dir-odt-to-pdf /path/to/documents /path/to/pdfs --log-file conversion.log
- Debug level logging to console:
dir-odt-to-pdf /path/to/documents /path/to/pdfs --log-level debug
- Append to existing log file with custom level:
dir-odt-to-pdf /path/to/documents /path/to/pdfs \
--log-file conversion.log \
--log-level debug \
--append-log
Log Levels
Available log levels in increasing verbosity:
error
: Only errors that prevent normal operationwarn
: Warnings about potential issuesinfo
: General progress information (default)debug
: Detailed information for troubleshootingtrace
: Very detailed debugging information
Notes
- When
--log-file
is specified, output goes only to the file (not to console) - Without
--append-log
, the log file is overwritten each time - The program will create the target directory if it doesn't exist
- Existing PDF files are only updated if the source file is newer
Settings
justfile settings:
APP_PACKAGE := "DirOdtToPdf"
BIN_APP_PATH := "/usr/local/bin"
Just
Recipes
Available recipes:
benchmark # [alias: be]
build # [alias: b]
buildall # [aliases: ba, ball]
clean # [alias: cl]
doc # [alias: d]
expand # [alias: e]
fmt # [alias: f]
install # [alias: i]
make-app # [alias: mk, mkapp]
package # [alias: p, pkg]
run # [alias: ru]
runtest # [alias: rt]
test # [alias: t]
The following have different recipes for macos and linux
- buildall
- make-run
- make-app
- make-package
- install
Main Values
APP_NAME := file_name(justfile_directory())
APP_PACKAGE := "DirOdtToPdf"
APP_PACKAGES_PATH := justfile_directory() + "/packages/"
APP_RESOURCES_PATH := justfile_directory() + "/resources/"
MACOS_ROOT_PATH := justfile_directory() + "/macos/"
MACOS_APP_PATH := "DirOdtToPdf.app"
MACOS_APP_ICNS_PATH := justfile_directory() + "/resources/icon/app/macos/AppIcon.icns"
SRC_MACOS := file_name(justfile_directory()) + ".scpt"
RUN_SRC := "run.sh"
BIN_APP_PATH := "/usr/local/bin"
For Development
Note
Command-line-options can be added RUST_LOG environment variable controls env_logger output
Recipe | alias | Descripción | parameters |
---|---|---|---|
build | b | run cargo | cargo arguments |
buildall | ba, ball | on MacOS:
|
architecture (arm64 or x86_64 or universal) |
run | ru | run cargo b -r | cargo arguments |
expand | e | run cargo expand | cargo arguments |
fmt | f | run cargo +nightly fmt | cargo arguments |
clean | cl | run cargo clean | cargo arguments |
doc | d | run cargo doc --open --no-deps | cargo arguments |
benchmark | be | run cargo bench | cargo arguments |
test* | be | run cargo t | cargo arguments |
runtest | rt | run run.sh script using test directories for SOURCE and DEST parametets add Command-line-options |
To work on app
Recipe | alias | Descripción | parameters |
---|---|---|---|
install | i | on MacOS:
|
|
make-app | mk , mkapp | on MacOS:
|
architecture (arm64 or x86_64 or universal) |
make-run | on MacOS:
|
||
delete-run | Ask for replace run-dir-odt-to-pdf.sh created from run.sh | ||
package | on MacOS:
|
architecture (arm64 or x86_64 or universal) |