Skip to content

[launcher] Better integration with OS specific application data directories #1152

@laeubi

Description

@laeubi

Currently we only support limited placeholders in the equinox native launcher

@launcher.dir
    Directs Eclipse to compute a location value relative to the directory containing the Eclipse launcher binary. @launcher.dir can be followed by additional path segments. In all cases, the string "@location.dir" is simply replaced with the parent directory of the path pointed to by the Java "eclipse.launcher" System property. For example, setting
        osgi.install.area=@launcher.dir/../../../pool
    results in a value of
        file:/home/bob/eclipse-product/linux/gtk/x86_64/../../../pool
    if the "eclipse.launcher" property is set to "/home/bob/eclipse-product/linux/gtk/x86_64/eclipse".
@user.home
    Directs Eclipse to compute a location value relative to the user's home directory. @user.home can be followed by additional path segments. In all cases, the string "@user.home" is simply replaced with the value of the Java "user.home" System property. For example, setting
        osgi.instance.area=@user.home/myWorkspace
    results in a value of
        file:/users/bob/myWorkspace
@user.dir
    Directs Eclipse to compute a location value relative to the current working directory. @user.dir can be followed by additional path segments. In all cases, the string "@user.dir" is simply replaced with the value of the Java "user.dir" System property. For example, setting
        osgi.instance.area=@user.dir/myWorkspace
    results in a value of
        file:/usr/share/eclipse/myWorkspace

but for example in windows/linux there are user specific places where one should place things look here:

to make Eclipse Applications integrate better in these we should add more placeholders that map to OS specific things, e.g. we might want:

  • @user.data should map to ApplicationData on windows and $HOME on Linux (difference to @user.home what is feed by javasystemproperty) and replacing the first path segment with a . so for example @user.data/myApp should resolve to '%APPDATA%\myApp on Windows and $HOME/.myApp on Linux
  • @user.data.shared should map on CommonApplicationData on windows and /srv on linux
  • @user.documents should map on Personal on windows and $HOME on linux
  • ... maybe more ideas that are usual places for application data ...

Of course the same needs to be investigated for Mac I have not found yet where these equivalent to linux or if there are other "standards" in MacOS

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions