blob: 748a52a19963e8309ae54643255508e55dae2a0a [file] [log] [blame]
#!/usr/bin/env bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#### CATEGORY=Other
### register Zircon tools at MacOS Application Firewall
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read
FIREWALL_CMD="/usr/libexec/ApplicationFirewall/socketfilterfw"
function list_tools() {
TOOL_LIST="$(${FIREWALL_CMD} --listapps | grep "${FUCHSIA_DIR}" | awk '{print $3}')"
for f in "${TOOL_LIST[@]}"; do
echo "${f}"
done
}
function clear_tools() {
TOOL_LIST="$(${FIREWALL_CMD} --listapps | grep "${FUCHSIA_DIR}" | awk '{print $3}')"
for f in ${TOOL_LIST}; do
sudo ${FIREWALL_CMD} --remove "${f}" &> /dev/null
done
}
function allow_tools() {
for f in ${ZIRCON_TOOLS_DIR}/*; do
sudo ${FIREWALL_CMD} --add "$f" --unblockapp "$f" &> /dev/null
done
for f in ${FUCHSIA_BUILD_DIR}/host-tools/*; do
sudo ${FIREWALL_CMD} --add "$f" --unblockapp "$f" &> /dev/null
done
}
function main() {
echo " clearing firewall rules.."
clear_tools
echo " adding firewall rules.."
allow_tools
# Activate the changes
sudo ${FIREWALL_CMD} --setglobalstate off &> /dev/null
sudo ${FIREWALL_CMD} --setglobalstate on &> /dev/null
echo "..done"
echo " following tools are registered in the firewall rules:"
echo " "
list_tools
echo " "
}
main