# Read Write eXecute One project to rule them all. --- ## Table Of Contents {#toc} * 1 [Why](#why) * 2 [How](#how) * 2.1 [Shell](#how-shell) * 2.2 [Python](#how-python) * 3 [What](#what) * 3.1 [Features](#what-features) * 3.2 [Environment variables](#what-variables) * 4 [Who](#who) * 5 [Where](#where) * 5.1 [Chat](#where-chat) * 5.2 [Repo](#where-repo) * 5.3 [Site](#where-site) * 6 [When](#when) * 6.1 [Release tasks](#when-release) * 6.2 [Further tasks](#when-further) --- ## 1 [Why](#toc) {#why} --- ## 2 [How](#toc) {#how} Two interpreted languages for flexibility. ### 2.1 [Shell](#how) {#how-shell} * [X] functions to * [X] alias * [X] lint * [X] Git * [X] Python * [X] Shell * [X] log * [X] rescue * [X] Hetzner * [X] OVH * [X] profiles * [X] ffmpeg * [X] tmux ### 2.2 [Python](#how) {#how-python} --- ## 3 [What](#toc) {#what} ### 3.1 [Features](#what) {#what-features} * [ ] self * [ ] install modules ### 3.2 [Environment variables](#what) {#what-variables} --- ## 4 [Who](#toc) {#who} * Author: [Marc Beninca](https://forge.rwx.work/marc.beninca) --- ## 5 [Where](#toc) {#where} ### 5.1 [Chat](#where) {#where-chat} * [Discord](https://discord.com/channels/983145051985154108/1255894474895134761) * [IRC](ircs://irc.libera.chat/##rwx) ### 5.2 [Repo](#where) {#where-repo} * [Code](https://forge.rwx.work/rwx.work/rwx) * [Feed](https://forge.rwx.work/rwx.work/rwx.rss) * [Actions](https://forge.rwx.work/rwx.work/rwx/actions) ### 5.3 [Site](#where) {#where-site} * [Web](https://rwx.rwx.work) --- ## 6 [When](#toc) {#when} ### 6.1 [Release tasks](#when) {#when-release} #### Python * character constants for box drawing * common __str__ function * parse pyproject.toml to write commands * write classes for * steps bars to log * system commands to run * with single call of subprocess.run * or alternate subprocess method? #### Shell * git switch signing commits & tags * shellcheck & shfmt * python tools * log * hetzner * apt * apt-file search | grep * ffmpeg ### 6.2 [Further tasks](#when) {#when-further}