Skip to content

POSIX directory structure, packaging support #18

@tylerjwatson

Description

@tylerjwatson

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions