Kinook Software Forums

Kinook Software Forums (https://www.kinook.com/Forum/index.php)
-   [VBP] General Discussion (https://www.kinook.com/Forum/forumdisplay.php?f=2)
-   -   Unexpanded macro value (https://www.kinook.com/Forum/showthread.php?t=5314)

raistlin 11-13-2014 05:04 AM

Unexpanded macro value
 
I am trying to unexpand the macro value. A macro with this value is parsed and i want to retain its value.

Code:

"BUILD_URL=http://jenkins/job/Test%20New%20NUnit%20Test%20Script/lastBuild"
To use the value above, i need to convert % to %% so VBP will not treat %20New% as an expandable macro, i think.

I tried to do it this way without avail.
Code:

Option Explicit

Dim build_url

build_url = "%BUILD_URL%"

If Len(build_url) > 0 Then

build_url = Replace( build_url, "%%", "%%%%" )
SetTemporaryMacroValue "BUILD_URL", build_url      <--- this is a subfunction i use in the script

End If

What can i do to use a macro with %20xxx%20 in it without expansion? Thanks.

What i need is the opposite of http://www.kinook.com/Forum/showthread.php?t=1233

kinook 11-13-2014 06:23 AM

1 Attachment(s)
What do you mean by 'a macro with this value is parsed'? How was the BUILD_URL macro initialized? Literal % characters in the macro value should be escaped when creating the macro. The vbld_EscapeString system script function can be used for this.
http://www.kinook.com/VisBuildPro/Ma...scriptmisc.htm

To assign a macro value to another macro value, just copy the raw value without expanding. See the attached sample.

raistlin 11-13-2014 07:02 AM

The value is parsed as an environment variable when initiated by a jenkins job.

See https://wiki.jenkins-ci.org/display/...nmentVariables

The job build command:
Code:

VisBuildcmd.exe "BUILD_URL=%BUILD_URL%" /mta /b NUnitTest.bld
When expanded to on the test machine, it becomes:
Code:

VisBuildcmd.exe "BUILD_URL=http://jenkins/job/Test%20New%20NUnit%20Test%20Script/lastBuild" /mta /b NUnitTest.bld
Some of the jobs name have spaces, so these spaces are escaped to become %20 in the BUILD_URL env var.
Code:

Eg: http://jenkins/job/TestNewNUnitTestScript/ - OK
Eg: http://jenkins/job/Test New NUnit Test Script/ - Still OK, but will be escaped to:
    http://jenkins/job/Test%20New%20NUnit%20Test%20Script/ - Not OK

I do not want to replace spaces with underscores in the job name. Hence the problem.

raistlin 11-13-2014 07:11 AM

1 Attachment(s)
Thanks for the codes, however it still fails with these error:

Code:

Error in Run Script (VBScript) script code at Line 11, Column 1  (http://jenkins/job/Test20NUnit20Script/lastBuild)
13-11-2014 14:07:27: Step '4 - use' failed
13-11-2014 14:07:27: Build ended (elapsed = 00:00:00).

You can create a macro with this value to reproduce this problem:
Code:

http://jenkins/job/Test%20New%20NUnit%20Test%20Script/lastBuild
My real challenge is trying to use the macro out of the script, here:
Attachment 1158

kinook 11-13-2014 07:16 AM

1 Attachment(s)
Add a step at the beginning of the project to escape the BUILD_URL macro value that was passed in (see attached).
http://www.kinook.com/VisBuildPro/Ma...ecialchars.htm

raistlin 11-13-2014 07:27 AM

Epic. Thanks alot for this!

teognost 02-07-2022 06:24 PM

Copy the escaped macro value to another project macro
 
1 Attachment(s)
Is there any way to copy the escaped macro value BUILD_URL to another project macro BUILD_URL3(not a temp macro)?
In the sample attached I tried to do it with a Set macro step but it did not work -the macro BUILD_URL3 has the unescaped value(The next step log macro fails)

kinook 02-07-2022 10:53 PM

In a Set Macro action, check the 'Don't expand macros and script' option.

https://kinook.com/VisBuildPro/Manua...acroaction.htm

teognost 02-08-2022 03:41 AM

Thanks!And if in the Value field there is the macro I do not want expanded and another macro which I want to have it expanded?

kinook 02-08-2022 10:21 AM

You can't expand partially. It's all or nothing. Escape (double) something that should not be evaluated as a macro.

teognost 02-08-2022 02:17 PM

Thanks.I found another way-I set in the Value field of Set Macro:
[vbld_EscapeString("%BUILD_URL%")]


All times are GMT -5. The time now is 01:47 PM.


Copyright 1999-2022 Kinook Software, Inc.