00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _PASSENGER_RESOURCE_LOCATOR_H_
00026 #define _PASSENGER_RESOURCE_LOCATOR_H_
00027
00028 #include <string>
00029 #include "Utils.h"
00030
00031 namespace Passenger {
00032
00033 class ResourceLocator {
00034 private:
00035 string root;
00036 bool nativelyPackaged;
00037
00038 public:
00039 ResourceLocator(const string &passengerRoot) {
00040 root = passengerRoot;
00041 nativelyPackaged = !fileExists(root + "/Rakefile") ||
00042 !fileExists(root + "/DEVELOPERS.TXT");
00043 }
00044
00045 string getSourceRoot() const {
00046 if (nativelyPackaged) {
00047 return "/usr/lib/phusion-passenger/source";
00048 } else {
00049 return root;
00050 }
00051 }
00052
00053 string getAgentsDir() const {
00054 if (nativelyPackaged) {
00055 return "/usr/lib/phusion-passenger/agents";
00056 } else {
00057 return root + "/agents";
00058 }
00059 }
00060
00061 string getHelperScriptsDir() const {
00062 if (nativelyPackaged) {
00063 return "/usr/share/phusion-passenger/helper-scripts";
00064 } else {
00065 return root + "/helper-scripts";
00066 }
00067 }
00068
00069 string getSpawnServerFilename() const {
00070 return getHelperScriptsDir() + "/passenger-spawn-server";
00071 }
00072 };
00073
00074 }
00075
00076 #endif