summaryrefslogtreecommitdiffstats
path: root/security/nss/coreconf/shlibsign.py
blob: dc40a8c89b6b2d192e9c764040d497e208249dc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python2
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import os
import subprocess
import sys

def main():
    for lib_file in sys.argv[1:]:
        if os.path.isfile(lib_file):
            sign(lib_file)

def sign(lib_file):
    ld_lib_path = os.path.realpath(os.path.join(lib_file, '..'))
    bin_path = os.path.realpath(os.path.join(ld_lib_path, '../bin'))

    env = os.environ.copy()
    if sys.platform == 'win32':
        env['PATH'] = os.pathsep.join((env['PATH'], ld_lib_path))
    else:
        env['LD_LIBRARY_PATH'] = env['DYLD_LIBRARY_PATH'] = ld_lib_path

    dev_null = open(os.devnull, 'wb')
    subprocess.check_call([os.path.join(bin_path, 'shlibsign'), '-v', '-i', lib_file], env=env, stdout=dev_null, stderr=dev_null)

if __name__ == '__main__':
    main()