# 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))
