Using UpperPark Version Control command line options

Hi all,

I’ve been trying to contract rick the last few days without success (he may be away or something) so thought I would ask my question here to see if anyone else knows the answer.

I’m testing using the UpperPark version control and want to automate the build process (I’m using TeamCity) and so want to automate the rebuild of the .APP from the .APV files and see that there are command line options for ClarionCL.exe that use /up_ option.

But, there is no documentation on how to use these options that I can find. Does anyone know how the /up_createappfromVC option works?

Trevor

Have you tried the Webinars to see if it’s in there?

https://www.clarionlive.com/BrowseEpisodes/ww

Type ‘martin’ (without the quotes) into the search box.402,403 and 404 seem to be the latest.
There may be some others on the ClarionLive Youtube channel, but it’s impossible to search or know what each episode contains so unless you have a month or so to spare…

Hi Trevor,

do you have a PE or EE version of Clarion? Only EE version is able to create a SLN / APP file from text. We had the same issue with PE version. The SLN / APP need to be present on disk, so you can “Import from version control”, but you need to have this files first. Create all files from scratch is only possible with EE version.

See CLI reference here: https://clarionmag.jira.com/wiki/spaces/clarion/pages/399615/ClarionCL+command+line+parameters

The parameter /ag is missing in PE version.

Best regards
Christoph

Alternatively, you could create your own “ClarionCL.exe” to display the parameters that UP version control stuff is passing. Temporarily replace your real ClarionCL.exe with it, and that might teach you enough to get started.

Here’s one I use to show the command line:

    PROGRAM
    MAP
    END
XN     STRING(260),AUTO
BSX    LONG,AUTO
MsgTxt ANY
    code
    XN=Command('0')
    BSX=INSTRING('\',XN,-1,SIZE(XN))    !Reverse Instring with -1,Size
    IF BSX THEN XN=SUB(XN,BSX+1,999).
    MsgTxt = 'This program is a place holder to show the command line.'&|
         '<13,10><13,10>EXE: '&Command('0')&|
         '<13,10><13,10>Path: '&LongPath() &|
         '<13,10><13,10>Cmd: '&clip(Command(''))

    CASE MESSAGE(MsgTxt,XN, ICON:Application, 'Close|Copy')
    OF 2 ; SETCLIPBOARD('-{9} ' & CLIP(XN) &'-{9}<13,10>' & MsgTxt)
    END
    RETURN

Revised above to use reverse INSTRING instead of below code:

   LOOP 
        BSX=INSTRING('\',XN)    !Find EXE name after last \
        IF ~BSX THEN BREAK.
        XN=SUB(XN,BSX+1,999)
    END
1 Like

Also from task manager you can see the command line parameters. I was surprised some 7 years ago when I accidentally noticed while debugging with colleague that the command line parameters with some passwords are visible from task manager.

Hi Trevor

If you run ClarionCL /? you will see a list of command that can be executed. Because Rick’s tool integrates into Clarion you will also see a list of commands he supports. Maybe this is what you are after.

/up_createapp Import App file from Text

/up_createappVC Import App file from Text for Solution

/up_exportapp Export App file to Text(TXA/APV) - Solution, AppFileName, TXAName

/up_exportappToVC Export App file to Version Control Folder - Solution, AppFileName

/up_versionslist Output list of registered Clarion Versions

Regards

Mark

1 Like

Thanks Konigc, yes I am running the EE version.

Thanks Mark,

I had found this already although as you can see the /up_createapp and /up_createappVC import functions do not indicate the parameters they need.

I used reflector to look at the compiled code and it looks like it needs the TXA however, the VC addin when you use it to create the source files does not create a TXA, it only creates APV files, so there isn’t one to use for the import process.

Hopefully I will track down Rick and get some guidance from him.

Trevor

Thanks Graham, I had watched a number of videos but had not come across this list so will take a look. Appreciated.

Trevor

APV’s are just TXA’s, although Rick does do a trick with the global settings of an app that you won’t see if you selectively exported an app to TXA.

Hopefully that will clear up things a little.

@Rick_UpperPark perhaps you can confirm whenever you see this.

Regards

Mark

Hi Trevor,

I’ll document a few things.
First, there is a utility installed with the Upper Park version control addin that supports command line operations to help integrate with your build automation.
This is claInterface.exe and is installed in \Program Files (x86)\UpperParkSolutions\claInterface.

The commands you are interested in are BUILDAPP, COMPILEAPP and BUILDCOMPILEAPP.
BUILDAPP - Creates the APP from the APV files (Import from text).
COMPILEAPP - Generates and compiles the APP
BUILDCOMPILEAPP - does both steps.

The format is

claInterface COMMAND=[BUILDAPP|COMPILEAPP|BUILDCOMPILEAPP] INPUT=<Path to APV files>

Optionally, you can include the solution SOLUTION=<path and name of .sln> . You only need to include the Solution parameter if the APP files are not stored in the same folder as the solutions .SLN.

The can either be a specific folder for a single APP’s APV files or a parent folder. When it is a parent folder it builds and compiles all of the APPs in the sub-folders.
For example:
Solution folder is c:\Projects\DLLTutor
Source control folder is c:\Projects\DLLtutor\vcDLLTutor
AllFiles APV files is in c:\Projects\DLLtutor\vcDLLTutor\AllFiles
UPDATE APV files is in c:\Projects\DLLtutor\vcDLLTutor\Update
etc.
running this will recreate ALLFILES.APP, generate and compile it.

claInterface COMMAND=COMPILEAPP INPUT=c:\Projects\DLLtutor\vcDLLTutor\AllFiles

running this will recreate, generate and compile all of the APPs stored beneath vcDLLTutor.

claInterface COMMAND=COMPILEAPP INPUT=c:\Projects\DLLtutor\vcDLLTutor

By default when processing a set of APPs they are processed alphabetically. However, you can control the compile order by adding an entry in the solution’s up_VCSettings.INI file. You need to manually edit the setting file to make this entry in the [VC_Interface] section.
CompileOrder=ALLFILES,UPDATES,REPORTS,DLLTUTOR
If there are APPs in the solution you want excluded from the full build you can add this entry
SkipApp=TESTSDI

This method uses all of the settings from the up_VCSettings.INI.
It relies on Registry entries that the Clarion Installer makes to find the Clarion folder. So if you have copied Clarion to the system you need to make these entries manually.

Finally, to answer your actual questions. :slight_smile:

ClarionCL /up_createapp <Path to Combined TXA for APP> <Path and filename of APP>  

If your APP files are not in your solution folder, then use /up_createappVC

ClarionCL /up_createappVC <Path and file name of Solution file> <Path to Combined TXA for APP> <APPNAME no extension>

The 3rd parameter, APPNAME no extension, is used to lookup the APP in the solution itself and get the full path to the APPs location.

To combine all the APV files into a single TXA files:

claInterface COMMAND=BUILDTXA INPUT=”Path to folder with APV files” OUTPUT=”Path and file name of complete TXA”

The standard switches for ClarionCL impact the /up_ commands, too. Like /win, /configdir, /v.

I think that covers most of your questions. Let me know if you need any clarification. There are many additional commands that I will get documented someday. :slight_smile:

3 Likes