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