SHAPE_PATCH(1)

πŸ’– SHAPE_PATCH(1) πŸ’–

okay so bestie, welcome to the General Commands Manual section, and today's main character is shape_patch from shapeTools RMS β€” she generates patch files and she does it flawlessly. ✨


🌸 NAME 🌸

shape_patch β€” the shapeTools RMS patch file generator. she makes patches. that's the vibe. πŸ’…


✨ SYNOPSIS ✨

shape patch OLDRELEASE=<name1> NEWRELEASE=<name2> [PATCHFILE=<filename>]

like, that's it. that's the whole summoning ritual. πŸ•―οΈ


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the tea. shape patch generates a patch file that updates $(OLDRELEASE) to $(NEWRELEASE). both of those releases are identified by release names, and those names get attached to the macros OLD-/NEWRELEASE right there on the command line. πŸŽ€

and what counts as a valid release name? only the ones generated by any of the shape_RMS (pre-)release building procedures β€” see shape_releas(1) if you need the lore. also, running vl -all with the release identification file as its argument usually gives you a really good overview of the release names that already exist. lowkey the move. πŸ‘‘

patch generation happens recursively over all subsystems that are part of the current node. so if you trigger shape patch from the top node of the central source repository, you get a patch file for the whole entire system. main character energy fr fr. πŸ”₯

the output gets stored in a file named:

<name1>+2+<name2>.pat

but wait, there's more πŸ’– β€” if the PATCHFILE macro is set on the command line, then $(PATCHFILE) is used as the output file name instead. and if you define PATCHFILE=- on the command line, the patch gets written straight to standard output. iconic behavior honestly.

note bestie, this one matters: for patches that invoke multiple subsystems, $(PATCHFILE) should be set to an absolute pathname. if it's not, the patch generation procedure will leave an equally named patch file behind for each visited subsystem. not the cute kind of surprise. πŸ™ˆ

the patch itself is constructed using the vdiff(1) command, and it can be applied to any installation of $(OLDRELEASE) by invoking patch(1). so it's giving... portable. it's giving... usable. we love her. 🫢


πŸ’€ INCONVENIENCES πŸ’€

on System V machines, the generated patch file name will almost certainly exceed the 14 character filename length limit. yes bestie, fourteen. not a typo. we don't make the rules. 😭


🌈 SEE ALSO 🌈

go read them, iykyk πŸ“š


πŸ“ FILES πŸ“

  • <name1>+2+<name2>.pat

and that's the whole page, bestie!! this one came from the General Commands Manual, dated 12.10.126 β€” so like, old old, but she still slays. SHAPE_PATCH(1) out. πŸ’œπŸ§šβ­