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