Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
binwalk
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fact-gitdep
binwalk
Commits
f1fe110e
Commit
f1fe110e
authored
Mar 14, 2017
by
Craig Heffner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merged sundhaug92's updates to setup.py
parent
639a7d44
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
80 additions
and
32 deletions
+80
-32
setup.py
setup.py
+80
-32
No files found.
setup.py
View file @
f1fe110e
...
...
@@ -2,7 +2,6 @@
import
os
import
sys
import
shutil
import
tempfile
import
subprocess
from
distutils.core
import
setup
,
Command
from
distutils.dir_util
import
remove_tree
...
...
@@ -17,14 +16,18 @@ except NameError:
raw_input
=
input
# cd into the src directory, no matter where setup.py was invoked from
#os.chdir(os.path.join(os.path.dirname(os.path.realpath(__file__)), "src"))
# os.chdir(os.path.join(os.path.dirname(os.path.realpath(__file__)), "src"))
def
which
(
command
):
# /usr/local/bin is usually the default install path, though it may not be in $PATH
usr_local_bin
=
os
.
path
.
sep
.
join
([
os
.
path
.
sep
,
'usr'
,
'local'
,
'bin'
,
command
])
usr_local_bin
=
os
.
path
.
sep
.
join
(
[
os
.
path
.
sep
,
'usr'
,
'local'
,
'bin'
,
command
])
try
:
location
=
subprocess
.
Popen
([
"which"
,
command
],
shell
=
False
,
stdout
=
subprocess
.
PIPE
)
.
communicate
()[
0
]
.
strip
()
location
=
subprocess
.
Popen
(
[
"which"
,
command
],
shell
=
False
,
stdout
=
subprocess
.
PIPE
)
.
communicate
()[
0
]
.
strip
()
except
KeyboardInterrupt
as
e
:
raise
e
except
Exception
as
e
:
...
...
@@ -35,6 +38,7 @@ def which(command):
return
location
def
find_binwalk_module_paths
():
paths
=
[]
...
...
@@ -48,6 +52,7 @@ def find_binwalk_module_paths():
return
paths
def
remove_binwalk_module
(
pydir
=
None
,
pybin
=
None
):
if
pydir
:
module_paths
=
[
pydir
]
...
...
@@ -57,7 +62,7 @@ def remove_binwalk_module(pydir=None, pybin=None):
for
path
in
module_paths
:
try
:
remove_tree
(
path
)
except
OSError
as
e
:
except
OSError
:
pass
if
not
pybin
:
...
...
@@ -67,11 +72,12 @@ def remove_binwalk_module(pydir=None, pybin=None):
try
:
sys
.
stdout
.
write
(
"removing '
%
s'
\n
"
%
pybin
)
os
.
remove
(
pybin
)
except
KeyboardInterrupt
as
e
:
except
KeyboardInterrupt
:
pass
except
Exception
as
e
:
except
Exception
:
pass
class
IDAUnInstallCommand
(
Command
):
description
=
"Uninstalls the binwalk IDA plugin module"
user_options
=
[
...
...
@@ -80,14 +86,16 @@ class IDAUnInstallCommand(Command):
def
initialize_options
(
self
):
self
.
idadir
=
None
self
.
mydir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
)),
"src"
)
self
.
mydir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
)),
"src"
)
def
finalize_options
(
self
):
pass
def
run
(
self
):
if
self
.
idadir
is
None
:
sys
.
stderr
.
write
(
"Please specify the path to your IDA install directory with the '--idadir' option!
\n
"
)
sys
.
stderr
.
write
(
"Please specify the path to your IDA install directory with the '--idadir' option!
\n
"
)
return
binida_dst_path
=
os
.
path
.
join
(
self
.
idadir
,
'plugins'
,
'binida.py'
)
...
...
@@ -100,6 +108,7 @@ class IDAUnInstallCommand(Command):
sys
.
stdout
.
write
(
"removing
%
s
\n
"
%
binwalk_dst_path
)
shutil
.
rmtree
(
binwalk_dst_path
)
class
IDAInstallCommand
(
Command
):
description
=
"Installs the binwalk IDA plugin module"
user_options
=
[
...
...
@@ -108,34 +117,44 @@ class IDAInstallCommand(Command):
def
initialize_options
(
self
):
self
.
idadir
=
None
self
.
mydir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
)),
"src"
)
self
.
mydir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
)),
"src"
)
def
finalize_options
(
self
):
pass
def
run
(
self
):
if
self
.
idadir
is
None
:
sys
.
stderr
.
write
(
"Please specify the path to your IDA install directory with the '--idadir' option!
\n
"
)
sys
.
stderr
.
write
(
"Please specify the path to your IDA install directory with the '--idadir' option!
\n
"
)
return
binida_src_path
=
os
.
path
.
join
(
self
.
mydir
,
'scripts'
,
'binida.py'
)
binida_dst_path
=
os
.
path
.
join
(
self
.
idadir
,
'plugins'
)
if
not
os
.
path
.
exists
(
binida_src_path
):
sys
.
stderr
.
write
(
"ERROR: could not locate IDA plugin file '
%
s'!
\n
"
%
binida_src_path
)
sys
.
stderr
.
write
(
"ERROR: could not locate IDA plugin file '
%
s'!
\n
"
%
binida_src_path
)
return
if
not
os
.
path
.
exists
(
binida_dst_path
):
sys
.
stderr
.
write
(
"ERROR: could not locate the IDA plugins directory '
%
s'! Check your --idadir option.
\n
"
%
binida_dst_path
)
sys
.
stderr
.
write
(
"ERROR: could not locate the IDA plugins directory '
%
s'! Check your --idadir option.
\n
"
%
binida_dst_path
)
return
binwalk_src_path
=
os
.
path
.
join
(
self
.
mydir
,
'binwalk'
)
binwalk_dst_path
=
os
.
path
.
join
(
self
.
idadir
,
'python'
)
if
not
os
.
path
.
exists
(
binwalk_src_path
):
sys
.
stderr
.
write
(
"ERROR: could not locate binwalk source directory '
%
s'!
\n
"
%
binwalk_src_path
)
sys
.
stderr
.
write
(
"ERROR: could not locate binwalk source directory '
%
s'!
\n
"
%
binwalk_src_path
)
return
if
not
os
.
path
.
exists
(
binwalk_dst_path
):
sys
.
stderr
.
write
(
"ERROR: could not locate the IDA python directory '
%
s'! Check your --idadir option.
\n
"
%
binwalk_dst_path
)
sys
.
stderr
.
write
(
"ERROR: could not locate the IDA python directory '
%
s'! Check your --idadir option.
\n
"
%
binwalk_dst_path
)
return
binida_dst_path
=
os
.
path
.
join
(
binida_dst_path
,
'binida.py'
)
...
...
@@ -146,12 +165,15 @@ class IDAInstallCommand(Command):
if
os
.
path
.
exists
(
binwalk_dst_path
):
shutil
.
rmtree
(
binwalk_dst_path
)
sys
.
stdout
.
write
(
"copying
%
s ->
%
s
\n
"
%
(
binida_src_path
,
binida_dst_path
))
sys
.
stdout
.
write
(
"copying
%
s ->
%
s
\n
"
%
(
binida_src_path
,
binida_dst_path
))
shutil
.
copyfile
(
binida_src_path
,
binida_dst_path
)
sys
.
stdout
.
write
(
"copying
%
s ->
%
s
\n
"
%
(
binwalk_src_path
,
binwalk_dst_path
))
sys
.
stdout
.
write
(
"copying
%
s ->
%
s
\n
"
%
(
binwalk_src_path
,
binwalk_dst_path
))
shutil
.
copytree
(
binwalk_src_path
,
binwalk_dst_path
)
class
UninstallCommand
(
Command
):
description
=
"Uninstalls the Python module"
user_options
=
[
...
...
@@ -169,6 +191,7 @@ class UninstallCommand(Command):
def
run
(
self
):
remove_binwalk_module
(
self
.
pydir
,
self
.
pybin
)
class
CleanCommand
(
Command
):
description
=
"Clean Python build directories"
user_options
=
[]
...
...
@@ -194,24 +217,49 @@ class CleanCommand(Command):
except
Exception
:
pass
class
TestCommand
(
Command
):
description
=
"Run unit-tests"
user_options
=
[]
def
initialize_options
(
self
):
pass
def
finalize_options
(
self
):
pass
def
run
(
self
):
subprocess
.
call
(
'nosetests --exe --with-coverage --include=src/*'
,
shell
=
True
)
# The data files to install along with the module
install_data_files
=
[]
for
data_dir
in
[
"magic"
,
"config"
,
"plugins"
,
"modules"
,
"core"
]:
install_data_files
.
append
(
"
%
s
%
s*"
%
(
data_dir
,
os
.
path
.
sep
))
# Install the module, script, and support files
setup
(
name
=
MODULE_NAME
,
version
=
"2.1.2b"
,
description
=
"Firmware analysis tool"
,
author
=
"Craig Heffner"
,
url
=
"https://github.com/devttys0/
%
s"
%
MODULE_NAME
,
requires
=
[],
package_dir
=
{
""
:
"src"
},
packages
=
[
MODULE_NAME
],
package_data
=
{
MODULE_NAME
:
install_data_files
},
scripts
=
[
os
.
path
.
join
(
"src"
,
"scripts"
,
SCRIPT_NAME
)],
cmdclass
=
{
'clean'
:
CleanCommand
,
'uninstall'
:
UninstallCommand
,
'idainstall'
:
IDAInstallCommand
,
'idauninstall'
:
IDAUnInstallCommand
}
)
setup
(
name
=
MODULE_NAME
,
version
=
"2.1.2b"
,
description
=
"Firmware analysis tool"
,
author
=
"Craig Heffner"
,
url
=
"https://github.com/devttys0/
%
s"
%
MODULE_NAME
,
requires
=
[],
package_dir
=
{
""
:
"src"
},
packages
=
[
MODULE_NAME
],
package_data
=
{
MODULE_NAME
:
install_data_files
},
scripts
=
[
os
.
path
.
join
(
"src"
,
"scripts"
,
SCRIPT_NAME
)],
cmdclass
=
{
'clean'
:
CleanCommand
,
'uninstall'
:
UninstallCommand
,
'idainstall'
:
IDAInstallCommand
,
'idauninstall'
:
IDAUnInstallCommand
,
'test'
:
TestCommand
})
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment