Hi Stefan -

Thanks for the answer.

My "Plan B" was to manually create a "QGIS2.ref", which is identical with the original "qgis2.ini", but with every occurrence of the program path and the user profile path replaced with references to environment variable names. And then use the sed editor to exchange the variable names in qgis2.ref with the actual paths on-the-fly under start-up. More or less the solution you suggested.

Sed is luckily included in the OSGeo4W package by default, so I'll have a go on "plan B" :-)

And I will add a request about environment variable substitution to the existing issue 12623.

Regards
Bo Victor Thomsen
AestasGIS
Denmark

On 22-06-2015 11:55, Blumentrath, Stefan wrote:
See also:
http://hub.qgis.org/issues/12623

Maybe it is a bit tricky for a general solution, since variables are defined 
and named differently on the different OSes?...

As a workaround you could probably put a string replacement procedure into your 
QGIS.bat?
We used e.g. a "#USERPROFILE#" string, as a placeholder, which got replaced 
when a custom QGIS2 folder template - containing the QGIS.ini - was copied to a new 
user...

Not too trivial to replace a string in a text-file on Windows using batch (I 
understood from my colleagues)...

Cheers
Stefan

-----Original Message-----
From: qgis-developer-boun...@lists.osgeo.org 
[mailto:qgis-developer-boun...@lists.osgeo.org] On Behalf Of Bo Victor Thomsen
Sent: 22. juni 2015 11:32
To: qgis-developer@lists.osgeo.org
Subject: [Qgis-developer] Using environment variables in path definitions in 
QGIS

To the QGIS developers list -

I have a goal of making a fully portable Windows edition of QGIS. "Fully portable" means 
that I simply can install QGIS by copying the QGIS program directory to a location on the users PC 
and  start QGIS by double clicking on the QGIS.bat file in the "..\bin" directory.

I've reached 95% of my target by using the OSGeo4W installation as a template 
and making some modification the the start-up bat file. Mostly by using the 
--configpath qualifier to 1) redefine the location of the QGIS user directory 
.qgis2 and 2) not using the registry to save option values.

By using the --configpath qualifier QGIS creates and uses the 
.qgis2\QGIS\QGIS2.ini file to store option values normally located in the 
registry. Some of these values are path definitions:

example:

Configuration\SAGA_FOLDER=C:/OSGeo4W/apps\\saga
Configuration\GRASS_WIN_SHELL=C:/OSGeo4W/apps\\msys
Configuration\R_SCRIPTS_FOLDER=C:\\OSGeo4W\\.qgis2\\processing\\rscripts

I would like to use environment variables as part of the path definition in the 
ini file like this:

Configuration\SAGA_FOLDER=%OSGEO4W_HOME%/apps\\saga
Configuration\GRASS_WIN_SHELL=%OSGEO4W_HOME%/apps\\msys
Configuration\R_SCRIPTS_FOLDER=%QGIS_USERDIR%\\processing\\rscripts

(OSGEO4W_HOME and QGIS_USERDIR is environment variables, that contains the path 
for the QGIS program directory and the QGIS user directory)

The problem is, that QGIS doesn't interpret the %......% as a environment variable and 
replace it with the value of the variable but simply interprets it literally resulting in 
paths containing "%" - signs and environment variable names.

Is there a method to get QGIS to interpret the environment variable and replace 
it with the content of the variable ? Or should a put it on the wish list in 
the bug tracker ?

Regards
Bo Victor Thomsen
AestasGIS
Denmark



_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to