krz/nfogen

A scene-style ASCII .nfo generator. ascii cli generator nfo

Commit 8bc87b709e

8bc87b709e5c35ffb35e6e5264dd00e2b4268b43

parent: a4ee96de80

Verified · cmc

cmc <hello@cleberg.net> · 2026-08-08 06:17 UTC

regenerate README as a feature showcase (banner, double 79-col, info, footer)

Layout: unified · split

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