#! /usr/bin/env python

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

import os
import shutil
import sys

if __name__ == '__main__':
    skia = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir)
    dst = os.path.join(skia, 'platform_tools', 'android', 'apps', 'skqp',
                       'src', 'main', 'assets', 'resources')
    if os.path.isdir(dst) and not os.path.islink(dst):
        shutil.rmtree(dst)
    elif os.path.exists(dst):
        os.remove(dst)
    shutil.copytree(os.path.join(skia, 'resources'), dst)

