Skip to content

Commit

Permalink
Merge pull request #1 from timothyryanwalsh/dev-brunnhildegui2
Browse files Browse the repository at this point in the history
Merge dev into master
  • Loading branch information
Tim Walsh committed Nov 18, 2016
2 parents 1a16bce + 7765d4b commit 67ab2db
Show file tree
Hide file tree
Showing 5 changed files with 273 additions and 151 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -8,13 +8,13 @@ Install the Brunnhilde command-line utility by downloading the source code from

For easy installation in Bitcurator, save the script to /usr/share/brunnhilde/brunnhilde.py.

The GUI requires Brunnhilde v1.1.0 or higher. Version 1.2.4 or higher is recommended. Dependencies must be installed as explained in [Brunnhilde](http://github.com/timothyryanwalsh/brunnhilde) repo.
This version of the GUI requires Brunnhilde 1.3.0 or higher. Currently works with Python 2 (tested in 2.7) only.

#### Install PyQt4

Install PyQt4 if not already installed.

##### Ubuntu/Debian Linux (including Bitcurator 1.7.74)
##### Ubuntu/Debian Linux (including Bitcurator 1.7.74+)

`sudo apt-get install python-qt4`

Expand Down
193 changes: 113 additions & 80 deletions design.py
Expand Up @@ -25,114 +25,147 @@ def _translate(context, text, disambig):
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(687, 832)
MainWindow.resize(600, 764)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label_8 = QtGui.QLabel(self.centralwidget)
self.label_8.setObjectName(_fromUtf8("label_8"))
self.verticalLayout.addWidget(self.label_8)
self.radioButton = QtGui.QRadioButton(self.centralwidget)
self.radioButton.setObjectName(_fromUtf8("radioButton"))
self.verticalLayout.addWidget(self.radioButton)
self.directorySource = QtGui.QLineEdit(self.centralwidget)
self.directorySource.setText(_fromUtf8(""))
self.directorySource.setObjectName(_fromUtf8("directorySource"))
self.verticalLayout.addWidget(self.directorySource)
self.directoryBrowseBtn = QtGui.QPushButton(self.centralwidget)
self.directoryBrowseBtn.setObjectName(_fromUtf8("directoryBrowseBtn"))
self.verticalLayout.addWidget(self.directoryBrowseBtn)
self.radioButton_2 = QtGui.QRadioButton(self.centralwidget)
self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
self.verticalLayout.addWidget(self.radioButton_2)
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.identifier = QtGui.QLineEdit(self.centralwidget)
self.identifier.setText(_fromUtf8(""))
self.identifier.setObjectName(_fromUtf8("identifier"))
self.gridLayout.addWidget(self.identifier, 15, 0, 1, 2)
self.diskImageBrowseBtn = QtGui.QPushButton(self.centralwidget)
self.diskImageBrowseBtn.setObjectName(_fromUtf8("diskImageBrowseBtn"))
self.gridLayout.addWidget(self.diskImageBrowseBtn, 7, 2, 1, 1)
self.textEdit_2 = QtGui.QTextEdit(self.centralwidget)
self.textEdit_2.setObjectName(_fromUtf8("textEdit_2"))
self.gridLayout.addWidget(self.textEdit_2, 30, 0, 1, 3)
self.diskImageSource = QtGui.QLineEdit(self.centralwidget)
self.diskImageSource.setText(_fromUtf8(""))
self.diskImageSource.setObjectName(_fromUtf8("diskImageSource"))
self.verticalLayout.addWidget(self.diskImageSource)
self.diskImageBrowseBtn = QtGui.QPushButton(self.centralwidget)
self.diskImageBrowseBtn.setObjectName(_fromUtf8("diskImageBrowseBtn"))
self.verticalLayout.addWidget(self.diskImageBrowseBtn)
self.hfsDiskBtn = QtGui.QCheckBox(self.centralwidget)
self.hfsDiskBtn.setObjectName(_fromUtf8("hfsDiskBtn"))
self.verticalLayout.addWidget(self.hfsDiskBtn)
self.removeFilesBtn = QtGui.QCheckBox(self.centralwidget)
self.removeFilesBtn.setObjectName(_fromUtf8("removeFilesBtn"))
self.verticalLayout.addWidget(self.removeFilesBtn)
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.verticalLayout.addWidget(self.label_3)
self.gridLayout.addWidget(self.diskImageSource, 7, 0, 1, 2)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 22, 0, 1, 1)
self.destination = QtGui.QLineEdit(self.centralwidget)
self.destination.setText(_fromUtf8(""))
self.destination.setObjectName(_fromUtf8("destination"))
self.verticalLayout.addWidget(self.destination)
self.destinationBrowseBtn = QtGui.QPushButton(self.centralwidget)
self.destinationBrowseBtn.setObjectName(_fromUtf8("destinationBrowseBtn"))
self.verticalLayout.addWidget(self.destinationBrowseBtn)
self.label_4 = QtGui.QLabel(self.centralwidget)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.verticalLayout.addWidget(self.label_4)
self.identifier = QtGui.QLineEdit(self.centralwidget)
self.identifier.setText(_fromUtf8(""))
self.identifier.setObjectName(_fromUtf8("identifier"))
self.verticalLayout.addWidget(self.identifier)
self.gridLayout.addWidget(self.destination, 12, 0, 1, 2)
self.startScanBtn = QtGui.QPushButton(self.centralwidget)
self.startScanBtn.setObjectName(_fromUtf8("startScanBtn"))
self.gridLayout.addWidget(self.startScanBtn, 31, 0, 1, 1)
self.radioButton_2 = QtGui.QRadioButton(self.centralwidget)
self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
self.gridLayout.addWidget(self.radioButton_2, 6, 0, 1, 1)
self.label_8 = QtGui.QLabel(self.centralwidget)
self.label_8.setObjectName(_fromUtf8("label_8"))
self.gridLayout.addWidget(self.label_8, 0, 0, 1, 2)
self.radioButton = QtGui.QRadioButton(self.centralwidget)
self.radioButton.setObjectName(_fromUtf8("radioButton"))
self.gridLayout.addWidget(self.radioButton, 1, 0, 1, 1)
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.gridLayout.addWidget(self.label_3, 11, 0, 1, 1)
self.label_5 = QtGui.QLabel(self.centralwidget)
self.label_5.setObjectName(_fromUtf8("label_5"))
self.verticalLayout.addWidget(self.label_5)
self.skipClamscanBtn = QtGui.QCheckBox(self.centralwidget)
self.skipClamscanBtn.setObjectName(_fromUtf8("skipClamscanBtn"))
self.verticalLayout.addWidget(self.skipClamscanBtn)
self.bulkExtractorBtn = QtGui.QCheckBox(self.centralwidget)
self.bulkExtractorBtn.setObjectName(_fromUtf8("bulkExtractorBtn"))
self.verticalLayout.addWidget(self.bulkExtractorBtn)
self.gridLayout.addWidget(self.label_5, 16, 0, 1, 1)
self.scanArchivesBtn = QtGui.QCheckBox(self.centralwidget)
self.scanArchivesBtn.setChecked(True)
self.scanArchivesBtn.setObjectName(_fromUtf8("scanArchivesBtn"))
self.verticalLayout.addWidget(self.scanArchivesBtn)
self.throttleSiegfriedBtn = QtGui.QCheckBox(self.centralwidget)
self.throttleSiegfriedBtn.setObjectName(_fromUtf8("throttleSiegfriedBtn"))
self.verticalLayout.addWidget(self.throttleSiegfriedBtn)
self.gridLayout.addWidget(self.scanArchivesBtn, 17, 1, 1, 1)
self.removeFilesBtn = QtGui.QCheckBox(self.centralwidget)
self.removeFilesBtn.setObjectName(_fromUtf8("removeFilesBtn"))
self.gridLayout.addWidget(self.removeFilesBtn, 10, 0, 1, 2)
self.btn_sha1 = QtGui.QRadioButton(self.centralwidget)
self.btn_sha1.setObjectName(_fromUtf8("btn_sha1"))
self.buttonGroup = QtGui.QButtonGroup(MainWindow)
self.buttonGroup.setObjectName(_fromUtf8("buttonGroup"))
self.buttonGroup.addButton(self.btn_sha1)
self.gridLayout.addWidget(self.btn_sha1, 24, 0, 1, 1)
self.skipClamscanBtn = QtGui.QCheckBox(self.centralwidget)
self.skipClamscanBtn.setObjectName(_fromUtf8("skipClamscanBtn"))
self.gridLayout.addWidget(self.skipClamscanBtn, 17, 0, 1, 1)
self.label_4 = QtGui.QLabel(self.centralwidget)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.gridLayout.addWidget(self.label_4, 14, 0, 1, 1)
self.btn_md5 = QtGui.QRadioButton(self.centralwidget)
self.btn_md5.setChecked(True)
self.btn_md5.setObjectName(_fromUtf8("btn_md5"))
self.buttonGroup.addButton(self.btn_md5)
self.gridLayout.addWidget(self.btn_md5, 23, 0, 1, 1)
self.btn_sha512 = QtGui.QRadioButton(self.centralwidget)
self.btn_sha512.setObjectName(_fromUtf8("btn_sha512"))
self.buttonGroup.addButton(self.btn_sha512)
self.gridLayout.addWidget(self.btn_sha512, 24, 1, 1, 1)
self.label_7 = QtGui.QLabel(self.centralwidget)
self.label_7.setObjectName(_fromUtf8("label_7"))
self.verticalLayout.addWidget(self.label_7)
self.textEdit = QtGui.QTextEdit(self.centralwidget)
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.verticalLayout.addWidget(self.textEdit)
self.gridLayout.addWidget(self.label_7, 27, 0, 1, 1)
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.verticalLayout.addWidget(self.label_2)
self.textEdit_2 = QtGui.QTextEdit(self.centralwidget)
self.textEdit_2.setObjectName(_fromUtf8("textEdit_2"))
self.verticalLayout.addWidget(self.textEdit_2)
self.startScanBtn = QtGui.QPushButton(self.centralwidget)
self.startScanBtn.setObjectName(_fromUtf8("startScanBtn"))
self.verticalLayout.addWidget(self.startScanBtn)
self.gridLayout.addWidget(self.label_2, 29, 0, 1, 1)
self.btn_sha256 = QtGui.QRadioButton(self.centralwidget)
self.btn_sha256.setObjectName(_fromUtf8("btn_sha256"))
self.buttonGroup.addButton(self.btn_sha256)
self.gridLayout.addWidget(self.btn_sha256, 23, 1, 1, 1)
self.hfsDiskBtn = QtGui.QCheckBox(self.centralwidget)
self.hfsDiskBtn.setObjectName(_fromUtf8("hfsDiskBtn"))
self.gridLayout.addWidget(self.hfsDiskBtn, 9, 0, 1, 2)
self.sfWarningsBtn = QtGui.QCheckBox(self.centralwidget)
self.sfWarningsBtn.setChecked(True)
self.sfWarningsBtn.setObjectName(_fromUtf8("sfWarningsBtn"))
self.gridLayout.addWidget(self.sfWarningsBtn, 18, 1, 1, 1)
self.throttleSiegfriedBtn = QtGui.QCheckBox(self.centralwidget)
self.throttleSiegfriedBtn.setObjectName(_fromUtf8("throttleSiegfriedBtn"))
self.gridLayout.addWidget(self.throttleSiegfriedBtn, 20, 0, 1, 1)
self.bulkExtractorBtn = QtGui.QCheckBox(self.centralwidget)
self.bulkExtractorBtn.setObjectName(_fromUtf8("bulkExtractorBtn"))
self.gridLayout.addWidget(self.bulkExtractorBtn, 18, 0, 1, 1)
self.textEdit = QtGui.QTextEdit(self.centralwidget)
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.gridLayout.addWidget(self.textEdit, 28, 0, 1, 3)
self.directorySource = QtGui.QLineEdit(self.centralwidget)
self.directorySource.setText(_fromUtf8(""))
self.directorySource.setObjectName(_fromUtf8("directorySource"))
self.gridLayout.addWidget(self.directorySource, 3, 0, 1, 2)
self.destinationBrowseBtn = QtGui.QPushButton(self.centralwidget)
self.destinationBrowseBtn.setObjectName(_fromUtf8("destinationBrowseBtn"))
self.gridLayout.addWidget(self.destinationBrowseBtn, 12, 2, 1, 1)
self.directoryBrowseBtn = QtGui.QPushButton(self.centralwidget)
self.directoryBrowseBtn.setObjectName(_fromUtf8("directoryBrowseBtn"))
self.gridLayout.addWidget(self.directoryBrowseBtn, 3, 2, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Brunnhilde GUI", None))
self.identifier.setPlaceholderText(_translate("MainWindow", "Enter accession no. or other identifer (no spaces)", None))
self.diskImageBrowseBtn.setText(_translate("MainWindow", "Browse", None))
self.diskImageSource.setPlaceholderText(_translate("MainWindow", "/path/to/disk/image", None))
self.label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Checksum algorithm</span></p></body></html>", None))
self.destination.setPlaceholderText(_translate("MainWindow", "/path/to/reports/directory", None))
self.startScanBtn.setText(_translate("MainWindow", "Start scan", None))
self.radioButton_2.setText(_translate("MainWindow", "Disk image", None))
self.label_8.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Choose source</span></p></body></html>", None))
self.radioButton.setText(_translate("MainWindow", "Directory", None))
self.directorySource.setPlaceholderText(_translate("MainWindow", "/path/to/directory", None))
self.directoryBrowseBtn.setText(_translate("MainWindow", "Browse", None))
self.radioButton_2.setText(_translate("MainWindow", "Disk image", None))
self.diskImageSource.setPlaceholderText(_translate("MainWindow", "/path/to/disk/image", None))
self.diskImageBrowseBtn.setText(_translate("MainWindow", "Browse", None))
self.hfsDiskBtn.setText(_translate("MainWindow", "Hierarchical File System (HFS)-formatted disk", None))
self.removeFilesBtn.setText(_translate("MainWindow", "Remove files carved from disk image at end of process", None))
self.label_3.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Destination for reports</span></p></body></html>", None))
self.destination.setPlaceholderText(_translate("MainWindow", "/path/to/reports/directory", None))
self.destinationBrowseBtn.setText(_translate("MainWindow", "Browse", None))
self.label_4.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Accesion number or identifier</span></p></body></html>", None))
self.identifier.setPlaceholderText(_translate("MainWindow", "Enter accession no. or other identifer (no spaces)", None))
self.label_5.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Options</span></p></body></html>", None))
self.skipClamscanBtn.setText(_translate("MainWindow", "Skip virus scan", None))
self.bulkExtractorBtn.setText(_translate("MainWindow", "Run bulk_extractor", None))
self.scanArchivesBtn.setText(_translate("MainWindow", "Scan archive files (zip, tar, etc.)", None))
self.throttleSiegfriedBtn.setText(_translate("MainWindow", "Throttle Siegfried", None))
self.removeFilesBtn.setText(_translate("MainWindow", "Remove files carved from disk image at end of process", None))
self.btn_sha1.setText(_translate("MainWindow", "sha1", None))
self.skipClamscanBtn.setText(_translate("MainWindow", "Skip virus scan", None))
self.label_4.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Accesion number or identifier</span></p></body></html>", None))
self.btn_md5.setText(_translate("MainWindow", "md5", None))
self.btn_sha512.setText(_translate("MainWindow", "sha512", None))
self.label_7.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Output (stdout)</span></p></body></html>", None))
self.label_2.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Errors (stderr)</span></p></body></html>", None))
self.startScanBtn.setText(_translate("MainWindow", "Start scan", None))
self.btn_sha256.setText(_translate("MainWindow", "sha256", None))
self.hfsDiskBtn.setText(_translate("MainWindow", "Hierarchical File System (HFS)-formatted disk", None))
self.sfWarningsBtn.setText(_translate("MainWindow", "Include Siegfried warnings in HTML", None))
self.throttleSiegfriedBtn.setText(_translate("MainWindow", "Throttle Siegfried", None))
self.bulkExtractorBtn.setText(_translate("MainWindow", "Run bulk_extractor", None))
self.directorySource.setPlaceholderText(_translate("MainWindow", "/path/to/directory", None))
self.destinationBrowseBtn.setText(_translate("MainWindow", "Browse", None))
self.directoryBrowseBtn.setText(_translate("MainWindow", "Browse", None))

Binary file added design.pyc
Binary file not shown.

0 comments on commit 67ab2db

Please sign in to comment.