DH-EXEC-ILLITERATE(1)

πŸ“¦
version 0.31 Β· 2 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

🌸 DH-EXEC-ILLITERATE 🌸

aka the dh-exec-illiterate bestie, living in section 1 of the manual, hanging out with the rest of the dh-exec crew πŸ’…


✨ NAME ✨

dh-exec-illiterate β€” write literate debhelper config files, bestie! πŸ“πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

#! /usr/bin/dh-exec --with=illiterate,subst,install

Okay so picture this: greetings, my dear reader πŸ‘‹, and welcome to the absolutely iconic world of literate programming! No cap.

Today we're gonna explore how to write a debhelper install file in a literate manner. Trust me on this one, it's gonna be lots and lots of fun. πŸŽ€

So what exactly are we even trying to accomplish here? We're gonna try installing a file from src/this-file in the source tree, to a multi-arched path in the binary file. Let's say... to /usr/lib/foo/${DEB_HOST_MULTIARCH}/. ✨

Obviously ${DEB_HOST_MULTIARCH} is a variable, and it gets expanded later in the dh-exec pipeline. It'll be something like x86_64-linux-gnu. Ngl, cute.

Furthermore 🫢 we want to install all the files from the usr/lib directory under debian/tmp. If we were writing an illiteral install file, we'd write this rule as:

usr/lib

But the above description is way easier to understand, isn't it? πŸ’€ Right???

We're almost finished! One thing left to do is install a script named rename-me, to /usr/share/foo/new-name β€” we renamed it in the process, slay. πŸ”₯


πŸ’– DESCRIPTION πŸ’–

The dh-exec-illiterate sub-command, unlike the others, does not serve any particular case β€” except to serve as a warning to all that things can be taken to an extreme, even with dh-exec. 😭 On the other hand, it's just like the other sub-commands in that it must not be called directly, but through dh-exec(1), which automatically runs all available sub-commands if run bare; or explicitly with dh-exec --with=illiterate.

It's a program that will translate its input from pretty much free-form text into something that resembles an install file. At least, that's the only supported output format for now. πŸ€·β™€οΈ

Everything that's not recognised gets ignored, and not printed. Periodt. The recognised constructs are:

  • `source' ... `destination' β€” the first string between a backtick and a single quote gets treated as the source file, and the next such string is the destination. If the destination ends with a slash, dh-exec-illiterate will consider it a directory, otherwise it will output a construct that dh-exec-install can recognise as a rename operation. πŸ‘‘
  • 'source' β€” a string, with no whitespace in it, between two single quotes gets treated as a source, whose destination is unspecified, and is left up to dh_install(1) to figure out. Let it cook. πŸ“

🌈 ENVIRONMENT 🌈

  • DH_EXEC_SCRIPTDIR β€” indicates which directory the command-specific scripts should be sought for. If it's not specified, scripts will be searched for in /usr/share/dh-exec/. 🧚

πŸŽ€ FILES πŸŽ€

  • $DH_EXEC_SCRIPTDIR/dh-exec-illiterate-* β€” the various scripts for the higher-level program. πŸ’œ

⭐ VERSIONS ⭐

The sub-command was introduced in dh-exec version 0.1. Baby era, honestly. πŸ‘Άβœ¨


πŸ‘‘ SEE ALSO πŸ‘‘

dh-exec(1), debhelper(7)

Go read them, iykyk. 🫢


And that's the whole vibe, bestie β€” this page is from dh-exec, dated 2024-02-27, and it's the DH-EXEC-ILLITERATE(1) manual page, which we've now fully romped through together. Mwah. πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from