mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
spiffs: follow symlinks feature during partition in spiffsgen
This commit is contained in:
parent
d77a7c23da
commit
6153a0ab62
@ -76,6 +76,13 @@ menu "SPIFFS Configuration"
|
|||||||
SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed
|
SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed
|
||||||
SPIFFS_PAGE_SIZE - 64.
|
SPIFFS_PAGE_SIZE - 64.
|
||||||
|
|
||||||
|
config SPIFFS_FOLLOW_SYMLINKS
|
||||||
|
bool "Enable symbolic links for image creation"
|
||||||
|
default "n"
|
||||||
|
help
|
||||||
|
If this option is enabled, symbolic links are taken into account
|
||||||
|
during partition image creation.
|
||||||
|
|
||||||
config SPIFFS_USE_MAGIC
|
config SPIFFS_USE_MAGIC
|
||||||
bool "Enable SPIFFS Filesystem Magic"
|
bool "Enable SPIFFS Filesystem Magic"
|
||||||
default "y"
|
default "y"
|
||||||
|
@ -13,6 +13,12 @@ else
|
|||||||
USE_MAGIC_LEN = ""
|
USE_MAGIC_LEN = ""
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_SPIFFS_FOLLOW_SYMLINKS
|
||||||
|
FOLLOW_SYMLINKS = "--follow-symlinks"
|
||||||
|
else
|
||||||
|
FOLLOW_SYMLINKS = ""
|
||||||
|
endif
|
||||||
|
|
||||||
# spiffs_create_partition_image
|
# spiffs_create_partition_image
|
||||||
#
|
#
|
||||||
# Create a spiffs image of the specified directory on the host during build and optionally
|
# Create a spiffs image of the specified directory on the host during build and optionally
|
||||||
@ -27,6 +33,7 @@ $(1)_bin: $(PARTITION_TABLE_BIN) $(SPIFFS_IMAGE_DEPENDS) | check_python_dependen
|
|||||||
--page-size=$(CONFIG_SPIFFS_PAGE_SIZE) \
|
--page-size=$(CONFIG_SPIFFS_PAGE_SIZE) \
|
||||||
--obj-name-len=$(CONFIG_SPIFFS_OBJ_NAME_LEN) \
|
--obj-name-len=$(CONFIG_SPIFFS_OBJ_NAME_LEN) \
|
||||||
--meta-len=$(CONFIG_SPIFFS_META_LENGTH) \
|
--meta-len=$(CONFIG_SPIFFS_META_LENGTH) \
|
||||||
|
$(FOLLOW_SYMLINKS) \
|
||||||
$(USE_MAGIC) \
|
$(USE_MAGIC) \
|
||||||
$(USE_MAGIC_LEN)
|
$(USE_MAGIC_LEN)
|
||||||
|
|
||||||
@ -43,4 +50,4 @@ endef
|
|||||||
|
|
||||||
ESPTOOL_ALL_FLASH_ARGS += $(foreach partition,$(SPIFFSGEN_FLASH_IN_PROJECT), \
|
ESPTOOL_ALL_FLASH_ARGS += $(foreach partition,$(SPIFFSGEN_FLASH_IN_PROJECT), \
|
||||||
$(shell $(GET_PART_INFO) --partition-table-file $(PARTITION_TABLE_BIN) \
|
$(shell $(GET_PART_INFO) --partition-table-file $(PARTITION_TABLE_BIN) \
|
||||||
get_partition_info --partition-name $(partition) --info offset) $(BUILD_DIR_BASE)/$(partition).bin)
|
get_partition_info --partition-name $(partition) --info offset) $(BUILD_DIR_BASE)/$(partition).bin)
|
||||||
|
@ -25,6 +25,10 @@ function(spiffs_create_partition_image partition base_dir)
|
|||||||
set(use_magic_len "--use-magic-len")
|
set(use_magic_len "--use-magic-len")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CONFIG_SPIFFS_FOLLOW_SYMLINKS)
|
||||||
|
set(follow_symlinks "--follow-symlinks")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Execute SPIFFS image generation; this always executes as there is no way to specify for CMake to watch for
|
# Execute SPIFFS image generation; this always executes as there is no way to specify for CMake to watch for
|
||||||
# contents of the base dir changing.
|
# contents of the base dir changing.
|
||||||
add_custom_target(spiffs_${partition}_bin ALL
|
add_custom_target(spiffs_${partition}_bin ALL
|
||||||
@ -32,6 +36,7 @@ function(spiffs_create_partition_image partition base_dir)
|
|||||||
--page-size=${CONFIG_SPIFFS_PAGE_SIZE}
|
--page-size=${CONFIG_SPIFFS_PAGE_SIZE}
|
||||||
--obj-name-len=${CONFIG_SPIFFS_OBJ_NAME_LEN}
|
--obj-name-len=${CONFIG_SPIFFS_OBJ_NAME_LEN}
|
||||||
--meta-len=${CONFIG_SPIFFS_META_LENGTH}
|
--meta-len=${CONFIG_SPIFFS_META_LENGTH}
|
||||||
|
${follow_symlinks}
|
||||||
${use_magic}
|
${use_magic}
|
||||||
${use_magic_len}
|
${use_magic_len}
|
||||||
DEPENDS ${arg_DEPENDS}
|
DEPENDS ${arg_DEPENDS}
|
||||||
@ -46,4 +51,4 @@ function(spiffs_create_partition_image partition base_dir)
|
|||||||
else()
|
else()
|
||||||
esptool_py_flash_project_args(${partition} ${offset} ${image_file})
|
esptool_py_flash_project_args(${partition} ${offset} ${image_file})
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -488,6 +488,11 @@ def main():
|
|||||||
action="store_true",
|
action="store_true",
|
||||||
default=True)
|
default=True)
|
||||||
|
|
||||||
|
parser.add_argument("--follow-symlinks",
|
||||||
|
help="Take into account symbolic links during partition image creation.",
|
||||||
|
action="store_true",
|
||||||
|
default=False)
|
||||||
|
|
||||||
parser.add_argument("--use-magic-len",
|
parser.add_argument("--use-magic-len",
|
||||||
help="Use position in memory to create different magic numbers for each block. Specify if CONFIG_SPIFFS_USE_MAGIC_LENGTH.",
|
help="Use position in memory to create different magic numbers for each block. Specify if CONFIG_SPIFFS_USE_MAGIC_LENGTH.",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
@ -513,7 +518,7 @@ def main():
|
|||||||
|
|
||||||
spiffs = SpiffsFS(image_size, spiffs_build_default)
|
spiffs = SpiffsFS(image_size, spiffs_build_default)
|
||||||
|
|
||||||
for root, dirs, files in os.walk(args.base_dir):
|
for root, dirs, files in os.walk(args.base_dir, followlinks=args.follow_symlinks):
|
||||||
for f in files:
|
for f in files:
|
||||||
full_path = os.path.join(root, f)
|
full_path = os.path.join(root, f)
|
||||||
spiffs.create_file("/" + os.path.relpath(full_path, args.base_dir).replace("\\", "/"), full_path)
|
spiffs.create_file("/" + os.path.relpath(full_path, args.base_dir).replace("\\", "/"), full_path)
|
||||||
|
@ -516,6 +516,7 @@ CONFIG_SPIFFS_PAGE_SIZE=256
|
|||||||
CONFIG_SPIFFS_OBJ_NAME_LEN=32
|
CONFIG_SPIFFS_OBJ_NAME_LEN=32
|
||||||
CONFIG_SPIFFS_USE_MAGIC=y
|
CONFIG_SPIFFS_USE_MAGIC=y
|
||||||
CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
|
CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
|
||||||
|
CONFIG_SPIFFS_FOLLOW_SYMLINKS=
|
||||||
CONFIG_SPIFFS_META_LENGTH=4
|
CONFIG_SPIFFS_META_LENGTH=4
|
||||||
CONFIG_SPIFFS_USE_MTIME=y
|
CONFIG_SPIFFS_USE_MTIME=y
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user