I’m sure some of you have absolute monstrosities of sigils (I know I do, in my .zshrc alone). Post them without context, and try and guess what other users’s lines are. If you want to provide context or guess, use the markdown editor to spoiler-tag your guesses and explanations!

  • xcjs@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year ago

    It’s not bash itself that was the complex part exactly, but I have a CI/CD pipeline that generates epub files from markdown. In some cases I have custom designed covers, but where a cover doesn’t exist I have a bash script generate one using Imagemagick.

    I wanted to generate the cover in one command to lessen performance impacts and disk I/O, but it took me a few weeks to figure out how to do it all in a single Imagemagick command:

    convert \
        -size 960x1536 \
        -background "${backgroundColor}" \
        -fill "${textColor}" \
        -font "Liberation-Serif" \
        -pointsize 96 \
        -gravity north \
        caption:"${title}" \
        -bordercolor "rgb(0, 0, 0)" \
        -border 2 \
        -bordercolor "${borderColor}" \
        -border 40 \
        -background none \
        -fill "${textColor}" \
        -font "Liberation-Serif" \
        -pointsize 48 \
        -gravity south \
        -geometry +0-800 \
        -annotate +0+40 "${author}" \
        "${destination}cover.jpg"
    

    Eventually it made an abstract sense to me, and I was able to bring it down to two commands and then finally one. This generates a cover with a selected background color (based on content type) and contains title text that will wrap to an inner border.

    I think I had to give up on the author being wrapped, but it’s much smaller than the title anyway.

    • Gamma@programming.devOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Nice work! I’ve definitely had some fun with convert recently, as you might tell from the community banner.

      spoiler

      It is an image showing the script I used to create it 😛.

        • Gamma@programming.devOPM
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          1 year ago

          It’s a little more complex than needed, for the pixelated background I used xcolor names and then modulated them darker, but then relented and used hexcodes for the text in the foreground.

          • xcjs@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            It’s very impressive! I try to write legible code first, and if my shell scripts get too complex, I move on to another tool typically:

            • C# scripting
            • Python
            • PowerShell
            • Node.js

            That might be why I don’t have many cryptic examples.