krz/nfogen

A scene-style ASCII .nfo generator.

clone: git clone https://gitbay.org/krz/nfogen.git

8bc87b709e5c35ffb35e6e5264dd00e2b4268b43

verified · cmc

author: Christian Cleberg <hello@cleberg.net> · 2026-08-08T06:17:04Z

regenerate README as a feature showcase (banner, double 79-col, info, footer)
 README.nfo  | 110 ++++++++++++++++++++++++++----------------------------------
 nfogen.toml |  94 ++++++++++++++++++++++-----------------------------
 2 files changed, 87 insertions(+), 117 deletions(-)

diff --git a/README.nfo b/README.nfo
index 02695be..cf8196d 100644
--- a/README.nfo
+++ b/README.nfo
@@ -1,63 +1,47 @@
-┌──────────────────────────────────────────────────────────────┐
-│                     N F O G E N   1 . 2                      │
-│                       [ KRZ ]   krz.sh                       │
-├──────────────────────────────────────────────────────────────┤
-│   DATE   2026-08-08                                          │
-│   TYPE   APP                                                 │
-│   FILES  nfogen.py                                           │
-│   URL    krz.sh                                              │
-├──────────────────────────────────────────────────────────────┤
-│   NOTES                                                      │
-│                                                              │
-│   A scene-style ASCII .nfo generator. A single               │
-│   zero-dependency Python file. Builds this very box          │
-│   from CLI flags, a config file, prompts, or a mix.          │
-│                                                              │
-│   REQUIRES python3 (3.11+ for TOML, else JSON).              │
-│                                                              │
-│   USAGE                                                      │
-│   nfogen.py --title "nfogen 1.2" --type APP                  │
-│   nfogen.py -c nfogen.toml --title "nfogen 1.2"              │
-│   nfogen.py -i  prompts for every field.                     │
-│   nfogen.py alone prompts when no title given.               │
-│                                                              │
-│   ORDER: config file < CLI flags < prompts.                  │
-│                                                              │
-│   CONFIG: a .toml or .json auto-loaded from                  │
-│   ./nfogen.toml, ./.nfogen.toml, or the path                 │
-│   ~/.config/nfogen/config.toml. Holds any field              │
-│   default plus group, site, width. Or use -c PATH.           │
-│                                                              │
-│   FIELDS (all optional but title):                           │
-│   release: cracker supplier packager protection              │
-│            install rating date source                        │
-│   program: type publisher format disks size files url        │
-│   media:   video audio resolution language genre runtime     │
-│   text:    notes greets                                      │
-│                                                              │
-│   LAYOUT: rows (default) or panel  (2-col, --layout)         │
-│   STYLES: single, double, block   (--style)                  │
-│   ENCODING: utf8 or cp437  (--encoding cp437 = DOS)          │
-│   LOGO: --logo art.asc places art above the box              │
-│   BANNERS: --presents  --footer   scene boilerplate          │
-│                                                              │
-│   PROFILE: -p group.toml supplies logo, footer,              │
-│            members, couriers, boards, affiliates,            │
-│            news, outposts. release cfg overrides it.         │
-│                                                              │
-│   MEDIAINFO: --mediainfo dump.json auto-fills                │
-│              video/audio/res/size/runtime/format.            │
-│   BANNER: --banner makes an ASCII logo (--banner-text)       │
-│   TEMPLATES: -t razor|modern|minimal presets                 │
-│              (--list-templates)                              │
-│                                                              │
-│   OPTIONS: -o -c -p -t -g -s -w --style --layout             │
-│            --logo --banner --mediainfo --encoding            │
-│            --presents --footer -i --no-input                 │
-│                                                              │
-│   Generated by nfogen itself.                                │
-├──────────────────────────────────────────────────────────────┤
-│   GREETS                                                     │
-│                                                              │
-│   you   the-scene                                            │
-└──────────────────────────────────────────────────────────────┘
+                   #   #  #####   ###    ####  #####  #   #
+                   ##  #  #      #   #  #      #      ##  #
+                   # # #  ###    #   #  #  ##  ###    # # #
+                   #  ##  #      #   #  #   #  #      #  ##
+                   #   #  #       ###    ####  #####  #   #
+
+╔═════════════════════════════════════════════════════════════════════════════╗
+║                             N F O G E N   1 . 2                             ║
+║                               [ KRZ ]   krz.sh                              ║
+╠═════════════════════════════════════════════════════════════════════════════╣
+║   DATE       2026-08-08                                                     ║
+║   TYPE       CLI / library                                                  ║
+║   PUBLISHER  krazy warez                                                    ║
+║   LANGUAGE   Python 3.11+  (any 3.x with a JSON config)                     ║
+║   FILES      nfogen.py  --  single file, zero deps                          ║
+║   URL        krz.sh                                                         ║
+╠═════════════════════════════════════════════════════════════════════════════╣
+║   NOTES                                                                     ║
+║                                                                             ║
+║   nfogen builds scene-style ASCII .nfo files from CLI flags, a config       ║
+║   file, interactive prompts, or any mix of the three.                       ║
+║                                                                             ║
+║   FEATURES                                                                  ║
+║     - CP437 or UTF-8 output; single / double / block box styles             ║
+║     - two-column release+game info panel, or simple rows                    ║
+║     - group profiles: reusable logo, members, couriers, boards              ║
+║     - mediainfo import auto-fills video / audio / resolution / size         ║
+║     - built-in ASCII banner generator for header logos (this one!)          ║
+║     - bundled templates: razor, modern, minimal                             ║
+║                                                                             ║
+║   QUICKSTART                                                                ║
+║     nfogen.py --title "Some.App.v1-KRZ" --type APP --banner                 ║
+║     nfogen.py -c release.toml -p group.toml -o release.nfo                  ║
+║     nfogen.py -t razor --title "..." --mediainfo dump.json                  ║
+║     nfogen.py -i                          (prompt for every field)          ║
+║                                                                             ║
+║   RESOLUTION ORDER                                                          ║
+║     template < profile < config file < CLI flags < prompts                  ║
+║                                                                             ║
+║   See examples/ for full release nfos and a group profile, and              ║
+║   templates/ for the bundled presets. This README.nfo was itself            ║
+║   generated by nfogen:   nfogen.py -c nfogen.toml                           ║
+╠═════════════════════════════════════════════════════════════════════════════╣
+║                                                                             ║
+║                     nfogen  //  krazy warez  //  krz.sh                     ║
+║                                                                             ║
+╚═════════════════════════════════════════════════════════════════════════════╝
diff --git a/nfogen.toml b/nfogen.toml
index d36b998..c99d30c 100644
--- a/nfogen.toml
+++ b/nfogen.toml
@@ -1,58 +1,44 @@
 group = "KRZ"
 site  = "krz.sh"
