init repo

This commit is contained in:
Jesús Pérex 2025-05-20 21:19:34 +01:00
commit 6bf3e86a79

142
README.md Normal file
View File

@ -0,0 +1,142 @@
# 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> | |