My primary use case for Amber is when I need to write a Bash script but don’t remember the silly syntax. My most recent Bash mistake was misusing test -n and test -z. In Amber, I can just use something == "" or len(something) == 0

  • lens0021@programming.devOP
    link
    fedilink
    arrow-up
    2
    ·
    10 hours ago

    Yep, the code you provided is compiled into this:

    command_0="$(cat file.txt | grep "READY")"
    __status=$?
    if [ "${__status}" != 0 ]; then
        echo "Failed to read the file"
    fi
    

    So, the outcome would depend on the pipefail option. (set -o pipefail)

    As you suggested, an Amberic snippet would be:

    import { file_read } from "std/fs"
    import { match_regex } from "std/text"
    
    const result = file_read("file.txt") failed {
        echo "Failed to read the file"
    }
    if match_regex(result, "READY"):
        echo "file.txt contains READY"
    
    • IanTwenty@piefed.social
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 hours ago

      Thanks for that, makes sense. I like that Amber gives the ability to code more defensively/robustly where appropriate but can also get out the way if you just need to run a bunch of BASH raw.