2013-06-24 20:20:05 +00:00
|
|
|
# dupeGuru
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2017-08-28 23:27:17 +00:00
|
|
|
[dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in
|
2020-12-29 20:31:36 +00:00
|
|
|
a system. It is written mostly in Python 3 and has the peculiarity of using
|
2013-12-01 16:26:30 +00:00
|
|
|
[multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer
|
2020-12-29 20:31:36 +00:00
|
|
|
is written in Objective-C and uses Cocoa. On Linux, it is written in Python and uses Qt5.
|
2013-12-01 16:26:30 +00:00
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
The Cocoa UI of dupeGuru is hosted in a separate repo: https://github.com/arsenetar/dupeguru-cocoa
|
2017-03-12 01:41:47 +00:00
|
|
|
|
2019-12-31 23:33:17 +00:00
|
|
|
## Current status
|
2015-04-12 19:31:01 +00:00
|
|
|
|
2020-12-29 20:31:36 +00:00
|
|
|
2020: various bug fixes and small UI improvements have been added. Packaging for MacOS is still a problem.
|
2015-04-12 19:31:01 +00:00
|
|
|
|
2019-12-31 23:33:17 +00:00
|
|
|
Still looking for additional help especially with regards to:
|
2020-12-29 20:31:36 +00:00
|
|
|
* OSX maintenance: reproducing bugs & cocoa version, building package with Cocoa UI.
|
|
|
|
* Linux maintenance: reproducing bugs, maintaining PPA repository, Debian package.
|
|
|
|
* Translations: updating missing strings.
|
|
|
|
* Documentation: keeping it up-to-date.
|
2015-12-25 01:50:33 +00:00
|
|
|
|
2016-06-06 21:00:57 +00:00
|
|
|
## Contents of this folder
|
2013-12-01 16:26:30 +00:00
|
|
|
|
2015-04-12 19:31:01 +00:00
|
|
|
This folder contains the source for dupeGuru. Its documentation is in `help`, but is also
|
2019-12-31 23:33:17 +00:00
|
|
|
[available online][documentation] in its built form. Here's how this source tree is organized:
|
2013-06-23 01:43:24 +00:00
|
|
|
|
|
|
|
* core: Contains the core logic code for dupeGuru. It's Python code.
|
|
|
|
* qt: UI code for the Qt toolkit. It's written in Python and uses PyQt.
|
|
|
|
* images: Images used by the different UI codebases.
|
2014-04-19 21:48:48 +00:00
|
|
|
* pkg: Skeleton files required to create different packages
|
2013-06-23 01:43:24 +00:00
|
|
|
* help: Help document, written for Sphinx.
|
2019-12-31 23:33:17 +00:00
|
|
|
* locale: .po files for localization.
|
2013-06-23 01:43:24 +00:00
|
|
|
* hscommon: A collection of helpers used across HS applications.
|
|
|
|
* qtlib: A collection of helpers used across Qt UI codebases of HS applications.
|
|
|
|
|
2016-06-06 21:00:57 +00:00
|
|
|
## How to build dupeGuru from source
|
2013-06-23 01:43:24 +00:00
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
### Windows & macOS specific additional instructions
|
2017-08-28 23:27:17 +00:00
|
|
|
For windows instructions see the [Windows Instructions](Windows.md).
|
2021-01-06 18:22:15 +00:00
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
For macos instructions (qt version) see the [macOS Instructions](macos.md).
|
2017-08-28 23:27:17 +00:00
|
|
|
|
2017-03-12 01:41:47 +00:00
|
|
|
### Prerequisites
|
2021-01-06 05:04:42 +00:00
|
|
|
* [Python 3.6+][python]
|
2017-03-12 01:41:47 +00:00
|
|
|
* PyQt5
|
|
|
|
|
2021-01-06 18:22:15 +00:00
|
|
|
### System Setup
|
|
|
|
When running in a linux based environment the following system packages or equivalents are needed to build:
|
|
|
|
* python3-pyqt5
|
|
|
|
* python3-wheel (for hsaudiotag3k)
|
|
|
|
* python3-venv (only if using a virtual environment)
|
|
|
|
* python3-dev
|
|
|
|
* build-essential
|
|
|
|
|
|
|
|
To create packages the following are also needed:
|
|
|
|
* python3-setuptools
|
|
|
|
* debhelper
|
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
### Building with Make
|
|
|
|
dupeGuru comes with a makefile that can be used to build and run:
|
2016-08-16 02:38:47 +00:00
|
|
|
|
2020-10-27 18:37:26 +00:00
|
|
|
$ make && make run
|
2016-08-16 02:38:47 +00:00
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
### Building without Make
|
|
|
|
|
|
|
|
$ cd <dupeGuru directory>
|
2021-01-06 18:22:15 +00:00
|
|
|
$ python3 -m venv --system-site-packages ./env
|
|
|
|
$ source ./env/bin/activate
|
2021-01-06 05:04:42 +00:00
|
|
|
$ pip install -r requirements.txt
|
|
|
|
$ python build.py
|
|
|
|
$ python run.py
|
|
|
|
|
|
|
|
### Generating Debian/Ubuntu package
|
|
|
|
To generate packages the extra requirements in requirements-extra.txt must be installed, the
|
|
|
|
steps are as follows:
|
|
|
|
|
|
|
|
$ cd <dupeGuru directory>
|
2021-01-06 18:22:15 +00:00
|
|
|
$ python3 -m venv --system-site-packages ./env
|
|
|
|
$ source ./env/bin/activate
|
2021-01-06 05:04:42 +00:00
|
|
|
$ pip install -r requirements.txt -r requirements-extra.txt
|
|
|
|
$ python build.py --clean
|
|
|
|
$ python package.py
|
|
|
|
|
|
|
|
This can be made a one-liner (once in the directory) as:
|
2016-06-29 02:39:23 +00:00
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
$ bash -c "python3 -m venv --system-site-packages env && source env/bin/activate && pip install -r requirements.txt -r requirements-extra.txt && python build.py --clean && python package.py"
|
2016-06-29 02:39:23 +00:00
|
|
|
|
2021-01-06 05:04:42 +00:00
|
|
|
## Running tests
|
2016-01-05 22:14:05 +00:00
|
|
|
|
2017-01-09 03:34:49 +00:00
|
|
|
The complete test suite is run with [Tox 1.7+][tox]. If you have it installed system-wide, you
|
2016-01-05 22:14:05 +00:00
|
|
|
don't even need to set up a virtualenv. Just `cd` into the root project folder and run `tox`.
|
|
|
|
|
|
|
|
If you don't have Tox system-wide, install it in your virtualenv with `pip install tox` and then
|
|
|
|
run `tox`.
|
|
|
|
|
|
|
|
You can also run automated tests without Tox. Extra requirements for running tests are in
|
|
|
|
`requirements-extra.txt`. So, you can do `pip install -r requirements-extra.txt` inside your
|
|
|
|
virtualenv and then `py.test core hscommon`
|
|
|
|
|
2018-10-11 02:12:01 +00:00
|
|
|
[dupeguru]: https://dupeguru.voltaicideas.net/
|
2013-12-01 16:26:30 +00:00
|
|
|
[cross-toolkit]: http://www.hardcoded.net/articles/cross-toolkit-software
|
2018-10-11 02:12:01 +00:00
|
|
|
[documentation]: http://dupeguru.voltaicideas.net/help/en/
|
2013-06-24 20:20:05 +00:00
|
|
|
[python]: http://www.python.org/
|
|
|
|
[pyqt]: http://www.riverbankcomputing.com
|
2018-02-15 03:42:40 +00:00
|
|
|
[tox]: https://tox.readthedocs.org/en/latest/
|