Differenciate between multiple copies of the same software
  • Hi Daniel,

    Just a quick question here, and hopefully a similarly quick resolve.


    I have multiple version of the same sofware installed on my mac (Quark 6.5 and Quark 7.2) but FastScript doesn't seem to able to tell them appart w/r to the "Application specific menu".

    Is there a way to have FastScript display a certain set of script for Q7 and another for Q6. Based on the default script folder for the active application this does not seem to be the case.

    The problem here is obvious, various version of the same software often have different Applescript dictionnary. furthermore both of those application could be running concurently.

    TIA
  • Good point Michel - this is a shortcoming in the "by name" technique that Apple uses to organize the app-specific scripts. I thought it would be best to integrate with their format so users could easily migrate from Apple Script Menu.

    Since both of the apps have the same "Name" (even when an app has a different exterior name, like "Adobe Photoshop CS," it's still often just identified as "Photoshop" internally).

    What you can do if you're willing to hack your apps a bit, is change one of them to have a unique name. I don't have a copy of Quark to experiment on, but for instance in the PhotoShop case, the name is specified in the Info.plist file inside the application bundle. If I change the "CFBundleName" value to something other than PhotoShop, that becomes the "name" of the application.

    So you might be able to change one of the Quark bundles to identify itself as "Quark 6.5" instead of just "Quark" for instance. Then FastScripts would look for a "Quark 6.5" folder for that application.

    Unfortunately this is the best workaround I can offer right now. Of course, be sure to make a backup of the app before you hack at it!

    Daniel
  • Thank you for the quick reply Daniel,

    Your hack seems to have done the trick.

    Could we expect this situation to be adressd in furture versions?

    If so may I suggest a possible solution?

    I guess what I would really like to see would be for FastScripts to add "another" level for the script folder.

    From the workaround you suggested, I take it that FS is looking for the "CFBundleName" property to see if a similarly named folder exists in "~:Library:Scripts:Applications:". What I would suggest is that FS look ALSO at the "CFBundleVersion" property to see if a similarly named folder exists in "~:Library:Scripts:Applications:(CFBundledName):".

    Taking this into account, FS would display scripts included at the first level of any given application in "~:Library:Scripts:Applications:" PLUS any scripts included in the corresponding "Version" subfolder.

    The reason for this is quite simple: Not all scripts (if any) is rendered unusable with an application update. So upgrading an application would still present me with the same set of scripts and if I happen to find one that got broken I just need to move it to the appropriate "Version" subfolder and save an updated copy in the new "Version" subfolder.

    In clear, the "~:Library:Scripts:Applications:" directory would look like:
    QuarkXPress:
    01)Production Tools
    Script 1
    Script 3
    Script 4
    ...
    02)Projects
    Script 2
    Script 3
    Script 4
    ...
    ver)6.5.0:
    01)Production Tools
    Script 2
    02)Projects
    Script 1
    ver)7.2.0:
    01)Production Tools
    Script 2
    02)Projects
    Script 1

    You will notice that prepended the "Version" folder so that FS could identify them properly.
    Also, my example include somewhat of a "Bell or Whistle" where if we were to duplicate the application's "root" folder directory inside the "Version" folder, FS would them be able to put the version specific scripts in their proper place.

    Hopefully this explanation came out clear enough!

    TIA
    Michel
  • Interesting. To clarify, I don't specifically look at the CFBundleName myself - I look at the "process name" which is what Apple shows developers as the name of the process.

    But I might be able to work something out along the lines you are suggesting. I will definitely put it on the list of features to consider.

    Daniel
  • All I can ask for really. This is a great app you have here and would not think any less of it if you weren't able to implement this.

    That said, I do not know how "hot" this issue is with other users. I for one have been experiencing this "shortcoming" for quite some time but only now did I choose to write about it.

    Thank you again for a great customer experience.

    Michel
Start a New Discussion

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!