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>
pull/24572/head
Lukas Petersson 3 years ago committed by GitHub
parent 2c2c61fd77
commit c28735358e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  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;
}
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;
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));
}
return params_path;
@ -180,9 +180,12 @@ std::unordered_map<std::string, uint32_t> keys = {
} // namespace
Params::Params(const std::string &path) {
static std::string default_param_path = ensure_params_path();
params_path = path.empty() ? default_param_path : ensure_params_path(path);
const char* env = std::getenv("OPENPILOT_PREFIX");
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) {

@ -18,7 +18,7 @@ public:
bool checkKey(const std::string &key);
ParamKeyType getKeyType(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
@ -43,4 +43,5 @@ public:
private:
std::string params_path;
std::string prefix;
};

Loading…
Cancel
Save