update doc

This commit is contained in:
fatalerrors
2026-05-19 17:39:15 +02:00
parent 1b28e90c62
commit 9ec52aa49f
3 changed files with 49 additions and 2 deletions

View File

@@ -42,7 +42,22 @@ source /opt/profile/profile.sh
It's not recommended to load that profile in `/etc/profile` as users' `.bashrc` It's not recommended to load that profile in `/etc/profile` as users' `.bashrc`
files might interfere with some aliases and functions defined in profile. files might interfere with some aliases and functions defined in profile.
### 2.1. Initial configuration ### 2.1. Interactive vs non-interactive shells
`profile.sh` detects whether the current shell is interactive.
In interactive shells (typical terminal sessions), profile enables
interactive-only features such as:
- aliases from `[aliases]`
- bash completion scripts from `profile.d/bash-completion/`
- prompt initialization (`PROMPT_COMMAND` and timer hook)
- welcome display (`showinfo`) and startup update check (`check_updates -q`)
In non-interactive shells (typical script execution), those features are
intentionally skipped to avoid side effects and startup noise. Public functions
remain available after sourcing, so scripts can still call profile helpers.
### 2.2. Initial configuration
Copy the example configuration file and customise it to your needs: Copy the example configuration file and customise it to your needs:
```bash ```bash
cp <installpath>/profile/doc/profile.conf.example <installpath>/profile/profile.conf cp <installpath>/profile/doc/profile.conf.example <installpath>/profile/profile.conf
@@ -132,7 +147,7 @@ apply when unset.
`profile.conf` is listed in `.gitignore` so personal values (API keys, cities, `profile.conf` is listed in `.gitignore` so personal values (API keys, cities,
compiler flags, …) are never accidentally staged. Start from the annotated compiler flags, …) are never accidentally staged. Start from the annotated
template at `doc/profile.conf.example` (see [section 2.1](#21-initial-configuration)). template at `doc/profile.conf.example` (see [section 2.2](#22-initial-configuration)).
### 4.1. Core sections ### 4.1. Core sections

View File

@@ -23,6 +23,11 @@ Versions follow `MAJOR.MINOR.PATCH-REVISION_STAGE_N` (e.g. `3.99.1-4_rc_1`).
- `disp` now wraps long messages on terminal width, avoids mid-word splits, and - `disp` now wraps long messages on terminal width, avoids mid-word splits, and
aligns continuation lines with the message body after the prefix. aligns continuation lines with the message body after the prefix.
- `help` now supports `help <command>` and delegates to `<command> --help`. - `help` now supports `help <command>` and delegates to `<command> --help`.
- `taz` now supports `-p auto` / `--parallel=auto` to automatically use the
runtime CPU count. This mode is now the default via
`TAZ_DEFAULT_THREADS=auto`.
- `taz` keeps backward compatibility with legacy `TAZ_DEFAULT_THREADS=0`
values by interpreting `0` as `auto`.
### Fixed ### Fixed
- Startup responsiveness improved: `check_updates -q` now uses a short network - Startup responsiveness improved: `check_updates -q` now uses a short network

View File

@@ -52,6 +52,33 @@ scripts start with `#!/usr/bin/env bash`.
--- ---
**Q: Can I use profile functions in scripts?**
Yes. The supported way is to source `profile.sh` from a Bash script:
```bash
#!/usr/bin/env bash
source /path/to/profile/profile.sh
taz -p auto -f lz mydir
```
You can also source one module directly (for example
`profile.d/compress.sh`) if you only need a subset of functions.
When you source a module directly, profile configuration parsing/loading from
`profile.sh` is skipped, so defaults from `profile.conf` are not applied unless
your script loads them explicitly.
`profile.sh` also detects whether the current shell is interactive. In
non-interactive shells (typical script execution), interactive-only features
are intentionally disabled: prompt setup, aliases, welcome/info messages, and
startup update checks are not enabled.
In all cases, avoid aliases in scripts. Use real commands/functions instead,
because alias expansion is interactive-shell oriented and can be disabled or
behave differently in non-interactive execution.
---
**Q: I set `PROFILE_PATH` but profile still can't find its modules.** **Q: I set `PROFILE_PATH` but profile still can't find its modules.**
`PROFILE_PATH` must be exported *before* you source `profile.sh`: `PROFILE_PATH` must be exported *before* you source `profile.sh`: