xref: /aosp_15_r20/external/angle/build/get_symlink_targets.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2019 The Chromium Authors
3*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker"""Prints the target paths of the given symlinks.
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard WorkerPrints out each target in the order that the links were passed in.
8*8975f5c5SAndroid Build Coastguard Worker"""
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Workerimport os
11*8975f5c5SAndroid Build Coastguard Workerimport sys
12*8975f5c5SAndroid Build Coastguard Worker
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard Workerdef main():
15*8975f5c5SAndroid Build Coastguard Worker  for link_name in sys.argv[1:]:
16*8975f5c5SAndroid Build Coastguard Worker    if not os.path.islink(link_name):
17*8975f5c5SAndroid Build Coastguard Worker      sys.stderr.write("%s is not a link" % link_name)
18*8975f5c5SAndroid Build Coastguard Worker      return 1
19*8975f5c5SAndroid Build Coastguard Worker    target = os.readlink(link_name)
20*8975f5c5SAndroid Build Coastguard Worker    if not os.path.isabs(target):
21*8975f5c5SAndroid Build Coastguard Worker      target = os.path.join(os.path.dirname(link_name), target)
22*8975f5c5SAndroid Build Coastguard Worker    print(os.path.realpath(target))
23*8975f5c5SAndroid Build Coastguard Worker  return 0
24*8975f5c5SAndroid Build Coastguard Worker
25*8975f5c5SAndroid Build Coastguard Worker
26*8975f5c5SAndroid Build Coastguard Workerif __name__ == '__main__':
27*8975f5c5SAndroid Build Coastguard Worker  sys.exit(main())
28