From: Leonardo Mörlein Date: Sat, 16 Jan 2021 23:11:01 +0100 Subject: package/uci: backport: "cli: add option for changing save path" This is a backport of https://git.openwrt.org/?p=project/uci.git;a=commit;h=4b3db1179747b6a6779029407984bacef851325c diff --git a/package/system/uci/Makefile b/package/system/uci/Makefile index 75fc1bdfad0694aac99830b9b0cc87b42ea16e7d..924d5bb4824f567888e2ffd2954429af8f4fd504 100644 --- a/package/system/uci/Makefile +++ b/package/system/uci/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=uci -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_SOURCE_URL=$(PROJECT_GIT)/project/uci.git PKG_SOURCE_PROTO:=git diff --git a/package/system/uci/patches/0001-cli-add-option-for-changin-save-path.patch b/package/system/uci/patches/0001-cli-add-option-for-changin-save-path.patch new file mode 100644 index 0000000000000000000000000000000000000000..377aec41fe6928aa26bccdde9fd77576d57ec4ed --- /dev/null +++ b/package/system/uci/patches/0001-cli-add-option-for-changin-save-path.patch @@ -0,0 +1,56 @@ +From: Rafał Miłecki +Date: Mon, 12 Apr 2021 14:05:52 +0000 (+0200) +Subject: cli: add option for changing save path +X-Git-Url: http://git.openwrt.org/?p=project%2Fuci.git;a=commitdiff_plain;h=4b3db1179747b6a6779029407984bacef851325c;hp=52bbc99f69ea6f67b6fe264f424dac91bde5016c + +cli: add option for changing save path + +Save path is a directory where config change (delta) files are stored. +Having a custom individual save dir can be used to prevent two (or more) +"uci" cli callers (e.g. bash scripts) from commiting each other changes. + +In the following example: + +App0 App1 +---- ---- +uci set system.@system[0].timezone=UTC + uci set system.@system[0].hostname=OpenWrt + uci commit system + +App1 would unintentionally commit changes made by App0. This can be +avoided by at least 1 "uci" cli user specifying a custom -t option. + +Signed-off-by: Rafał Miłecki +--- + +diff --git a/cli.c b/cli.c +index 267437d..2fce39d 100644 +--- a/cli.c ++++ b/cli.c +@@ -167,6 +167,7 @@ static void uci_usage(void) + "\t-N don't name unnamed sections\n" + "\t-p add a search path for config change files\n" + "\t-P add a search path for config change files and use as default\n" ++ "\t-t set save path for config change files\n" + "\t-q quiet mode (don't print error messages)\n" + "\t-s force strict mode (stop on parser errors, default)\n" + "\t-S disable strict mode\n" +@@ -706,7 +707,7 @@ int main(int argc, char **argv) + return 1; + } + +- while((c = getopt(argc, argv, "c:d:f:LmnNp:P:sSqX")) != -1) { ++ while((c = getopt(argc, argv, "c:d:f:LmnNp:P:qsSt:X")) != -1) { + switch(c) { + case 'c': + uci_set_confdir(ctx, optarg); +@@ -754,6 +755,9 @@ int main(int argc, char **argv) + case 'q': + flags |= CLI_FLAG_QUIET; + break; ++ case 't': ++ uci_set_savedir(ctx, optarg); ++ break; + case 'X': + flags &= ~CLI_FLAG_SHOW_EXT; + break;