{"id":16129205,"url":"https://github.com/haxzie-xx/stackby","last_synced_at":"2025-07-18T22:34:03.039Z","repository":{"id":121697998,"uuid":"136309438","full_name":"haxzie-xx/stackby","owner":"haxzie-xx","description":"Python command line application to stack files in directory based on extension, type, and created date.","archived":false,"fork":false,"pushed_at":"2018-12-10T05:15:24.000Z","size":48,"stargazers_count":13,"open_issues_count":3,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-11T03:37:52.152Z","etag":null,"topics":["cli","filesystem","hacktoberfest","python3","utility"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haxzie-xx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-06T09:58:49.000Z","updated_at":"2023-12-02T21:02:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"f4e2e09e-4338-4806-8d6b-eb31585f5839","html_url":"https://github.com/haxzie-xx/stackby","commit_stats":{"total_commits":47,"total_committers":6,"mean_commits":7.833333333333333,"dds":0.6170212765957447,"last_synced_commit":"2ce3c2b7015089642eff18533c41411ff91df11d"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/haxzie-xx/stackby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxzie-xx%2Fstackby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxzie-xx%2Fstackby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxzie-xx%2Fstackby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxzie-xx%2Fstackby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haxzie-xx","download_url":"https://codeload.github.com/haxzie-xx/stackby/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haxzie-xx%2Fstackby/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265846870,"owners_count":23838159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","filesystem","hacktoberfest","python3","utility"],"created_at":"2024-10-09T22:09:30.527Z","updated_at":"2025-07-18T22:34:03.017Z","avatar_url":"https://github.com/haxzie-xx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StackBy [![forthebadge](https://forthebadge.com/images/badges/contains-technical-debt.svg)](https://forthebadge.com)\nPython CLI to stack files in a directory based on type, date and extension.  \nStackBy uses [Google's Fire module](https://github.com/google/python-fire) to make the command line interface. Refer their docs for mode info.\n\n### Installing requirement (libmagic)\n**For OSX users**  \nUsing Homebrew: ```  brew install libmagic ```  \nUsing macports: ``` port install file ```   \n\n### Installation\nInstall the package from PyPI\n```\n$ pip3 install stackby\n```\nIf you encounter any permission error, use\n```\n$ sudo -H pip3 install stackby\n```\n### Usage\n\nStackBy is a handy CLI tool to make your life easier to clean up your folder with random files. StackBy can create separate subdirectories for files based on their extension, type or created date.\n\n#### Stack files by their extension  \nCD into the directory to clean up.\n```\n$ stackby ext\n```\nor simply specify the directory path to clean up.\n```\n$ stackby ext DIRECTORY_PATH\n```\n\n#### stack by creation date\n```\n$ stackby date\n```\nor simply specify the directory path to clean up.\n```\n$ stackby date DIRECTORY_PATH\n```  \n\n#### stack by predefined type\n```\n$ stackby type\n```\nor simply specify the directory path to clean up.\n```\n$ stackby type DIRECTORY_PATH\n```  \n\n#### stack by multiple categories\n```\n$ stackby multiple --categories=[LIST_OF_CATEGORIES_SEPARATED_BY_COMMAS] DIRECTORY_PATH\n```\n**Example to clean current directory by extension, then by date.**\n```\n$ stackby multiple --categories=[ext,date]\n```  \n\n#### Undo stacking in a directory  \nYou can undo the last stacking inside a directory. CD into the directory where files has been stacked from. Make sure there exists the `.stackby` file.\n```\n$ stackby undo\n```\nor simply supply the DIRECTORY_PATH where the `.stackby` file resides\n```\n$ stackby undo DIRECTORY_PATH\n```\n_Default DIRECTORY_PATH is the present working directory and by default it reverts all the stacked files in the directory._\n\n# Contributing\nTo contribute to the project, Please take up the tasks specified in the issues. Add a comment in the issues if you are taking up one.\n### Instructions\n- Fork the repository to your account.\n- Copy the clone url of your repository.\n- Clone the repository to your machine `git clone https://github.com/YOUR_USER_NAME/stackby.git`\n- Make sure you create a branch with the name as the issue you are working on `git checkout -b YOUR_BRANCH_NAME`, and make sure you are working on the same branch and not the `master`, run `git status` to know which branch you are working on, run `git branch`, your branch will be highlighted with an `*`. If you are not in your branch or want to move to another branch use `git checkout BRANCH_NAME`.\na good branch name should explain what this branch is about eg. `stackby_type`, `stackby_date`, `feature_undo` etc.\n- Add the upstream url of original repository, follow the instructions [here](https://help.github.com/articles/configuring-a-remote-for-a-fork/)\n- Make sure your repository is in sync with the original repository's master branch. Follow the instruction [here](https://help.github.com/articles/syncing-a-fork/) to know how to keep your local repository in sync.\n- Finally when you have made the changes, submit a pull request through github from the original repository, choose your branch against the master of original or create a new branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaxzie-xx%2Fstackby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaxzie-xx%2Fstackby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaxzie-xx%2Fstackby/lists"}