run_policy.sh.template 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env bash
  2. # To generate script:
  3. # ~/.local/bin/gengetoptions embed run_policy.sh.template > run_policy.sh
  4. # @getoptions
  5. parser_definition() {
  6. setup REST help:usage -- "Usage: run_policy [options]... [arguments]" ''
  7. msg -- 'Options:'
  8. flag FLAG_D -d --debug init:=0 -- "displays debug information"
  9. flag DRY_RUN -n --dry-run init:=0 -- "run a dry run"
  10. param POLICY -p --policy base:"default" -- "Policy to run (default: 'base')"
  11. disp :usage -h --help
  12. }
  13. # @gengetoptions parser -i parser_definition parse
  14. #
  15. # INSERTED HERE
  16. #
  17. # @end
  18. parse "$@"
  19. eval "set -- ${REST}"
  20. set -e
  21. # Ref:
  22. # https://medium.com/@emachnic/using-policyfiles-with-chef-client-local-mode-4f47477b24db
  23. ./scripts/export_policy.sh ${POLICY}
  24. echo -e "\n\e[4m\e[33mRunning:\e[0m \e[33m\e[1mchef-client -z\e[39m\e[0m"
  25. pushd policy-export > /dev/null
  26. if [ ${DRY_RUN} -eq 1 ]; then
  27. OPT="--why-run"
  28. fi
  29. if [ ${FLAG_D} -eq 1 ]; then
  30. OPT="${OPT} --log_level debug"
  31. fi
  32. bundle exec chef-client --chef-license 'accept' -z ${OPT}
  33. bundle exec chef-client --chef-license 'accept' --config-option 'client_d_dir=../client.d' -z ${OPT}
  34. popd > /dev/null
  35. ./scripts/end_run.sh