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