Fix directory logic in prepare_deployment.sh

Change-Id: I2c9e384b5552ea94f275f38c6a4b1be59c6aa9c2
Reviewed-on: https://fuchsia-review.googlesource.com/c/fidlbolt/+/586481
Reviewed-by: Yifei Teng <yifeit@google.com>
diff --git a/prepare_deployment.sh b/prepare_deployment.sh
index c3bfca0..567c6cf 100755
--- a/prepare_deployment.sh
+++ b/prepare_deployment.sh
@@ -2,6 +2,10 @@
 
 set -eufo pipefail
 
+# Save absolute script directory before cd'ing anywhere else, as $(dirname "$0")
+# could be relative to the working directory.
+readonly script_dir=$(cd "$(dirname "$0")" && pwd)
+
 usage() {
     cat <<EOS
 Usage: $0 [-h]
@@ -105,7 +109,7 @@
 [[ "$build_status" -ne 0 ]] && exit "$build_status"
 
 step "Cleaning ./deployment"
-cd "$(dirname "$0")"
+cd "$script_dir"
 rm -rf deployment/
 mkdir -p deployment/{bin,etc,fuchsia/{sdk/fidl,zircon}}