mirror of
https://github.com/esphome/esphome.git
synced 2026-07-11 01:15:33 +00:00
Merge remote-tracking branch 'origin/app-name-stringref' into integration
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include <fstream>
|
||||
#include "preferences.h"
|
||||
#include "esphome/core/application.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
namespace esphome {
|
||||
namespace host {
|
||||
@@ -14,7 +15,12 @@ static const char *const TAG = "host.preferences";
|
||||
void HostPreferences::setup_() {
|
||||
if (this->setup_complete_)
|
||||
return;
|
||||
this->filename_.append(getenv("HOME"));
|
||||
const char *home = getenv("HOME");
|
||||
if (home == nullptr) {
|
||||
ESP_LOGE(TAG, "HOME environment variable is not set");
|
||||
abort();
|
||||
}
|
||||
this->filename_.append(home);
|
||||
this->filename_.append("/.esphome");
|
||||
this->filename_.append("/prefs");
|
||||
fs::create_directories(this->filename_);
|
||||
@@ -44,9 +50,12 @@ void HostPreferences::setup_() {
|
||||
bool HostPreferences::sync() {
|
||||
this->setup_();
|
||||
FILE *fp = fopen(this->filename_.c_str(), "wb");
|
||||
std::map<uint32_t, std::vector<uint8_t>>::iterator it;
|
||||
if (fp == nullptr) {
|
||||
ESP_LOGE(TAG, "Failed to open preferences file for writing: %s", this->filename_.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
for (it = this->data.begin(); it != this->data.end(); ++it) {
|
||||
for (auto it = this->data.begin(); it != this->data.end(); ++it) {
|
||||
fwrite(&it->first, sizeof(uint32_t), 1, fp);
|
||||
uint8_t len = it->second.size();
|
||||
fwrite(&len, sizeof(len), 1, fp);
|
||||
|
||||
@@ -111,6 +111,8 @@ VALID_INCLUDE_EXTS = {".h", ".hpp", ".tcc", ".ino", ".cpp", ".c"}
|
||||
|
||||
def validate_hostname(config):
|
||||
# Keep in sync with ESPHOME_DEVICE_NAME_MAX_LEN in esphome/core/entity_base.h
|
||||
if not config[CONF_NAME]:
|
||||
raise cv.Invalid("Hostname must not be empty", path=[CONF_NAME])
|
||||
max_length = 31
|
||||
if config[CONF_NAME_ADD_MAC_SUFFIX]:
|
||||
max_length -= 7 # "-AABBCC" is appended when add mac suffix option is used
|
||||
|
||||
Reference in New Issue
Block a user