adium/adium
Clone
Summary
Browse
Changes
Graph
Update version number in Info.plist. Add a ticket number to Changes.txt.
adium-1.5.10.3
2017-03-24, Robert Vehse
6194bf1c1f66
Update version number in Info.plist. Add a ticket number to Changes.txt.
#!/usr/bin/env python
import
os
import
re
import
sys
class
OtoolParser
:
def
__init__
(
self
,
otool_output
):
self
.
data
=
otool_output
.
split
(
'
\n
'
)
self
.
_library_path
=
self
.
data
[
0
][
0
:
-
1
]
self
.
_library_name
=
self
.
_library_path
.
split
(
'/'
)[
-
1
]
useless_data
=
re
.
compile
(
r
' \(.*\)'
)
libs
=
[
useless_data
.
sub
(
''
,
x
.
lstrip
())
for
x
in
self
.
data
[
2
:
-
1
]
if
x
.
count
(
'framework'
)
==
0
]
self
.
base_libs
=
[
x
for
x
in
libs
if
x
.
startswith
(
'/usr/'
)
and
x
.
endswith
(
'dylib'
)]
self
.
third_libs
=
[
x
for
x
in
libs
if
x
not
in
self
.
base_libs
and
x
.
endswith
(
'dylib'
)]
def
built_in_shlib_deps
(
self
):
return
self
.
base_libs
def
library_path
(
self
):
return
self
.
_library_path
def
library_name
(
self
):
return
self
.
_library_name
#def built_in_framework_deps(self):
# return None
def
third_party_shlib_deps
(
self
):
return
self
.
third_libs
#def third_party_framework_deps(self):
# return None
def
otool_library
(
path
,
arch
=
None
):
command_str
=
'otool -L '
if
arch
:
command_str
+=
'-arch '
+
arch
+
' '
command_str
+=
path
otool_file
=
os
.
popen
(
command_str
)
otool_data
=
otool_file
.
read
()
parser
=
OtoolParser
(
otool_data
)
return
parser
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
!=
2
:
print
'Usage:'
,
sys
.
argv
[
0
],
'/path/to/library.dylib'
sys
.
exit
(
1
)
parser
=
otool_library
(
sys
.
argv
[
1
])
print
'Library name:'
,
parser
.
library_name
()
print
'Library path:'
,
parser
.
library_path
()
print
'Non-base shlib dependencies:'
for
lib
in
parser
.
third_party_shlib_deps
():
print
' '
+
lib