Skip to content

Commit 61247b8

Browse files
Lint all scripts with shellcheck (#392)
Description of changes: Used the output of the `shellcheck` tool to make style changes to all of the shell scripts within the repository. Added a new `make` target for `lint-shell` which lints all of the scripts and excludes SC1091, which fails because we `source` other scripts using path variables (a known limitation of `shellcheck`). By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent ed1b44f commit 61247b8

15 files changed

+139
-162
lines changed

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ GO_CMD_LOCAL_FLAGS=-modfile=go.local.mod $(GO_CMD_FLAGS)
2121

2222
.PHONY: all local-build-ack-generate build-ack-generate local-build-controller \
2323
build-controller test local-test build-controller-image \
24-
local-build-controller-image
24+
local-build-controller-image lint-shell
2525

2626
all: test
2727

@@ -58,6 +58,9 @@ test: ## Run code tests
5858
local-test: ## Run code tests using the local go.mod
5959
go test ${GO_CMD_LOCAL_FLAGS} ./...
6060

61+
lint-shell: ## Run linters against all of the bash scripts
62+
@find . -type f -name "*.sh" | xargs shellcheck -e SC1091
63+
6164
help: ## Show this help.
6265
@grep -F -h "##" $(MAKEFILE_LIST) | grep -F -v grep | sed -e 's/\\$$//' \
6366
| awk -F'[:#]' '{print $$1 = sprintf("%-30s", $$1), $$4}'

scripts/build-controller-image.sh

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ QUIET=${QUIET:-"false"}
1414

1515
export DOCKER_BUILDKIT=${DOCKER_BUILDKIT:-1}
1616

17-
source $SCRIPTS_DIR/lib/common.sh
17+
source "$SCRIPTS_DIR/lib/common.sh"
1818

1919
check_is_installed docker
2020

@@ -59,10 +59,10 @@ if [[ ! -d $SERVICE_CONTROLLER_SOURCE_PATH ]]; then
5959
exit 1
6060
fi
6161

62-
pushd $SERVICE_CONTROLLER_SOURCE_PATH 1>/dev/null
62+
pushd "$SERVICE_CONTROLLER_SOURCE_PATH" 1>/dev/null
6363

64-
SERVICE_CONTROLLER_GIT_VERSION=`git describe --tags --always --dirty || echo "unknown"`
65-
SERVICE_CONTROLLER_GIT_COMMIT=`git rev-parse HEAD`
64+
SERVICE_CONTROLLER_GIT_VERSION=$(git describe --tags --always --dirty || echo "unknown")
65+
SERVICE_CONTROLLER_GIT_COMMIT=$(git rev-parse HEAD)
6666

6767
popd 1>/dev/null
6868

@@ -86,16 +86,14 @@ if [[ "$LOCAL_MODULES" = "true" ]]; then
8686
DOCKERFILE="${ROOT_DIR}"/Dockerfile.local
8787
fi
8888

89-
docker build \
90-
--quiet=${QUIET} \
89+
if ! docker build \
90+
--quiet="${QUIET}" \
9191
-t "${AWS_SERVICE_DOCKER_IMG}" \
9292
-f "${DOCKERFILE}" \
93-
--build-arg service_alias=${AWS_SERVICE} \
93+
--build-arg service_alias="${AWS_SERVICE}" \
9494
--build-arg service_controller_git_version="$SERVICE_CONTROLLER_GIT_VERSION" \
9595
--build-arg service_controller_git_commit="$SERVICE_CONTROLLER_GIT_COMMIT" \
9696
--build-arg build_date="$BUILD_DATE" \
97-
"${DOCKER_BUILD_CONTEXT}"
98-
99-
if [ $? -ne 0 ]; then
97+
"${DOCKER_BUILD_CONTEXT}"; then
10098
exit 2
10199
fi

scripts/build-controller-release.sh

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ set -eo pipefail
77

88
SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
99
ROOT_DIR="$SCRIPTS_DIR/.."
10-
BIN_DIR="$ROOT_DIR/bin"
1110
ACK_GENERATE_OLM=${ACK_GENERATE_OLM:-"false"}
1211

1312
source "$SCRIPTS_DIR/lib/common.sh"
@@ -20,13 +19,13 @@ if [[ $ACK_GENERATE_OLM == "true" ]]; then
2019
fi
2120

2221
if ! k8s_controller_gen_version_equals "$CONTROLLER_TOOLS_VERSION"; then
23-
echo "FATAL: Existing version of controller-gen "`controller-gen --version`", required version is $CONTROLLER_TOOLS_VERSION."
22+
echo "FATAL: Existing version of controller-gen \"$(controller-gen --version)\", required version is $CONTROLLER_TOOLS_VERSION."
2423
echo "FATAL: Please uninstall controller-gen and install the required version with scripts/install-controller-gen.sh."
2524
exit 1
2625
fi
2726

2827
if ! helm_version_equals_or_greater "$HELM_VERSION"; then
29-
echo "FATAL: Existing version of helm "`helm version --template='Version: {{.Version}}'`", required version is $HELM_VERSION."
28+
echo "FATAL: Existing version of helm \"$(helm version --template='Version: {{.Version}}')\", required version is $HELM_VERSION."
3029
echo "FATAL: Please update helm, or uninstall helm and install the required version with scripts/install-helm.sh."
3130
exit 1
3231
fi
@@ -103,7 +102,7 @@ if [ $# -ne 1 ]; then
103102
exit 1
104103
fi
105104

106-
if [ ! -f $ACK_GENERATE_BIN_PATH ]; then
105+
if [ ! -f "$ACK_GENERATE_BIN_PATH" ]; then
107106
if is_installed "ack-generate"; then
108107
ACK_GENERATE_BIN_PATH=$(which "ack-generate")
109108
else
@@ -153,11 +152,11 @@ fi
153152
# default non-release value also helps AWS service teams to develop the
154153
# controller without worrying about the version until actual controller
155154
# release.
156-
pushd $SERVICE_CONTROLLER_SOURCE_PATH 1>/dev/null
157-
RELEASE_VERSION=${RELEASE_VERSION:-`git describe --tags --abbrev=0 2>/dev/null || echo $NON_RELEASE_VERSION`}
155+
pushd "$SERVICE_CONTROLLER_SOURCE_PATH" 1>/dev/null
156+
RELEASE_VERSION=${RELEASE_VERSION:-$(git describe --tags --abbrev=0 2>/dev/null || echo $NON_RELEASE_VERSION)}
158157
popd 1>/dev/null
159158

160-
if [[ $RELEASE_VERSION != $NON_RELEASE_VERSION ]]; then
159+
if [[ $RELEASE_VERSION != "$NON_RELEASE_VERSION" ]]; then
161160
# validate that release version is in the format vx.y.z , where x,y,z are
162161
# positive real numbers
163162
if ! (echo "$RELEASE_VERSION" | grep -Eq "^v[0-9]+\.[0-9]+\.[0-9]+$"); then
@@ -167,7 +166,7 @@ if [[ $RELEASE_VERSION != $NON_RELEASE_VERSION ]]; then
167166
fi
168167

169168
if [ -z "$AWS_SDK_GO_VERSION" ]; then
170-
AWS_SDK_GO_VERSION=$(go list -m -f '{{ .Version }}' -modfile $SERVICE_CONTROLLER_SOURCE_PATH/go.mod github.com/aws/aws-sdk-go)
169+
AWS_SDK_GO_VERSION=$(go list -m -f '{{ .Version }}' -modfile "$SERVICE_CONTROLLER_SOURCE_PATH/go.mod" github.com/aws/aws-sdk-go)
171170
fi
172171

173172
# If there's a generator.yaml in the service's directory and the caller hasn't
@@ -187,60 +186,60 @@ if [ -z "$ACK_METADATA_CONFIG_PATH" ]; then
187186
fi
188187

189188
helm_output_dir="$SERVICE_CONTROLLER_SOURCE_PATH/helm"
190-
ag_args="$SERVICE $RELEASE_VERSION -o $SERVICE_CONTROLLER_SOURCE_PATH --template-dirs $TEMPLATES_DIR --aws-sdk-go-version $AWS_SDK_GO_VERSION"
189+
ag_args=("$SERVICE" "$RELEASE_VERSION" -o "$SERVICE_CONTROLLER_SOURCE_PATH" --template-dirs "$TEMPLATES_DIR" --aws-sdk-go-version "$AWS_SDK_GO_VERSION")
191190
if [ -n "$ACK_GENERATE_CACHE_DIR" ]; then
192-
ag_args="$ag_args --cache-dir $ACK_GENERATE_CACHE_DIR"
191+
ag_args=("${ag_args[@]}" --cache-dir "$ACK_GENERATE_CACHE_DIR")
193192
fi
194193
if [ -n "$ACK_GENERATE_OUTPUT_PATH" ]; then
195-
ag_args="$ag_args --output $ACK_GENERATE_OUTPUT_PATH"
194+
ag_args=("${ag_args[@]}" --output "$ACK_GENERATE_OUTPUT_PATH")
196195
helm_output_dir="$ACK_GENERATE_OUTPUT_PATH/helm"
197196
fi
198197
if [ -n "$ACK_GENERATE_CONFIG_PATH" ]; then
199-
ag_args="$ag_args --generator-config-path $ACK_GENERATE_CONFIG_PATH"
198+
ag_args=("${ag_args[@]}" --generator-config-path "$ACK_GENERATE_CONFIG_PATH")
200199
fi
201200
if [ -n "$ACK_METADATA_CONFIG_PATH" ]; then
202-
ag_args="$ag_args --metadata-config-path $ACK_METADATA_CONFIG_PATH"
201+
ag_args=("${ag_args[@]}" --metadata-config-path "$ACK_METADATA_CONFIG_PATH")
203202
fi
204203
if [ -n "$ACK_GENERATE_IMAGE_REPOSITORY" ]; then
205-
ag_args="$ag_args --image-repository $ACK_GENERATE_IMAGE_REPOSITORY"
204+
ag_args=("${ag_args[@]}" --image-repository "$ACK_GENERATE_IMAGE_REPOSITORY")
206205
fi
207206
if [ -n "$ACK_GENERATE_SERVICE_ACCOUNT_NAME" ]; then
208-
ag_args="$ag_args --service-account-name $ACK_GENERATE_SERVICE_ACCOUNT_NAME"
207+
ag_args=("${ag_args[@]}" --service-account-name "$ACK_GENERATE_SERVICE_ACCOUNT_NAME")
209208
fi
210209

211210
echo "Building release artifacts for $SERVICE-$RELEASE_VERSION"
212-
$ACK_GENERATE_BIN_PATH release $ag_args
211+
$ACK_GENERATE_BIN_PATH release "${ag_args[@]}"
213212

214-
pushd $RUNTIME_DIR/apis/core/$RUNTIME_API_VERSION 1>/dev/null
213+
pushd "$RUNTIME_DIR/apis/core/$RUNTIME_API_VERSION" 1>/dev/null
215214

216215
echo "Generating common custom resource definitions"
217-
controller-gen crd:allowDangerousTypes=true paths=./... output:crd:artifacts:config=$helm_output_dir/crds
216+
controller-gen crd:allowDangerousTypes=true paths=./... output:crd:artifacts:config="$helm_output_dir/crds"
218217

219218
popd 1>/dev/null
220219

221-
pushd $SERVICE_CONTROLLER_SOURCE_PATH/apis/$ACK_GENERATE_API_VERSION 1>/dev/null
220+
pushd "$SERVICE_CONTROLLER_SOURCE_PATH/apis/$ACK_GENERATE_API_VERSION" 1>/dev/null
222221

223222
echo "Generating custom resource definitions for $SERVICE"
224-
controller-gen crd:allowDangerousTypes=true paths=./... output:crd:artifacts:config=$helm_output_dir/crds
223+
controller-gen crd:allowDangerousTypes=true paths=./... output:crd:artifacts:config="$helm_output_dir/crds"
225224

226225
popd 1>/dev/null
227226

228-
pushd $SERVICE_CONTROLLER_SOURCE_PATH/pkg/resource 1>/dev/null
227+
pushd "$SERVICE_CONTROLLER_SOURCE_PATH/pkg/resource" 1>/dev/null
229228

230229
echo "Generating RBAC manifests for $SERVICE"
231-
controller-gen rbac:roleName=$K8S_RBAC_ROLE_NAME paths=./... output:rbac:artifacts:config=$helm_output_dir/templates
230+
controller-gen rbac:roleName="$K8S_RBAC_ROLE_NAME" paths=./... output:rbac:artifacts:config="$helm_output_dir/templates"
232231
# controller-gen rbac outputs a ClusterRole definition in a
233232
# $config_output_dir/rbac/role.yaml file. We additionally add the ability by
234233
# for the user to specify if they want the role to be ClusterRole or Role by specifying installation scope
235234
# in the helm values.yaml. We do this by having a custom helm template named _controller-role-kind-patch.yaml
236235
# which utilizes the template langauge and adding the auto generated rules to that template.
237-
tail -n +7 $helm_output_dir/templates/role.yaml >> $helm_output_dir/templates/_controller-role-kind-patch.yaml
236+
tail -n +7 "$helm_output_dir/templates/role.yaml" >> "$helm_output_dir/templates/_controller-role-kind-patch.yaml"
238237

239238
# We have some other standard Role files for a reader and writer role, so here we rename
240239
# the `_controller-role-kind-patch.yaml ` file to `cluster-role-controller.yaml`
241240
# to better reflect what is in that file.
242-
mv $helm_output_dir/templates/_controller-role-kind-patch.yaml $helm_output_dir/templates/cluster-role-controller.yaml
243-
rm $helm_output_dir/templates/role.yaml
241+
mv "$helm_output_dir/templates/_controller-role-kind-patch.yaml" "$helm_output_dir/templates/cluster-role-controller.yaml"
242+
rm "$helm_output_dir/templates/role.yaml"
244243

245244
popd 1>/dev/null
246245

@@ -250,19 +249,18 @@ if [[ $ACK_GENERATE_OLM == "true" ]]; then
250249
DEFAULT_ACK_GENERATE_OLMCONFIG_PATH="$SERVICE_CONTROLLER_SOURCE_PATH/olm/olmconfig.yaml"
251250
ACK_GENERATE_OLMCONFIG_PATH=${ACK_GENERATE_OLMCONFIG_PATH:-$DEFAULT_ACK_GENERATE_OLMCONFIG_PATH}
252251

253-
ag_olm_args="$SERVICE $RELEASE_VERSION -o $SERVICE_CONTROLLER_SOURCE_PATH --template-dirs $TEMPLATES_DIR --olm-config $ACK_GENERATE_OLMCONFIG_PATH --aws-sdk-go-version $AWS_SDK_GO_VERSION"
252+
ag_olm_args=("$SERVICE" "$RELEASE_VERSION" -o "$SERVICE_CONTROLLER_SOURCE_PATH" --template-dirs "$TEMPLATES_DIR" --olm-config "$ACK_GENERATE_OLMCONFIG_PATH" --aws-sdk-go-version "$AWS_SDK_GO_VERSION")
254253

255254
if [ -n "$ACK_GENERATE_CONFIG_PATH" ]; then
256-
ag_olm_args="$ag_olm_args --generator-config-path $ACK_GENERATE_CONFIG_PATH"
255+
ag_olm_args=("${ag_olm_args[@]}" --generator-config-path "$ACK_GENERATE_CONFIG_PATH")
257256
fi
258257
if [ -n "$ACK_GENERATE_IMAGE_REPOSITORY" ]; then
259-
ag_olm_args="$ag_olm_args --image-repository $ACK_GENERATE_IMAGE_REPOSITORY"
258+
ag_olm_args=("${ag_olm_args[@]}" --image-repository "$ACK_GENERATE_IMAGE_REPOSITORY")
260259
fi
261260
if [ -n "$ACK_METADATA_CONFIG_PATH" ]; then
262-
ag_olm_args="$ag_olm_args --metadata-config-path $ACK_METADATA_CONFIG_PATH"
261+
ag_olm_args=("${ag_olm_args[@]}" --metadata-config-path "$ACK_METADATA_CONFIG_PATH")
263262
fi
264263

265-
$ACK_GENERATE_BIN_PATH olm $ag_olm_args
266-
$SCRIPTS_DIR/olm-create-bundle.sh "$SERVICE" "$RELEASE_VERSION"
267-
264+
$ACK_GENERATE_BIN_PATH olm "${ag_olm_args[@]}"
265+
"$SCRIPTS_DIR"/olm-create-bundle.sh "$SERVICE" "$RELEASE_VERSION"
268266
fi

scripts/build-controller.sh

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ set -eo pipefail
66

77
SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
88
ROOT_DIR="$SCRIPTS_DIR/.."
9-
BIN_DIR="$ROOT_DIR/bin"
109

1110
source "$SCRIPTS_DIR/lib/common.sh"
1211

1312
check_is_installed controller-gen "You can install controller-gen with the helper scripts/install-controller-gen.sh"
1413

1514
if ! k8s_controller_gen_version_equals "$CONTROLLER_TOOLS_VERSION"; then
16-
echo "FATAL: Existing version of controller-gen "`controller-gen --version`", required version is $CONTROLLER_TOOLS_VERSION."
15+
echo "FATAL: Existing version of controller-gen \"$(controller-gen --version)\", required version is $CONTROLLER_TOOLS_VERSION."
1716
echo "FATAL: Please uninstall controller-gen and install the required version with scripts/install-controller-gen.sh."
1817
exit 1
1918
fi
@@ -63,8 +62,9 @@ Environment variables:
6362
AWS_SDK_GO_VERSION: Overrides the version of github.com/aws/aws-sdk-go used
6463
by 'ack-generate' to fetch the service API Specifications.
6564
Default: Version of aws/aws-sdk-go in service go.mod
66-
TEMPLATES_DIR: Overrides the directory containg ack-generate templates
67-
Default: $TEMPLATES_DIR
65+
TEMPLATE_DIRS: Overrides the list of directories containg ack-generate
66+
templates.
67+
Default: $TEMPLATE_DIRS
6868
K8S_RBAC_ROLE_NAME: Name of the Kubernetes Role to use when generating
6969
the RBAC manifests for the custom resource
7070
definitions.
@@ -77,7 +77,7 @@ if [ $# -ne 1 ]; then
7777
exit 1
7878
fi
7979

80-
if [ ! -f $ACK_GENERATE_BIN_PATH ]; then
80+
if [ ! -f "$ACK_GENERATE_BIN_PATH" ]; then
8181
if is_installed "ack-generate"; then
8282
ACK_GENERATE_BIN_PATH=$(which "ack-generate")
8383
else
@@ -130,11 +130,11 @@ TEMPLATE_DIRS=${TEMPLATE_DIRS:-$DEFAULT_TEMPLATE_DIRS}
130130
config_output_dir="$SERVICE_CONTROLLER_SOURCE_PATH/config/"
131131

132132
echo "Copying common custom resource definitions into $SERVICE"
133-
mkdir -p $config_output_dir/crd/common
134-
cp -r $RUNTIME_CRD_DIR/crd/* $config_output_dir/crd/common/
133+
mkdir -p "$config_output_dir/crd/common"
134+
cp -r "$RUNTIME_CRD_DIR"/crd/* "$config_output_dir/crd/common/"
135135

136136
if [ -z "$AWS_SDK_GO_VERSION" ]; then
137-
AWS_SDK_GO_VERSION=$(go list -m -f '{{ .Version }}' -modfile $SERVICE_CONTROLLER_SOURCE_PATH/go.mod github.com/aws/aws-sdk-go)
137+
AWS_SDK_GO_VERSION=$(go list -m -f '{{ .Version }}' -modfile "$SERVICE_CONTROLLER_SOURCE_PATH/go.mod" github.com/aws/aws-sdk-go)
138138
fi
139139

140140
# If there's a generator.yaml in the service's directory and the caller hasn't
@@ -153,75 +153,73 @@ if [ -z "$ACK_METADATA_CONFIG_PATH" ]; then
153153
fi
154154
fi
155155

156-
ag_args="$SERVICE -o $SERVICE_CONTROLLER_SOURCE_PATH --template-dirs $TEMPLATE_DIRS"
156+
ag_args=("$SERVICE" -o "$SERVICE_CONTROLLER_SOURCE_PATH" --template-dirs "$TEMPLATE_DIRS")
157157
if [ -n "$ACK_GENERATE_CACHE_DIR" ]; then
158-
ag_args="$ag_args --cache-dir $ACK_GENERATE_CACHE_DIR"
158+
ag_args=("${ag_args[@]}" --cache-dir "$ACK_GENERATE_CACHE_DIR")
159159
fi
160160

161-
apis_args="apis $ag_args"
161+
apis_args=(apis "${ag_args[@]}")
162162
if [ -n "$ACK_GENERATE_API_VERSION" ]; then
163-
apis_args="$apis_args --version $ACK_GENERATE_API_VERSION"
163+
apis_args=("${apis_args[@]}" --version "$ACK_GENERATE_API_VERSION")
164164
fi
165165

166166
if [ -n "$ACK_GENERATE_CONFIG_PATH" ]; then
167-
ag_args="$ag_args --generator-config-path $ACK_GENERATE_CONFIG_PATH"
168-
apis_args="$apis_args --generator-config-path $ACK_GENERATE_CONFIG_PATH"
167+
ag_args=("${ag_args[@]}" --generator-config-path "$ACK_GENERATE_CONFIG_PATH")
168+
apis_args=("${apis_args[@]}" --generator-config-path "$ACK_GENERATE_CONFIG_PATH")
169169
fi
170170

171171
if [ -n "$ACK_METADATA_CONFIG_PATH" ]; then
172-
ag_args="$ag_args --metadata-config-path $ACK_METADATA_CONFIG_PATH"
173-
apis_args="$apis_args --metadata-config-path $ACK_METADATA_CONFIG_PATH"
172+
ag_args=("${ag_args[@]}" --metadata-config-path "$ACK_METADATA_CONFIG_PATH")
173+
apis_args=("${apis_args[@]}" --metadata-config-path "$ACK_METADATA_CONFIG_PATH")
174174
fi
175175

176176
if [ -n "$AWS_SDK_GO_VERSION" ]; then
177-
ag_args="$ag_args --aws-sdk-go-version $AWS_SDK_GO_VERSION"
178-
apis_args="$apis_args --aws-sdk-go-version $AWS_SDK_GO_VERSION"
177+
ag_args=("${ag_args[@]}" --aws-sdk-go-version "$AWS_SDK_GO_VERSION")
178+
apis_args=("${apis_args[@]}" --aws-sdk-go-version "$AWS_SDK_GO_VERSION")
179179
fi
180180

181181
if [ -n "$ACK_GENERATE_SERVICE_ACCOUNT_NAME" ]; then
182-
ag_args="$ag_args --service-account-name $ACK_GENERATE_SERVICE_ACCOUNT_NAME"
182+
ag_args=("${ag_args[@]}" --service-account-name "$ACK_GENERATE_SERVICE_ACCOUNT_NAME")
183183
fi
184184

185185
echo "Building Kubernetes API objects for $SERVICE"
186-
$ACK_GENERATE_BIN_PATH $apis_args
187-
if [ $? -ne 0 ]; then
186+
if ! $ACK_GENERATE_BIN_PATH "${apis_args[@]}"; then
188187
exit 2
189188
fi
190189

191-
pushd $SERVICE_CONTROLLER_SOURCE_PATH/apis/$ACK_GENERATE_API_VERSION 1>/dev/null
190+
pushd "$SERVICE_CONTROLLER_SOURCE_PATH/apis/$ACK_GENERATE_API_VERSION" 1>/dev/null
192191

193192
echo "Generating deepcopy code for $SERVICE"
194-
controller-gen object:headerFile=$BOILERPLATE_TXT_PATH paths=./...
193+
controller-gen object:headerFile="$BOILERPLATE_TXT_PATH" paths=./...
195194

196195
echo "Generating custom resource definitions for $SERVICE"
197196
# Latest version of controller-gen (master) is required for following two reasons
198197
# a) support for pointer values in map https://github.com/kubernetes-sigs/controller-tools/pull/317
199198
# b) support for float type (allowDangerousTypes) https://github.com/kubernetes-sigs/controller-tools/pull/449
200-
controller-gen crd:allowDangerousTypes=true paths=./... output:crd:artifacts:config=$config_output_dir/crd/bases
199+
controller-gen crd:allowDangerousTypes=true paths=./... output:crd:artifacts:config="$config_output_dir/crd/bases"
201200

202201
popd 1>/dev/null
203202

204203
echo "Building service controller for $SERVICE"
205-
controller_args="controller $ag_args"
206-
$ACK_GENERATE_BIN_PATH $controller_args
207-
if [ $? -ne 0 ]; then
204+
controller_args=(controller "${ag_args[@]}")
205+
if ! $ACK_GENERATE_BIN_PATH "${controller_args[@]}"; then
208206
exit 2
209207
fi
210208

211-
pushd $SERVICE_CONTROLLER_SOURCE_PATH/pkg/resource 1>/dev/null
209+
pushd "$SERVICE_CONTROLLER_SOURCE_PATH/pkg/resource" 1>/dev/null
212210

213211
echo "Generating RBAC manifests for $SERVICE"
214-
controller-gen rbac:roleName=$K8S_RBAC_ROLE_NAME paths=./... output:rbac:artifacts:config=$config_output_dir/rbac
212+
controller-gen rbac:roleName="$K8S_RBAC_ROLE_NAME" paths=./... output:rbac:artifacts:config="$config_output_dir/rbac"
215213
# controller-gen rbac outputs a ClusterRole definition in a
216214
# $config_output_dir/rbac/role.yaml file. We have some other standard Role
217215
# files for a reader and writer role, so here we rename the `role.yaml` file to
218216
# `cluster-role-controller.yaml` to better reflect what is in that file.
219-
mv $config_output_dir/rbac/role.yaml $config_output_dir/rbac/cluster-role-controller.yaml
217+
mv "$config_output_dir/rbac/role.yaml" "$config_output_dir/rbac/cluster-role-controller.yaml"
220218
# Copy definitions for json patches which allow the user to patch the controller
221219
# with Role/Rolebinding and be purely namespaced scoped instead of using Cluster/ClusterRoleBinding
222220
# using kustomize
223-
mkdir -p $config_output_dir/overlays/namespaced
224-
cp -r $ROOT_DIR/templates/config/overlays/namespaced/*.json $config_output_dir/overlays/namespaced
221+
mkdir -p "$config_output_dir/overlays/namespaced"
222+
cp -r "$ROOT_DIR"/templates/config/overlays/namespaced/*.json "$config_output_dir/overlays/namespaced"
225223

226224
popd 1>/dev/null
227225

0 commit comments

Comments
 (0)