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