You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Philipp Häfelfinger c1ad9c9a22 adds ignoreDir flag to ignore spcific directories 7 months ago
cmd/SideCarJpegCleaner adds ignoreDir flag to ignore spcific directories 7 months ago
configs adds ignoreDir flag to ignore spcific directories 7 months ago
internal/app adds ignoreDir flag to ignore spcific directories 7 months ago
.gitignore updates ignore to exclude local binary 8 months ago
LICENSE Initial commit 1 year ago small readme fix 1 year ago
go.mod added first version of the app 1 year ago
go.sum typo, logs, modules, todo 1 year ago


A small tool to clean up a folder with raw and jpeg files. It scans the directory for jpg files and removes all without a corresponding raw file.


There are some external dependencies to build the application.

  • logrus: This is a little logging library that is quite handy
  • iniflags: The iniflags makes handling configuration files and applications parameters quite easy.

Get the source

To get the latest version, you should git clone to your local disk or into your local go source directory by using ``go get`.

GO modules

The repository supports gomodules so the modules should be resolved automatically during build or test run. But just in case, here are the manual commands to install them. This is needed if you put this repo inside the GOPATH as this sets the module config to ignore.

To get all dependencies at once:

go get ./...

Manual dependency installation

You may install the dependencies manually with the following commands or just use the command under "GO modules" to get all dependencies.

go get
go get


Build the main executable by using the following command. By default it gets the name SideCarJpegCleaner but can be renamed to your favorite application name.

go build cmd/SideCarJpegCleaner/SideCarJpegCleaner.go


Command line

You get the following help information to the command line by using:

./SideCarJpegCleaner -help

The following options are supported to run the application from the command line.

Usage of ./SideCarJpegCleaner:
        Don't terminate the app if the ini file cannot be read.
        Don't terminate the app if ini file contains unknown flags.
  -config string
        Path to ini config for using in go flags. May be relative to the current executable path.
  -configUpdateInterval duration
        Update interval for re-reading config file set via -config flag. Zero disables config file re-reading.
        If set to true, all actions are run except the real filesystem modifications (default true)
        Dumps values for all flags defined in the app into stdout in ini-compatible syntax and terminates the app.
  -imagesRootPath string
        This is the images root path that should be cleaned.
  -logLevel string
        The minimum log level required to write out a log message. (panic,fatal,error,warn,info,debug,trace) (default "info")

Configuration file

It is also possible to use a configuration file to save the settings to be used with multiple directories. To use configuration files, just copy the default one and edit the parameters to your wish.

cp ./configs/defaultConfig.ini ./localConfig.ini
nano ./localConfig.ini

Run the cleaner

Finally you may run the application using the following example command.

./SideCarJpegCleaner -config=./localConfig.ini

It is recommendet to do a dry run first!