#!/usr/bin/env python

# Copyright 2022 Google LLC
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import subprocess
import sys

EMSDK_ROOT = os.path.join('third_party', 'externals', 'emsdk')

EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py')

EMSDK_VERSION = '3.1.9'

def main():
    try:
        subprocess.check_call([sys.executable, EMSDK_PATH, 'install', EMSDK_VERSION])
    except subprocess.CalledProcessError:
        print ('Failed to install emsdk')
        return 1
    try:
        subprocess.check_call([sys.executable, EMSDK_PATH, 'activate', EMSDK_VERSION])
    except subprocess.CalledProcessError:
        print ('Failed to activate emsdk')
        return 1


if __name__ == '__main__':
  sys.exit(main())
