Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

POSIX directory structure, packaging support #18

Open
tylerjwatson opened this issue Dec 28, 2015 · 0 comments
Open

POSIX directory structure, packaging support #18

tylerjwatson opened this issue Dec 28, 2015 · 0 comments

Comments

@tylerjwatson
Copy link
Member

Proposal - POSIX Directory Structure

The purpose of this proposal is to outline the requirements for server behaviour in regards to POSIX directory structure support and RFC for such features.

Outline

The server should move away from the implicit current directory base structure in favour of a configurable base directory that may be globally based, or overridden to support instances of TShock 5.0 on the same server.

Behaviours

  • Shared modules/plugins should live in the system-wide plugins directory whereas local modules may live in $ORION_BASE_PATH/modules
  • Shared configuration should live in the system-wide configuration directory, and local configuration may live in $ORION_BASE_PATH/config. The path in which configuration resides is transparently handled by the OrionConfiguration module and isn't needed to be worried about by plugins themselves.
  • The server should obey the environment variable ORION_BASE_PATH which specifies an absolute base directory in which to bootstrap itself out of. This method is easily supported by systemd, launchctl and upstart, and allows for one server per host and server instances at the same time
    • In absence of this environment variable (or an ENOENT on the directory specified therein), the server should obey the default system-wide directories.
  • The server should obey the system-wide configuration in all instances, unless overridden by a local configuration file.

Default Directories

GNU/Linux

  • /usr/bin/ - binary directory
  • /etc/orion/ - base system-wide configuration
  • /var/lib/orion - base system-wide orion data
  • /var/lib/orion/modules - base system-wide plugin directory
  • /var/lib/orion/data - base system-wide database directory

MacOSX

  • /usr/bin/ - binary directory
  • /Library/Frameworks/Orion.framework/ - base system-wide orion data
  • /Library/Frameworks/Orion.framework/Modules - base system-wide configuration

Windows

%ProgramFiles%\Orion - base binary directory

@tylerjwatson tylerjwatson added this to the Integration into Open Terraria API milestone Dec 28, 2015
@tylerjwatson tylerjwatson removed this from the Integration into Open Terraria API milestone Jul 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant