The simplest downloads folder organizer Linux service.
Go to file
altf_four 3c4e72a350
Fix build.yml
2020-04-25 09:27:08 +03:00
.github/workflows Fix build.yml 2020-04-25 09:27:08 +03:00
scripts Re-arrange project structure 2020-04-20 16:23:20 +03:00
services Re-arrange project structure 2020-04-20 16:23:20 +03:00
src Functionalize functionalities 2020-04-22 17:24:33 +03:00
.clang-format Basic Infrastructure 2020-04-17 20:08:54 +03:00
.gitignore Add build directory exceptions. 2020-04-17 20:48:47 +03:00
CMakeLists.txt Functionalize functionalities 2020-04-22 17:24:33 +03:00
Dockerfile Re-arrange project structure 2020-04-20 16:23:20 +03:00
LICENSE Initial commit 2020-04-17 12:52:12 +03:00
README.md Fix link in README.md 2020-04-22 17:52:01 +03:00
build.sh Add codecov support 2020-04-18 10:58:07 +03:00
buildArtifacts.sh Fix buildDocker exit codes 2020-04-18 10:10:27 +03:00
buildDocker.sh Fix buildDocker exit codes 2020-04-18 10:10:27 +03:00
buildDockerRelease.sh Fix buildDocker exit codes 2020-04-18 10:10:27 +03:00
buildRelease.sh Add codecov support 2020-04-18 10:58:07 +03:00
clean.sh clean.sh now removes buildRelease 2020-04-17 20:18:51 +03:00

README.md

CI

fixmydownloads


The goal of the project is to make the simplest downloads folder organizer that is configured by code making it so small that the whole thing fits in one file!

Installation

Their are multiple ways you can install it. Grab your distro's package from the release section and install it! Or wait for the project to get into your distro repositories (hopefully).

Compiling from Source

Using docker is the recommended way, make sure you have the correct permissions to use docker.

$ ./buildDocker.sh (For debbuggable binary and installers)
$ ./buildDockerRelease.sh (For releasable binary and installers)
$ ./buildArtifacts.sh (For extracting installers into $(PROJECT)/artifacts)

In Linux with a ready C development environment, run:

$ ./build.sh (For debuggable binary)
$ ./buildRelease.sh (For release binary)

The binary is outputted into $(PROJECT)/bin

Technical Overview

Overview

The program runs in the background, watching the downloads folder with inotify and copies any new files detected, based on extension of the file, to documents folder. All folders are by default sent to documents/misc. The projects applies to XDG File directory specification.

Starting up the application

The installers install the systemd/OpenRC service by default. Ex: .deb file installs systemd, .ebuild file installs OpenRC service. Compiling from source gives you the option to specify the service installed. This section is not complete. Instructions should be provided to install each of the services.

Configuring

This section is not complete, so is the application. But the main idea is to have defines that control the behavor of the application (specifing extensions to directory, documents/downloads location, etc). The defualt configuration should be enough though.

Built With

  • C - Language used.
  • inotify - Linux library used for watching files.
  • systemD - Optional Start-up mechanism, only installed with installers.
  • OpenRC - Optional Start-up mechanism, only installed with installers.

Authors

License

This project is licensed under the GPLv3 License - see the LICENSE.md file for details.

Inspiring

I never found a downloads folder organizer that is so simple that you just install it and forget about it. Adding, I wanted to a project that would be suckless-compatible (if that exists). It's worthy to note that I made a 5-minute research 'session' about download organizer for Linux and didn't find any. Therefore I called this project the simplest.