forked from ungleich-public/cdist
		
	Add __uci and __uci_commit types
This commit is contained in:
		
					parent
					
						
							
								48d66b0143
							
						
					
				
			
			
				commit
				
					
						e30ecdda53
					
				
			
		
					 11 changed files with 357 additions and 0 deletions
				
			
		
							
								
								
									
										89
									
								
								cdist/conf/type/__uci/explorer/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								cdist/conf/type/__uci/explorer/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,89 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2020 Dennis Camera (dennis.camera at ssrq-sds-fds.ch)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file is part of cdist.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This explorer retrieves the current state of the configuration option
 | 
				
			||||||
 | 
					# The output of this explorer is one of these values:
 | 
				
			||||||
 | 
					#   present
 | 
				
			||||||
 | 
					#     The configuration option is present and has the value of the
 | 
				
			||||||
 | 
					#     parameter --value.
 | 
				
			||||||
 | 
					#   absent
 | 
				
			||||||
 | 
					#     The configuration option is not defined.
 | 
				
			||||||
 | 
					#   different
 | 
				
			||||||
 | 
					#     The configuration option is present but has a different value than the
 | 
				
			||||||
 | 
					#     parameter --value.
 | 
				
			||||||
 | 
					#   rearranged
 | 
				
			||||||
 | 
					#     The configuration option is present (a list) and has the same values as
 | 
				
			||||||
 | 
					#     the parameter --value, but in a different order.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RS=$(printf '\036')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					option=${__object_id:?}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					values_is=$(uci -s -N -d "${RS}" get "${option}" 2>/dev/null) || {
 | 
				
			||||||
 | 
						echo absent
 | 
				
			||||||
 | 
						exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# strip off trailing newline
 | 
				
			||||||
 | 
					printf '%s' "${values_is}" \
 | 
				
			||||||
 | 
					| awk '
 | 
				
			||||||
 | 
					BEGIN {
 | 
				
			||||||
 | 
						state = "present"  # assume all is fine
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					NR == FNR {
 | 
				
			||||||
 | 
						# memoize "should" state
 | 
				
			||||||
 | 
						should[FNR] = $0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# go to next line (important!)
 | 
				
			||||||
 | 
						next
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# compare "is" state
 | 
				
			||||||
 | 
					$0 == should[FNR] { next }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FNR > length(should) {
 | 
				
			||||||
 | 
						# there are more "is" records than "should" -> definitely different
 | 
				
			||||||
 | 
						state = "different"
 | 
				
			||||||
 | 
						exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						# see if we can find the value somewhere in should
 | 
				
			||||||
 | 
						for (i in should) {
 | 
				
			||||||
 | 
							if ($0 == should[i]) {
 | 
				
			||||||
 | 
								# ... value found -> rearranged
 | 
				
			||||||
 | 
								# FIXME: Duplicate values are not properly handled here. Do they matter?
 | 
				
			||||||
 | 
								state = "rearranged"
 | 
				
			||||||
 | 
								next
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						state = "different"
 | 
				
			||||||
 | 
						exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					END {
 | 
				
			||||||
 | 
						if (FNR < length(should)) {
 | 
				
			||||||
 | 
							# "is" was shorter than "should" -> different
 | 
				
			||||||
 | 
							state = "different"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						print state
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					' "${__object:?}/parameter/value" RS="${RS}" -
 | 
				
			||||||
							
								
								
									
										67
									
								
								cdist/conf/type/__uci/gencode-remote
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								cdist/conf/type/__uci/gencode-remote
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					#!/bin/sh -e
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2020 Dennis Camera (dennis.camera@ssrq-sds-fds.ch)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file is part of cdist.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					in_list() { printf '%s\n' "$@" | { grep -qxF "$(read -r NDL; echo "${NDL}")"; } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config=${__object_id:?}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state_is=$(cat "${__object:?}/explorer/state")
 | 
				
			||||||
 | 
					state_should=$(cat "${__object:?}/parameter/state")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case ${state_should}
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
						(present)
 | 
				
			||||||
 | 
							if in_list "${state_is}" 'present' 'rearranged'
 | 
				
			||||||
 | 
							then
 | 
				
			||||||
 | 
								# NOTE: order is ignored so rearranged is also fine.
 | 
				
			||||||
 | 
								exit 0
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if test "$(wc -l "${__object:?}/parameter/value")" -gt 1
 | 
				
			||||||
 | 
							then
 | 
				
			||||||
 | 
								# "should" is a list
 | 
				
			||||||
 | 
								if test "${state_is}" != 'absent'
 | 
				
			||||||
 | 
								then
 | 
				
			||||||
 | 
									printf "uci delete '%s'\n" "${config}"
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								while read -r value
 | 
				
			||||||
 | 
								do
 | 
				
			||||||
 | 
									printf "uci add_list '%s'='%s'\n" "${config}" "${value}"
 | 
				
			||||||
 | 
								done <"${__object:?}/parameter/value"
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								# "should" is a scalar
 | 
				
			||||||
 | 
								value=$(cat "${__object:?}/parameter/value")
 | 
				
			||||||
 | 
								printf "uci set '%s'='%s'\n" "${config}" "${value}"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						(absent)
 | 
				
			||||||
 | 
							if in_list "${state_is}" 'absent'
 | 
				
			||||||
 | 
							then
 | 
				
			||||||
 | 
								exit 0
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							printf "uci delete '%s'\n" "${config}"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						(*)
 | 
				
			||||||
 | 
							printf 'Invalid --state: %s\n' "${state_should}" >&2
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										77
									
								
								cdist/conf/type/__uci/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								cdist/conf/type/__uci/man.rst
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,77 @@
 | 
				
			||||||
 | 
					cdist-type__uci(7)
 | 
				
			||||||
 | 
					==================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__uci - Manage configuration values in OpenWrt's
 | 
				
			||||||
 | 
					Unified Configuration Interface (UCI)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					This cdist type can be used to alter configuration options in OpenWrt's UCI
 | 
				
			||||||
 | 
					system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Options can be applied in batches if the `--transaction` parameter is used.
 | 
				
			||||||
 | 
					It is important to ensure that the `__uci_commit` object is executed before a
 | 
				
			||||||
 | 
					new transaction is started.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					value
 | 
				
			||||||
 | 
					    The value to be set. Can be used multiple times.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Due to the way cdist handles arguments, values **must not** contain newline
 | 
				
			||||||
 | 
					    characters.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					    `present` or `absent`, defaults to `present`.
 | 
				
			||||||
 | 
					transaction
 | 
				
			||||||
 | 
					    The name of the transaction this option belongs to.
 | 
				
			||||||
 | 
					    If none is given: "default" is used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BOOLEAN PARAMETERS
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Set the system hostname
 | 
				
			||||||
 | 
					    __uci system.@system[0].hostname --value 'OpenWrt'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable NTP and NTPd (in one transaction)
 | 
				
			||||||
 | 
					    __uci system.ntp.enabled --value 1 --transaction ntp
 | 
				
			||||||
 | 
					    __uci system.ntp.enable_server --value 1 --transaction ntp
 | 
				
			||||||
 | 
					    __uci system.ntp.server --transaction ntp \
 | 
				
			||||||
 | 
					        --value '0.openwrt.pool.ntp.org' \
 | 
				
			||||||
 | 
					        --value '1.openwrt.pool.ntp.org' \
 | 
				
			||||||
 | 
					        --value '2.openwrt.pool.ntp.org' \
 | 
				
			||||||
 | 
					        --value '3.openwrt.pool.ntp.org'
 | 
				
			||||||
 | 
					    export require=__uci_commit/ntp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- https://openwrt.org/docs/guide-user/base-system/uci
 | 
				
			||||||
 | 
					- :strong:`cdist-type__uci_commit`\ (7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AUTHORS
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Dennis Camera <dennis.camera@ssrq-sds-fds.ch>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2020 Dennis Camera. You can redistribute it
 | 
				
			||||||
 | 
					and/or modify it under the terms of the GNU General Public License as
 | 
				
			||||||
 | 
					published by the Free Software Foundation, either version 3 of the
 | 
				
			||||||
 | 
					License, or (at your option) any later version.
 | 
				
			||||||
							
								
								
									
										40
									
								
								cdist/conf/type/__uci/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								cdist/conf/type/__uci/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					#!/bin/sh -e
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2020 Dennis Camera (dennis.camera@ssrq-sds-fds.ch)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file is part of cdist.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					os=$(cat "${__global:?}/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					transaction_name=$(cat "${__object:?}/parameter/transaction")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case ${os}
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
						(openwrt)
 | 
				
			||||||
 | 
							# okay
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						(*)
 | 
				
			||||||
 | 
							printf "Your operating system (%s) is currently not supported by this type (%s)\n" "${os}" "${__type##*/}" >&2
 | 
				
			||||||
 | 
							printf "Please contribute an implementation for it if you can.\n" >&2
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make sure the changes are being commited
 | 
				
			||||||
 | 
					require=${__object_name:?} __uci_commit "${transaction_name}"
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__uci/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__uci/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__uci/parameter/default/transaction
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__uci/parameter/default/transaction
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					default
 | 
				
			||||||
							
								
								
									
										2
									
								
								cdist/conf/type/__uci/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__uci/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					transaction
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__uci/parameter/required_multiple
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__uci/parameter/required_multiple
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					value
 | 
				
			||||||
							
								
								
									
										21
									
								
								cdist/conf/type/__uci_commit/gencode-remote
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								cdist/conf/type/__uci_commit/gencode-remote
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					#!/bin/sh -e
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2020 Dennis Camera (dennis.camera@ssrq-sds-fds.ch)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file is part of cdist.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# cdist is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo 'uci commit'
 | 
				
			||||||
							
								
								
									
										58
									
								
								cdist/conf/type/__uci_commit/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								cdist/conf/type/__uci_commit/man.rst
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,58 @@
 | 
				
			||||||
 | 
					cdist-type__uci_commit(7)
 | 
				
			||||||
 | 
					=========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__uci_commit - Commit a UCI transaction.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					This type executes the "uci commit" command on the target.
 | 
				
			||||||
 | 
					It is usually not required to use this type. Use the `--transaction` parameter
 | 
				
			||||||
 | 
					of `cdist-type__uci`\ (7) instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BOOLEAN PARAMETERS
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					None.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Commit the default transaction
 | 
				
			||||||
 | 
					    __uci_commit default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Commit another transaction
 | 
				
			||||||
 | 
					    __uci_commit my_transaction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					:strong:`cdist-type__uci`\ (7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AUTHORS
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Dennis Camera <dennis.camera@ssrq-sds-fds.ch>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2020 Dennis Camera. You can redistribute it
 | 
				
			||||||
 | 
					and/or modify it under the terms of the GNU General Public License as
 | 
				
			||||||
 | 
					published by the Free Software Foundation, either version 3 of the
 | 
				
			||||||
 | 
					License, or (at your option) any later version.
 | 
				
			||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__uci_commit/nonparallel
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__uci_commit/nonparallel
									
										
									
									
									
										Normal file
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue