run_policy.sh.template 976 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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. # Ref:
  21. # https://medium.com/@emachnic/using-policyfiles-with-chef-client-local-mode-4f47477b24db
  22. ./scripts/export_policy.sh ${POLICY}
  23. pushd policy-export > /dev/null
  24. if [ ${DRY_RUN} -eq 1 ]; then
  25. OPT="--why-run"
  26. fi
  27. if [ ${FLAG_D} -eq 1 ]; then
  28. OPT="${OPT} --log_level debug"
  29. fi
  30. bundle exec chef-client --chef-license 'accept' -z ${OPT}
  31. popd > /dev/null
  32. ./scripts/end_run.sh