]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-scripts: Factor out function ctdb_setup_state_dir()
authorMartin Schwenke <martin@meltin.net>
Tue, 6 Feb 2018 02:49:46 +0000 (13:49 +1100)
committerMartin Schwenke <martins@samba.org>
Fri, 9 Mar 2018 06:08:24 +0000 (07:08 +0100)
This allows state directories for scripts other than services.
ctdb_setup_state_dir() takes 2 mandatory arguments.

Unlike ctdb_setup_service_state_dir(), this does not print the
directory name but sets a global variable.  The intention is to go
back to a more sensible style of usage.

This will require a shellcheck directive before the first use, such
as:

  # Set by ctdb_setup_state_dir
  # shellcheck disable=SC2154
  foo="${script_state_dir}/bar"

An alternative would be something like the following, which tricks
shellcheck into believing the variable is set:

  ctdb_setup_state_dir "service" "foo"
  # Shellcheck
  script_state_dir="$script_state_dir"

However, this is more cryptic.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/config/functions

index de8c2d07a3fa31997c1f9894a38949b1e0c218f0..80d4f585ff7d11b2387f8a170947636be8f5cda9 100755 (executable)
@@ -723,15 +723,32 @@ ctdb_counter_get () {
 
 ########################################################
 
+# ctdb_setup_state_dir <type> <name>
+#   Sets/creates script_state_dir)
+ctdb_setup_state_dir ()
+{
+       [ $# -eq 2 ] || die "usage: ctdb_setup_state_dir <type> <name>"
+
+       _type="$1"
+       _name="$2"
+
+       script_state_dir="${CTDB_SCRIPT_VARDIR}/${_type}/${_name}"
+
+       mkdir -p "$script_state_dir" || \
+               die "Error creating script state dir \"${script_state_dir}\""
+}
+
+# ctdb_setup_service_state_dir [name]
+#   Sets/creates/prints script_state_dir)
 ctdb_setup_service_state_dir ()
 {
+       # Some code passes an argument
+       # shellcheck disable=SC2120
        _s="${1:-${service_name}}"
 
-       _service_state_dir="${CTDB_SCRIPT_VARDIR}/service_state/${_s}"
-       mkdir -p "$_service_state_dir" ||
-               die "Error creating state dir \"${_service_state_dir}\""
+       ctdb_setup_state_dir "service" "$_s"
 
-       echo "$_service_state_dir"
+       echo "$script_state_dir"
 }
 
 ##################################################################