Kinook Software Forums

Go Back   Kinook Software Forums > Visual Build Professional > [VBP] General Discussion

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 11-13-2014, 05:04 AM
raistlin raistlin is online now
Registered User
 
Join Date: 11-14-2008
Posts: 23
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
Reply With Quote
  #2  
Old 11-13-2014, 06:23 AM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 5,750
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.
Attached Files
File Type: bld spec_chars.bld (2.0 KB, 522 views)
Reply With Quote
  #3  
Old 11-13-2014, 07:02 AM
raistlin raistlin is online now
Registered User
 
Join Date: 11-14-2008
Posts: 23
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.
Reply With Quote
  #4  
Old 11-13-2014, 07:11 AM
raistlin raistlin is online now
Registered User
 
Join Date: 11-14-2008
Posts: 23
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/Test<Undefined macro 20New>20NUnit<Undefined macro 20Test>20Script/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:
Name:  MacroApplication.png
Views: 335
Size:  22.9 KB
Reply With Quote
  #5  
Old 11-13-2014, 07:16 AM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 5,750
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
Attached Files
File Type: bld spec_chars2.bld (1.9 KB, 557 views)
Reply With Quote
  #6  
Old 11-13-2014, 07:27 AM
raistlin raistlin is online now
Registered User
 
Join Date: 11-14-2008
Posts: 23
Epic. Thanks alot for this!
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -5. The time now is 10:56 PM.


Copyright 1999-2019 Kinook Software, Inc.