1cb93a386Sopenharmony_ci#!/usr/bin/env python
2cb93a386Sopenharmony_ci#
3cb93a386Sopenharmony_ci# Copyright 2017 Google Inc.
4cb93a386Sopenharmony_ci#
5cb93a386Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
6cb93a386Sopenharmony_ci# found in the LICENSE file.
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_ci"""Create the asset."""
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_ciimport argparse
13cb93a386Sopenharmony_ciimport os
14cb93a386Sopenharmony_ciimport subprocess
15cb93a386Sopenharmony_ci
16cb93a386Sopenharmony_ci
17cb93a386Sopenharmony_ciNODE_URL = "https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz"
18cb93a386Sopenharmony_ciNODE_EXTRACT_NAME = "node-v12.16.3-linux-x64"
19cb93a386Sopenharmony_ci
20cb93a386Sopenharmony_ci
21cb93a386Sopenharmony_cidef create_asset(target_dir):
22cb93a386Sopenharmony_ci  """Create the asset."""
23cb93a386Sopenharmony_ci  p1 = subprocess.Popen(["curl", NODE_URL], stdout=subprocess.PIPE)
24cb93a386Sopenharmony_ci  p2 = subprocess.Popen(["tar", "-C", target_dir, "-xJf" "-"], stdin=p1.stdout)
25cb93a386Sopenharmony_ci  p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
26cb93a386Sopenharmony_ci  _,_ = p2.communicate()
27cb93a386Sopenharmony_ci  os.rename(
28cb93a386Sopenharmony_ci    os.path.join(target_dir, NODE_EXTRACT_NAME),
29cb93a386Sopenharmony_ci    os.path.join(target_dir, "node")
30cb93a386Sopenharmony_ci  )
31cb93a386Sopenharmony_ci
32cb93a386Sopenharmony_ci
33cb93a386Sopenharmony_cidef main():
34cb93a386Sopenharmony_ci  parser = argparse.ArgumentParser()
35cb93a386Sopenharmony_ci  parser.add_argument('--target_dir', '-t', required=True)
36cb93a386Sopenharmony_ci  args = parser.parse_args()
37cb93a386Sopenharmony_ci  create_asset(args.target_dir)
38cb93a386Sopenharmony_ci
39cb93a386Sopenharmony_ci
40cb93a386Sopenharmony_ciif __name__ == '__main__':
41cb93a386Sopenharmony_ci  main()
42