#!/usr/bin/env python3
# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

import sys
import os


def main(args):
    for file_name in args[1:]:
        dir_name = os.path.dirname(file_name)
        if not os.path.exists(dir_name):
            os.mkdir(dir_name)
        open(file_name, 'w').close()


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