dir-odt-to-pdf/README.md
Jesús Pérex 6bf3e86a79 init repo
2025-05-20 21:19:34 +01:00

143 lines
5.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# dir-odt-to-pdf
<img src="resources/icon/app/web/icon-192.png" alt="Dir ODT to PDF" width="120" height="auto">
## 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
## Repository content
<pre>
.
├── 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
</pre>
[dir-odt-to-pdf](dir-odt-to-pdf) is the [Cargo.toml](Cargo.toml) <u>pakage name</u> and it should be <u>directory name</u> for path where [just command](https://just.systems/) will be used with [justfile](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](justfile) settings:
```bash
MACOS_APP_PATH := "DirOdtToPdf.app"
```
## Terminal Commands
[dir-odt-to-pdf](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.<br>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<br>with specific values for **SOURCE** and **DEST**<br>To be used as model. | Does not require (defines them internally) |
<small>In MacOS [install.command](macos/install.command) copy above commands to BIN_APP_PATH(/usr/local/bin)</small>
[justfile](justfile) settings:
```bash
APP_PACKAGE := "DirOdtToPdf"
BIN_APP_PATH := "/usr/local/bin"
```
## Just
### Recipes
```bash
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: 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
```bash
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
| Recipe | alias | Descripción | parameters |
|--------|-------|--------------|--------------------|
| **build** | b | run cargo | |
| **buildall** | ba, ball | on MacOS: <br><ul><li>build target releases for aarch64, x86_64</li><li>create universal (apple-darwin)i with <u>lipo</u></li></ul>on Linux: <ul><li>build target release</li></ul> | |
| **run** | ru | run cargo b -r | |
| **expand** | e | run cargo expand | |
| **fmt** | f | run cargo +nightly fmt | |
| **clean** | cl | run cargo clean | |
| **doc** | d | run cargo doc --open --no-deps | |
| **benchmark** | be | run cargo bench | |
| **test*** | be | run cargo t | |
| **runtest** | rt | run [run.sh](run.sh) script using [test](test) directories for **SOURCE** and **DEST** parametets | |
## To work on app
| Recipe | alias | Descripción | parameters |
|--------|-------|--------------|--------------------|
| **install** | i | on MacOS: <ul><li>install [dir-odt-to-pdf.app](macos/dir-odt-to-pdf.app)</li><li> **make-run** and install commands</li></ul>on Linux: <ul><li>**just make-run**</li><li>install commands</li></ul>| |
| **make-app** | mkapp | on MacOS: <ul><li>make app [dir-odt-to-pdf.app](macos/dir-odt-to-pdf.app) in [macos](macos) directory</li><li>Add icons and commands</li></ul>on Linux: <ul><li>**just buildall**</li></ul> | |
| **make-run** | | on MacOS: <ul><li>install [dir-odt-to-pdf.app](macos/dir-odt-to-pdf.app)</li><li>**just delete-run**</li><li>install commands</li></ul>on Linux: <ul><li>**just delete-run**</li><li>install commands</li></ul>| |
| **delete-run** | | Ask for replace **run-dir-odt-to-pdf.sh** created from [run.sh](run.sh) | |
| **package** | | on MacOS: <ul><li>**just make-app**</li><li>create **DirOdtToPdf.dmg** DMG package in [packages](packages)<br>with [macos README](macos/README) and [macos install](macos/install.command)</li></ul>on Linux: <ul><li>**just make-app**</li><li>pack binary in compressed archive<br> with [linux](linux) files and commands</li></ul> | |