====== Stow ======
===== Úvod =====
Příkaz **stow** je nástroj pro správu symbolických odkazů (symlinků), který umožňuje efektivně organizovat a propojit konfigurační soubory s jejich cílovým umístěním. Typicky se používá v kombinaci s adresářem obsahujícím konfigurační soubory, často nazývaným **dotfiles**.
===== Doporučené konvence =====
Pojmenování adresáře **dotfiles** je neformální standard používaný v komunitě správců Linuxu a Unixu pro úložiště uživatelských konfigurací. Název odkazuje na tradiční „dotfiles“ – soubory začínající tečkou (.), které jsou běžně skryté v domovském adresáři, například `.bashrc` nebo `.vimrc`.
**Proč používat název dotfiles?**
- **Komunitní standard**:
* Adresář s názvem dotfiles okamžitě signalizuje, že obsahuje vaše konfigurační soubory.
* Nástroje jako GitHub, GitLab a různé skripty často očekávají, že repozitář s názvem dotfiles bude obsahovat konfigurace.
- **Znalostní zkratka**:
* Sdílení repozitáře dotfiles ostatním umožňuje rychle identifikovat vaše nastavení, což usnadňuje spolupráci a inspiraci.
- **Flexibilita**:
* Dotfiles mohou obsahovat nejen soubory začínající tečkou, ale i další složky a konfigurace.
- **Tradice a zdroje**:
* Použití tohoto názvu usnadňuje využití komunitních zdrojů, návodů a projektů zaměřených na správu dotfiles.
===== Příklad adresářové struktury =====
* dotfiles
* .git
* README.md
* kamery
* Kamery
* jednakamera.strm
* druhakamera.strm
* kodi
* .kodi
* userdata
* profiles.xml
* sources.xml
===== Použití =====
Symbolické odkazy lze vytvořit pro všechny složky v adresáři příkazem:
stow */
V mém případě dojde k následujícímu vytvoření symbolických odkazů v domovském adresáři:
- ~/Kamery/jednakamera.strm → dotfiles/kamery/Kamery/jednakamera.strm
- ~/Kamery/druhakamera.strm → dotfiles/kamery/Kamery/druhakamera.strm
- ~/.kodi/userdata/profiles.xml → dotfiles/kodi/.kodi/userdata/profiles.xml
- ~/.kodi/userdata/sources.xml → dotfiles/kodi/.kodi/userdata/sources.xml
Soubory jako `README.md` nebo adresář `.git` jsou automaticky ignorovány, protože je stow má nastavené jako výjimky.
Pro odstranění vytvořených symbolických odkazů lze použít příkaz:
stow -D */
===== Mapování po modulech =====
Pokud nechcete mapovat všechny složky naráz, můžete zvolit konkrétní modul, například složku kodi:
stow kodi
Tento příkaz vytvoří symbolické odkazy pouze pro obsah složky kodi:
- ~/.kodi/userdata/profiles.xml → dotfiles/kodi/.kodi/userdata/profiles.xml
- ~/.kodi/userdata/sources.xml → dotfiles/kodi/.kodi/userdata/sources.xml
===== Práce s domovskou složkou =====
Ve výchozím nastavení **stow** předpokládá, že symbolické odkazy budou vytvořeny v domovském adresáři (`~`).
===== Použití bez domovské složky =====
Pokud nechcete používat domovskou složku, můžete definovat jiný cílový adresář pomocí přepínače `-t`:
stow -t /cesta/k/cilovemu/adresari */
===== Ignorování některých souborů =====
Do složky lze přidat sloubor .stow-local-ignore do kterého zadám, že chci ignorovat některé symlinky. Mám například složku certs, do ní jsem nahrál soubor .stow-local-ignore a do něj jsem vložil zástupné znaky, aby se ignorovaly všechny soubory ve složce.
.*
Při hromadném mapování složek
stow */
Mi tedy nejsou namapovány soubory ve složce, kde je právě soubor .stow-local-ignore.