params: support OPENPILOT_PREFIX (#24495)

* prefix params

* set env

* prefix in manager

* filesystem except

* dont delete manager folder

* Update selfdrive/common/params.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* debug same path

* remove cleanup + same default

* dont use filesystem lib

* param symlink path

* path

* spelling

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: c28735358e
taco
Lukas Petersson 3 years ago committed by GitHub
parent 318b9cff4b
commit 622b4b9d9e
  1. 11
      selfdrive/common/params.cc
  2. 3
      selfdrive/common/params.h

@ -60,9 +60,9 @@ bool create_params_path(const std::string &param_path, const std::string &key_pa
return true; return true;
} }
std::string ensure_params_path(const std::string &path = {}) { std::string ensure_params_path(const std::string &prefix, const std::string &path = {}) {
std::string params_path = path.empty() ? Path::params() : path; std::string params_path = path.empty() ? Path::params() : path;
if (!create_params_path(params_path, params_path + "/d")) { if (!create_params_path(params_path, params_path + prefix)) {
throw std::runtime_error(util::string_format("Failed to ensure params path, errno=%d", errno)); throw std::runtime_error(util::string_format("Failed to ensure params path, errno=%d", errno));
} }
return params_path; return params_path;
@ -180,9 +180,12 @@ std::unordered_map<std::string, uint32_t> keys = {
} // namespace } // namespace
Params::Params(const std::string &path) { Params::Params(const std::string &path) {
static std::string default_param_path = ensure_params_path(); const char* env = std::getenv("OPENPILOT_PREFIX");
params_path = path.empty() ? default_param_path : ensure_params_path(path); prefix = env ? "/" + std::string(env) : "/d";
std::string default_param_path = ensure_params_path(prefix);
params_path = path.empty() ? default_param_path : ensure_params_path(prefix, path);
} }
bool Params::checkKey(const std::string &key) { bool Params::checkKey(const std::string &key) {

@ -18,7 +18,7 @@ public:
bool checkKey(const std::string &key); bool checkKey(const std::string &key);
ParamKeyType getKeyType(const std::string &key); ParamKeyType getKeyType(const std::string &key);
inline std::string getParamPath(const std::string &key = {}) { inline std::string getParamPath(const std::string &key = {}) {
return key.empty() ? params_path + "/d" : params_path + "/d/" + key; return params_path + prefix + (key.empty() ? "" : "/" + key);
} }
// Delete a value // Delete a value
@ -43,4 +43,5 @@ public:
private: private:
std::string params_path; std::string params_path;
std::string prefix;
}; };

Loading…
Cancel
Save