-width = 64
-style = "single"
-title = "nfogen 1.2"
-type  = "APP"
-files = "nfogen.py"
-url   = "krz.sh"
-greets = ["you", "the-scene"]
+width = 79
+style = "double"
+layout = "rows"
+
+banner      = true
+banner_text = "NFOGEN"
+
+footer      = true
+footer_text = "nfogen  //  krazy warez  //  krz.sh"
+
+title      = "nfogen 1.2"
+type       = "CLI / library"
+publisher  = "krazy warez"
+language   = "Python 3.11+  (any 3.x with a JSON config)"
+files      = "nfogen.py  --  single file, zero deps"
+url        = "krz.sh"
+
 notes = """
-A scene-style ASCII .nfo generator. A single
-zero-dependency Python file. Builds this very box
-from CLI flags, a config file, prompts, or a mix.
-
-REQUIRES python3 (3.11+ for TOML, else JSON).
-
-USAGE
-nfogen.py --title "nfogen 1.2" --type APP
-nfogen.py -c nfogen.toml --title "nfogen 1.2"
-nfogen.py -i  prompts for every field.
-nfogen.py alone prompts when no title given.
-
-ORDER: config file < CLI flags < prompts.
-
-CONFIG: a .toml or .json auto-loaded from
-./nfogen.toml, ./.nfogen.toml, or the path
-~/.config/nfogen/config.toml. Holds any field
-default plus group, site, width. Or use -c PATH.
-
-FIELDS (all optional but title):
-release: cracker supplier packager protection
-         install rating date source
-program: type publisher format disks size files url
-media:   video audio resolution language genre runtime
-text:    notes greets
-
-LAYOUT: rows (default) or panel  (2-col, --layout)
-STYLES: single, double, block   (--style)
-ENCODING: utf8 or cp437  (--encoding cp437 = DOS)
-LOGO: --logo art.asc places art above the box
-BANNERS: --presents  --footer   scene boilerplate
-
-PROFILE: -p group.toml supplies logo, footer,
-         members, couriers, boards, affiliates,
-         news, outposts. release cfg overrides it.
-
-MEDIAINFO: --mediainfo dump.json auto-fills
-           video/audio/res/size/runtime/format.
-BANNER: --banner makes an ASCII logo (--banner-text)
-TEMPLATES: -t razor|modern|minimal presets
-           (--list-templates)
-
-OPTIONS: -o -c -p -t -g -s -w --style --layout
-         --logo --banner --mediainfo --encoding
-         --presents --footer -i --no-input
-
-Generated by nfogen itself.
+nfogen builds scene-style ASCII .nfo files from CLI flags, a config
+file, interactive prompts, or any mix of the three.
+
+FEATURES
+  - CP437 or UTF-8 output; single / double / block box styles
+  - two-column release+game info panel, or simple rows
+  - group profiles: reusable logo, members, couriers, boards
+  - mediainfo import auto-fills video / audio / resolution / size
+  - built-in ASCII banner generator for header logos (this one!)
+  - bundled templates: razor, modern, minimal
+
+QUICKSTART
+  nfogen.py --title "Some.App.v1-KRZ" --type APP --banner
+  nfogen.py -c release.toml -p group.toml -o release.nfo
+  nfogen.py -t razor --title "..." --mediainfo dump.json
+  nfogen.py -i                          (prompt for every field)
+
+RESOLUTION ORDER
+  template < profile < config file < CLI flags < prompts
+
+See examples/ for full release nfos and a group profile, and
+templates/ for the bundled presets. This README.nfo was itself
+generated by nfogen:   nfogen.py -c nfogen.toml
 """