Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Proper way to use $PSEval with boolean operations?



  • I am trying to use $PSEval to do some simple boolean comparisons but I'm not having any luck. If I run a simple plan like

    set $foo = true;
    set $bar = true;
    set $foobar = $PSEval($foo -and $bar);
    

    then I get an execution error that I cannot assign a vector value to a scalar variable. If I change $foobar to a vector (@foobar) and print out its contents it's just an empty array. Currently I've created a powershell asset to do the operation and return the result but it is a bit verbose to write

      PSCall GLOBAL::BooleanOperation
    (
        var1: $foo,
        var2: $bar,
        operator: and,
        returnValue => $foobar
    );
    

    so I was hoping there was a more "inline" way to accomplish this.

    Product: BuildMaster
    Version: 6.1.1


  • inedo-engineer

    The problem is that OtterScript attempts to parse those variables first. Just use quotes:

    set $foo = true;
    set $bar = true;
    set $foobar = $PSEval("$foo -and $bar");
    
    Log-Information `$foobar = $foobar; # prints: $foobar = True
    


Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation