def main()

in scripts/packergen.py [0:0]


def main():
  parser = argparse.ArgumentParser()
  parser.add_argument('input', help='Input JSON')
  args = parser.parse_args()

  with open(args.input, 'r') as f:
    data = json.load(f)

  builder = {
      'type': 'googlecompute',
      'machine_type': 'e2-standard-2',
      'account_file': '{{ user `keyfile` }}',
      'service_account_email': '{{ user `service_account_email` }}',
      'project_id': '{{ user `project` }}',
      'zone': '{{ user `zone` }}',
      'ssh_username': '{{ user `ssh_username` }}',
      'image_name': '{{ user `imagename` }}',
      'use_internal_ip': '{{ user `use_internal_ip` }}',
      'instance_name': 'imagebuilder-{{uuid}}',
      'metadata': {
          'block-project-ssh-keys': 'true',
          'shutdown-script': SHUTDOWN_SCRIPT,
          'shutdown-script-log-name': '{{ user `shutdown_log_name` }}',
          'shutdown-script-log-bucket': '{{ user `log_bucket` }}',
      },
      'tags': ['imagebuilder-workers']
  }

  # Overrides the allowed attributes
  builder.update(
    {key: data.get(key) for key in PACKER_OVERRIDABLE_CONFIG if key in data}
  )

  content = {
      'variables': {
          'chefdir': None,
          'project': None,
          'zone': None,
          'imagename': None,
          'use_internal_ip': 'true',
          'shutdown_log_name': 'shutdown-log-{{ uuid }}.txt',
          'log_bucket': None,
          'ssh_username': None,
      },
      'builders': [builder],
      'provisioners': [
          {
              'type': 'chef-solo',
              'install_command': INSTALL_CHEF_SOLO,
              'cookbook_paths': ['{{ user `chefdir` }}/cookbooks/'],
              'run_list': data['chef']['run_list'],
              'chef_license': 'accept'
          },
          _purge_chef(),
          _sudo_shell(STOP_SERVICES_SCRIPT),
          _sudo_shell('apt-get clean')
      ],
      'post-processors': [
          _verify_shutdown_script()
      ],
  }
  print(json.dumps(content, sort_keys=True, indent=2))

  return 0