DCMD(1)

πŸ“¦
version 2.26.11ubuntu1 Β· 2 versions
, in debian trixie, fedora 43, fedora 44, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’… DCMD(1) β€” the group chat manual page

okay bestie, welcome to dcmd, living in the General Commands Manual section of your local man pages. this is the little tool that makes your .dsc and .changes files stop being annoying. grab a boba, we're doing this. πŸ§‹βœ¨


πŸ¦‹ NAME

dcmd β€” bestie's little helper that expands file lists of .dsc/.changes files right there in the command line πŸ’–


✨ SYNOPSIS

dcmd [options] [command] [changes-file|dsc-file] ...

🌸 DESCRIPTION

okay so here's the vibe: dcmd goes through your command line and every time it sees a reference to a .dsc or .changes file, it swaps that reference out for the full list of files sitting in that file's 'Files' section β€” plus the file itself, obviously, she's not gonna ghost herself πŸ’…

and like… why do we care? because it lets you mess with every single file involved in an upload (that's your .changes files) or every file in a source package (that's your .dsc files) without typing forty filenames by hand. it's giving convenience, it's giving main character energy. πŸ‘‘

and if you omit command β€” meaning the first argument is an existing .dsc or .changes file β€” then she just prints the expanded list of files to stdout, one file per line. lowkey perfect for backticks. πŸŽ€


πŸ’… OPTIONS

so there's a whole lil menu of options you can use to pick out just a subset of the files listed in the .dsc or .changes file. and listen β€” if you ask for a file and it's not there, you're getting an error message. no cap. 😭

  • --dsc β€” select the .dsc file.
  • --buildinfo β€” select the .buildinfo file.
  • --schanges β€” select .changes files for the 'source' architecture.
  • --bchanges β€” select .changes files for binary architectures.
  • --changes β€” select .changes files. implies --schanges and --bchanges. she contains multitudes πŸ’–
  • --archdeb β€” select architecture-dependent binary packages (.deb files).
  • --indepdeb β€” select architecture-independent binary packages (.deb files).
  • --deb β€” select binary packages (.deb files). implies --archdeb and --indepdeb.
  • --archudeb β€” select architecture-dependent .udeb binary packages.
  • --indepudeb β€” select architecture-independent .udeb binary packages.
  • --udeb β€” select .udeb binary packages. implies --archudeb and --indepudeb.
  • --tar, --orig β€” select the upstream .tar file.
  • --diff, --debtar β€” select the Debian .debian.tar or .diff file.

✨ and here's the fun part: every single one of those options can be prefixed with --no to flip it β€” meaning "actually, select all the files that don't match this spec." iconic. πŸ¦‹

⚠️ but bestie, listen closely: you cannot combine positive filtering options (like --dsc) with negative filtering options (like --no-changes) in the same dcmd invocation. it's one or the other, no mixing. pick a lane, we're not doing chaos today πŸ™ˆ

🫢 the extra lil options

  • --no-fail-on-missing, -r β€” if any of the requested files were not found, do not output an error. (yes she's being forgiving. we love a chill queen.)
  • --package, -p β€” output package name part only.
  • --sort, -s β€” sort output alphabetically. tidy. organized. ✨
  • --tac, -t β€” reverse output order. flip it, reverse it. πŸ”₯

🌈 EXAMPLES

copy the result of a build to another machine πŸš€

$ dcmd scp rcs_5.7-23_amd64.changes elegiac:/tmp
rcs_5.7-23.dsc                  100%  490     0.5KB/s   00:00
rcs_5.7-23.diff.gz              100%   12KB  11.7KB/s   00:00
rcs_5.7-23_amd64.deb            100%  363KB 362.7KB/s   00:00
rcs_5.7-23_amd64.changes        100% 1095     1.1KB/s   00:00
$
$ dcmd --diff --deb scp rcs_5.7-23_amd64.changes elegiac:/tmp
rcs_5.7-23.diff.gz              100%   12KB  11.7KB/s   00:00
rcs_5.7-23_amd64.deb            100%  363KB 362.7KB/s   00:00
$

check the contents of a source package πŸ”

$ dcmd md5sum rcs_5.7-23.dsc
8fd09ea9654cda128f8d5c337d3b8de7  rcs_5.7.orig.tar.gz
f0ceeae96603e823eacba6721a30b5c7  rcs_5.7-23.diff.gz
5241db1e231b1f43ae5514b63d2523f8  rcs_5.7-23.dsc
$
$ dcmd --no-diff md5sum rcs_5.7-23.dsc
8fd09ea9654cda128f8d5c337d3b8de7  rcs_5.7.orig.tar.gz
5241db1e231b1f43ae5514b63d2523f8  rcs_5.7-23.dsc
$

πŸ‘€ SEE ALSO

dpkg-genchanges(1), dpkg-source(1) β€” go say hi, they're the family πŸ’œ


πŸŽ€ AUTHOR

this program was written by Romain Francoise <rfrancoise@debian.org> and is released under the GPL, version 2 or later. we stan a licensed icon πŸ‘‘


and that's the whole page, bestie!! this one shipped out from the Debian camp, in the Debian Utilities collection, and it's filed under DCMD(1). go forth and expand those file lists, you absolute legend. πŸ’–βœ¨πŸ¦‹πŸŒΈπŸ’