Installing Valentina
Kay C Lan
lan.kc.macmail at gmail.com
Tue Aug 12 21:02:06 CDT 2014
On Mon, Aug 11, 2014 at 1:24 PM, Ruslan Zasukhin
<ruslan_zasukhin at valentina-db.com> wrote:
>> Second step is required by rules of LiveCode.
> Our installer do not know location of that folders.
>
Firstly, of course your installer knows where that folder is, although
it's not important because for Valentina you don't have to trash the
entire folder just 4 bundles which your Installer knows exactly where
they are because it checks for them. I can only assume William trashes
the My LiveCode folder because it's a lot faster than finding the 4
bundles in question and manually trashing them.
In your installer you have this function (I'm on Mac so I've only
shown the Mac specifics):
FUNCTION CheckExist inFile, inPath
set the itemdel to slash
put item -1 of inFile into plugin
put inPath & slash & plugin into resCheck
IF the platform is "MacOS" THEN
IF there is a folder resCheck THEN
Message resCheck & cr & " already exists. Please trash it
manually and run this stack again."
ELSE
return false
END IF
ELSE
--the non Mac OS part of the FUNCTION below here
--but revDelete is cross platform so I'd expect you could do the
same for Win,Linux
When I run your installer right now I get this output:
/Users/nsa/ednorton/My LiveCode/Externals/Database Drivers/dbvalentina5
already exists. Please trash it manually and run this stack again.
/Users/nsa/ednorton/My LiveCode/Externals/v4rev.bundle
already exists. Please trash it manually and run this stack again.
Externals list already updated.
Database Drivers list already updated.
/Users/nsa/ednorton/My LiveCode/Runtime/Mac OS
X/Universal/Externals/Database Drivers/dbvalentina5
already exists. Please trash it manually and run this stack again.
/Users/nsa/ednorton/My LiveCode/Runtime/Mac OS
X/Universal/Externals/v4rev.bundle
already exists. Please trash it manually and run this stack again.
Externals list already updated.
Database Drivers list already updated.
NOTE that it states there are 4 bundles that I have to manually trash
and your installer knows exactly their location. This is extremely
tedious and a completely unnecessary step!
So I did a quick modification to your Installer's script (again Mac specific):
FUNCTION CheckExist inFile, inPath
set the itemdel to slash
put item -1 of inFile into plugin
put inPath & slash & plugin into resCheck
IF the platform is "MacOS" THEN
IF there is a folder resCheck THEN
Message resCheck & cr & " already exists. It's OK I'll trash
it for you."
revDeleteFolder resCheck --DELETE the bundle you know exists
IF there is a folder resCheck THEN --double check the bundle is trashed
Message " Moving to trash failed! ***Please trash it
manually and run this stack again.***"
ELSE
Message " It's now in the trash. You can retrieve it from
the trash if you need it."
return false
END IF
ELSE
return false
END IF
ELSE
--the non Mac OS part of the FUNCTION below here
--but revDelete is cross platform so I'd expect you could do the
same for Win,Linux
Now when I run your modified Installer the output is:
/Users/nsa/ednorton/My LiveCode/Externals/Database Drivers/dbvalentina5
already exists. It's OK I'll trash it for you.
It's now in the trash. You can retrieve it from the trash if you need it
Copy plugin: /Users/nsa/Paradigma Software/V4REV_5/dbvalentina5 Successful!
/Users/nsa/ednorton/My LiveCode/Externals/v4rev.bundle
already exists. It's OK I'll trash it for you.
It's now in the trash. You can retrieve it from the trash if you need it
Copy plugin: /Users/nsa/Paradigma Software/V4REV_5/v4rev.bundle Successful!
Externals list already updated.
Database Drivers list already updated.
/Users/nsa/ednorton/My LiveCode/Runtime/Mac OS
X/Universal/Externals/Database Drivers/dbvalentina5
already exists. It's OK I'll trash it for you.
It's now in the trash. You can retrieve it from the trash if you need it
Copy plugin: /Users/nsa/Paradigma Software/V4REV_5/dbvalentina5 Successful!
/Users/nsa/ednorton/My LiveCode/Runtime/Mac OS
X/Universal/Externals/v4rev.bundle
already exists. It's OK I'll trash it for you.
It's now in the trash. You can retrieve it from the trash if you need it
Copy plugin: /Users/nsa/Paradigma Software/V4REV_5/v4rev.bundle Successful!
Externals list already updated.
Database Drivers list already updated.
Notice the script know exactly where the bundles are, can easily trash
them automatically then proceed to successfully install the latest
version of each bundle in the correct location. If for some reason the
script can not automatically trash the bundle it will report you still
need to do it manually.
To be clear I simply replaced this one line of your Installer script:
Message resCheck & cr & " already exists. Please trash it manually and
run this stack again."
with these 8 lines (be careful of line wraps):
Message resCheck & cr & " already exists. It's OK I'll trash it for you."
revDeleteFolder resCheck --DELETE the bundle you know exists
IF there is a folder resCheck THEN --double check the bundle is trashed
Message " Moving to trash failed! ***Please trash it manually
and run this stack again.***"
ELSE
Message " It's now in the trash. You can retrieve it from the
trash if you need it."
return false
END IF
More information about the Valentina
mailing list