task icon indicating copy to clipboard operation
task copied to clipboard

define random strings

Open Sopka opened this issue 1 year ago • 1 comments

I need a constant random string available during the execution of one task. For example to append a suffix to a resource name.

My current workaround is to assign a dynamic variable and process the output further with a golang template:

tasks:
  add-suffix:
    vars:
      SUFFIX: 
        sh: uuidgen
    cmds:
      # Select the first part of a uuid for a short random string number:
      # Outputs e.g. e01136af instead of e01136af-30d6-4b6b-9c68-f52fcaaaf313
      - echo {{index (.SUFFIX | splitList "-") 0}}

I do this, because you cannot just export a shell variable at one command and re-use it in subsequent commands.

But this workaround is not OS independent and cumbersome.

Is there an easier way?

Sopka avatar Sep 23 '23 16:09 Sopka

Hi @Sopka, there is currently no built-in way to do this in Task. Unfortunately, the rand functions were removed from our templater to make it slimmer (since they rely on the rather large crypto/rand package), so you are left to call an external program like uuidgen for this task as you have suggested.

I will leave this issue open for now so that we can track it as a feature request. If others find themselves needing this functionality, please feel free to add a comment or 👍 the OP to let us know.

pd93 avatar Dec 17 '23 05:12 pd93