shellcheck: fix issues
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I8d2f299a29a4fd8cf97ea238a982c15bae549207
diff --git a/tools/sdbus++-gen-meson b/tools/sdbus++-gen-meson
index 4d0658f..549eb58 100755
--- a/tools/sdbus++-gen-meson
+++ b/tools/sdbus++-gen-meson
@@ -38,7 +38,7 @@
## resulting meson.build would change.
tool_version="sdbus++-gen-meson version 3"
function show_version {
- echo "$tool_version"
+ echo "${tool_version}"
}
# Set up defaults.
@@ -49,7 +49,7 @@
# Parse options.
options="$(getopt -o hc:d:o:t:v --long help,command:,directory:,output:,tool:,version -- "$@")"
-eval set -- "$options"
+eval set -- "${options}"
while true; do
case "$1" in
@@ -91,6 +91,11 @@
shift
break
;;
+
+ *)
+ echo "Invalid argument $1"
+ exit 1
+ ;;
esac
done
@@ -106,19 +111,19 @@
## Inserts rules to run the available version of this tool to ensure the
## version has not changed.
function meson_create_root {
- meson_empty_file "$outputdir"
+ meson_empty_file "${outputdir}"
- cat >> "$outputdir/meson.build" \
+ cat >> "${outputdir}/meson.build" \
<< EOF
sdbuspp_gen_meson_ver = run_command(
sdbuspp_gen_meson_prog,
'--version',
).stdout().strip().split('\n')[0]
-if sdbuspp_gen_meson_ver != '$tool_version'
+if sdbuspp_gen_meson_ver != '${tool_version}'
warning('Generated meson files from wrong version of sdbus++-gen-meson.')
warning(
- 'Expected "$tool_version", got:',
+ 'Expected "${tool_version}", got:',
sdbuspp_gen_meson_ver
)
endif
@@ -138,25 +143,25 @@
## $1 - The path requiring to be created.
function meson_create_path {
- meson_path="$outputdir"
+ meson_path="${outputdir}"
prev_meson_path=""
# Split the path into segments.
for part in $(echo "$1" | tr '/' '\n'); do
- prev_meson_path="$meson_path"
- meson_path="$meson_path/$part"
+ prev_meson_path="${meson_path}"
+ meson_path="${meson_path}/${part}"
# Create the meson.build for this segment if it doesn't already exist.
- if [ "" == "${meson_paths[$meson_path]}" ]; then
- meson_paths["$meson_path"]="1"
- meson_empty_file "$meson_path"
+ if [[ "" == "${meson_paths[${meson_path}]}" ]]; then
+ meson_paths["${meson_path}"]="1"
+ meson_empty_file "${meson_path}"
# Add the 'subdir' link into the parent's meson.build.
# We need to skip adding the links into the 'root' meson.build
# because most repositories want to selectively add TLDs based
# on config flags. Let them figure out their own logic for that.
- if [ "$outputdir" != "$prev_meson_path" ]; then
- echo "subdir('$part')" >> "$prev_meson_path/meson.build"
+ if [[ ${outputdir} != "${prev_meson_path}" ]]; then
+ echo "subdir('${part}')" >> "${prev_meson_path}/meson.build"
fi
fi
done
@@ -167,16 +172,16 @@
##
## $1 - The interface to generate a target for.
function meson_cpp_target {
- mesondir="$outputdir/$1"
- yamldir="$(realpath --relative-to="$mesondir" "$rootdir")"
+ mesondir="${outputdir}/$1"
+ yamldir="$(realpath --relative-to="${mesondir}" "${rootdir}")"
# Determine the source and output files based on the YAMLs present.
sources=""
outputs=""
for s in ${interfaces[$1]}; do
- sources="'$yamldir/$1.$s', "
+ sources="'${yamldir}/$1.${s}', "
- case "$s" in
+ case "${s}" in
errors.yaml)
outputs="${outputs}'error.cpp', 'error.hpp', "
;;
@@ -185,21 +190,26 @@
outputs="${outputs}'server.cpp', 'server.hpp', "
outputs="${outputs}'client.hpp', "
;;
+
+ *)
+ echo "Unknown interface type: ${s}"
+ exit 1
+ ;;
esac
done
# Create the target to generate the 'outputs'.
- cat >> "$mesondir/meson.build" \
+ cat >> "${mesondir}/meson.build" \
<< EOF
generated_sources += custom_target(
'$1__cpp'.underscorify(),
- input: [ $sources ],
- output: [ $outputs ],
+ input: [ ${sources} ],
+ output: [ ${outputs} ],
command: [
sdbuspp_gen_meson_prog, '--command', 'cpp',
'--output', meson.current_build_dir(),
'--tool', sdbusplusplus_prog,
- '--directory', meson.current_source_dir() / '$yamldir',
+ '--directory', meson.current_source_dir() / '${yamldir}',
'$1',
],
)
@@ -210,27 +220,27 @@
## Generate the meson target for the markdown files from a YAML interface.
## $1 - The interface to generate a target for.
function meson_md_target {
- mesondir="$outputdir/$(dirname "$1")"
- yamldir="$(realpath --relative-to="$mesondir" "$rootdir")"
+ mesondir="${outputdir}/$(dirname "$1")"
+ yamldir="$(realpath --relative-to="${mesondir}" "${rootdir}")"
# Determine the source files based on the YAMLs present.
sources=""
for s in ${interfaces[$1]}; do
- sources="'$yamldir/$1.$s', "
+ sources="'${yamldir}/$1.${s}', "
done
# Create the target to generate the interface.md file.
- cat >> "$mesondir/meson.build" \
+ cat >> "${mesondir}/meson.build" \
<< EOF
generated_others += custom_target(
'$1__markdown'.underscorify(),
- input: [ $sources ],
+ input: [ ${sources} ],
output: [ '$(basename "$1").md' ],
command: [
sdbuspp_gen_meson_prog, '--command', 'markdown',
'--output', meson.current_build_dir(),
'--tool', sdbusplusplus_prog,
- '--directory', meson.current_source_dir() / '$yamldir',
+ '--directory', meson.current_source_dir() / '${yamldir}',
'$1',
],
)
@@ -244,39 +254,41 @@
yamls=""
# Find all the YAML files in the TLD subdirectories.
- for d in $TLDs; do
- dir="$rootdir/$d"
- if [ ! -d "$dir" ]; then
+ for d in ${TLDs}; do
+ dir="${rootdir}/${d}"
+ if [[ ! -d ${dir} ]]; then
continue
fi
yamls="\
- $yamls \
- $(find "$dir" -name '*.interface.yaml' -o -name '*.errors.yaml') \
+ ${yamls} \
+ $(find "${dir}" -name '*.interface.yaml' -o -name '*.errors.yaml') \
"
done
# Sort YAMLs
- yamls="$(echo "$yamls" | tr " " "\n" | sort)"
+ # shellcheck disable=SC2312
+ yamls="$(echo "${yamls}" | tr " " "\n" | sort)"
# Assign the YAML files into the hash-table by interface name.
- for y in $yamls; do
- rel="$(realpath "--relative-to=$rootdir" "$y")"
- dir="$(dirname "$rel")"
+ for y in ${yamls}; do
+ rel="$(realpath "--relative-to=${rootdir}" "${y}")"
+ dir="$(dirname "${rel}")"
ext="${rel#*.}"
- base="$(basename "$rel" ".$ext")"
- key="$dir/$base"
+ base="$(basename "${rel}" ".${ext}")"
+ key="${dir}/${base}"
- interfaces["$key"]="${interfaces[$key]} $ext"
+ interfaces["${key}"]="${interfaces[${key}]} ${ext}"
done
# Create the meson.build files.
meson_create_root
+ # shellcheck disable=SC2312
sorted_ifaces="$(echo "${!interfaces[@]}" | tr " " "\n" | sort)"
for i in ${sorted_ifaces}; do
- meson_create_path "$i"
- meson_cpp_target "$i"
- meson_md_target "$i"
+ meson_create_path "${i}"
+ meson_cpp_target "${i}"
+ meson_md_target "${i}"
done
}
@@ -286,31 +298,31 @@
## For an interface foo/bar, the outputdir is expected to be foo/bar.
function cmd_cpp {
- if [ "" == "$1" ]; then
+ if [[ "" == "$1" ]]; then
show_usage
exit 1
fi
- if [ ! -e "$rootdir/$1.interface.yaml" ] &&
- [ ! -e "$rootdir/$1.errors.yaml" ]; then
+ if [[ ! -e "${rootdir}/$1.interface.yaml" ]] &&
+ [[ ! -e "${rootdir}/$1.errors.yaml" ]]; then
echo "Missing YAML for $1."
exit 1
fi
- mkdir -p "$outputdir"
+ mkdir -p "${outputdir}"
- sdbusppcmd="$sdbuspp -r $rootdir"
+ sdbusppcmd="${sdbuspp} -r ${rootdir}"
intf="${1//\//.}"
- if [ -e "$rootdir/$1.interface.yaml" ]; then
- $sdbusppcmd interface server-header "$intf" > "$outputdir/server.hpp"
- $sdbusppcmd interface server-cpp "$intf" > "$outputdir/server.cpp"
- $sdbusppcmd interface client-header "$intf" > "$outputdir/client.hpp"
+ if [[ -e "${rootdir}/$1.interface.yaml" ]]; then
+ ${sdbusppcmd} interface server-header "${intf}" > "${outputdir}/server.hpp"
+ ${sdbusppcmd} interface server-cpp "${intf}" > "${outputdir}/server.cpp"
+ ${sdbusppcmd} interface client-header "${intf}" > "${outputdir}/client.hpp"
fi
- if [ -e "$rootdir/$1.errors.yaml" ]; then
- $sdbusppcmd error exception-header "$intf" > "$outputdir/error.hpp"
- $sdbusppcmd error exception-cpp "$intf" > "$outputdir/error.cpp"
+ if [[ -e "${rootdir}/$1.errors.yaml" ]]; then
+ ${sdbusppcmd} error exception-header "${intf}" > "${outputdir}/error.hpp"
+ ${sdbusppcmd} error exception-cpp "${intf}" > "${outputdir}/error.cpp"
fi
}
@@ -320,30 +332,30 @@
## For an interface foo/bar, the outputdir is expected to be foo.
function cmd_markdown {
- if [ "" == "$1" ]; then
+ if [[ "" == "$1" ]]; then
show_usage
exit 1
fi
- if [ ! -e "$rootdir/$1.interface.yaml" ] &&
- [ ! -e "$rootdir/$1.errors.yaml" ]; then
+ if [[ ! -e "${rootdir}/$1.interface.yaml" ]] &&
+ [[ ! -e "${rootdir}/$1.errors.yaml" ]]; then
echo "Missing YAML for $1."
exit 1
fi
- mkdir -p "$outputdir"
+ mkdir -p "${outputdir}"
- sdbusppcmd="$sdbuspp -r $rootdir"
+ sdbusppcmd="${sdbuspp} -r ${rootdir}"
intf="${1//\//.}"
base="$(basename "$1")"
- echo -n > "$outputdir/$base.md"
- if [ -e "$rootdir/$1.interface.yaml" ]; then
- $sdbusppcmd interface markdown "$intf" >> "$outputdir/$base.md"
+ echo -n > "${outputdir}/${base}.md"
+ if [[ -e "${rootdir}/$1.interface.yaml" ]]; then
+ ${sdbusppcmd} interface markdown "${intf}" >> "${outputdir}/${base}.md"
fi
- if [ -e "$rootdir/$1.errors.yaml" ]; then
- $sdbusppcmd error markdown "$intf" >> "$outputdir/$base.md"
+ if [[ -e "${rootdir}/$1.errors.yaml" ]]; then
+ ${sdbusppcmd} error markdown "${intf}" >> "${outputdir}/${base}.md"
fi
}
@@ -352,4 +364,4 @@
show_version
}
-"cmd_$cmd" "$*"
+"cmd_${cmd}" "$*"