diff --git a/README.md b/README.md index fab9e60..01f82b0 100644 --- a/README.md +++ b/README.md @@ -14,29 +14,20 @@ git fetch --all --prune # prune is to delete unnecessary remote refs git merge origin/main main --ff-only git branch --merged | grep -v main | xargs git branch -d ``` + with some extra convenience and (I hope) safety features. ## Using -The actual script is named `git_tidy.py`. After cloning, you can copy (or symlink) -it to somewhere on your path (e.g. `~/bin/git-tidy`). - -Alternatively, you can use a package manager such as -[`uv`](https://docs.astral.sh/uv/concepts/tools/). My personal preference is -this, as `uv` will place the tool on the PATH for you and you can get straight -to using it. - -```bash -uv tool install https://codeberg.org/james-smith-za/git-tidy-python.git -``` +The actual script is named `git-tidy`. After cloning, you can copy (or symlink) +it to somewhere on your path (I use `~/bin/`). Then when you `cd` to your git repository, you can type ```bash git tidy ``` and it'll do its thing! Only the Python standard library is used, no additional -packages are required. I have tested (manually) with Python 3.8 through to -3.13, so I would imagine that future versions should work just fine. +packages are required. ## Background @@ -45,6 +36,7 @@ redo this program in Go at some point, which will make it easier to distribute for people who don't have Python installed by default (i.e. Windows users). But I'm not sure when I'll get to that. + ## TODO I'd like to actually get a set of unit-tests in place, but I'm not sure how to diff --git a/git_tidy.py b/git-tidy old mode 100644 new mode 100755 similarity index 93% rename from git_tidy.py rename to git-tidy index 820ac80..951dd08 --- a/git_tidy.py +++ b/git-tidy @@ -1,26 +1,21 @@ #!/usr/bin/env python3 -# Copyright 2023-2025 James Smith + # git-tidy is free software: you can redistribute it and/or modify it under the terms of the GNU # General Public License as published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. + # git-tidy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. + # You should have received a copy of the GNU General Public License along with git-tidy. If not, see # . """git-tidy utility.""" -import argparse import subprocess import sys from typing import List, Tuple, Union -try: - from importlib.metadata import version -except ImportError: - # Python < 3.8 - from importlib_metadata import version - common_default_branches = [ "main", "master", @@ -132,10 +127,6 @@ def get_default_branch() -> str: def main(): """Main function.""" - parser = argparse.ArgumentParser(description="A time-saving device for a developer using git.") - parser.add_argument("--version", action="version", version=f"git-tidy {version('git-tidy-python')}") - parser.parse_args() - default_branch = get_default_branch() print(f"Switching to {default_branch}") run(["git", "checkout", default_branch]) diff --git a/pyproject.toml b/pyproject.toml index 4ed51b9..7c77a5d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,54 +1,13 @@ -[build-system] -requires = ["setuptools>=45", "setuptools-scm[toml]>=6.2", "wheel"] -build-backend = "setuptools.build_meta" - -[project] -name = "git-tidy-python" -dynamic = ["version"] -description = "A time-saving device for a developer using git." -authors = [ - {name = "James Smith"} -] -readme = "README.md" -license = {text = "GPL-3.0-or-later"} -requires-python = ">=3.8" -dependencies = [] -keywords = ["git", "cli", "developer-tools", "automation", "branch-management"] -classifiers = [ - "Development Status :: 4 - Beta", - "Environment :: Console", - "Intended Audience :: Developers", - "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Topic :: Software Development :: Version Control :: Git", - "Topic :: Utilities" -] - -[project.scripts] -git-tidy = "git_tidy:main" - -[tool.setuptools] -py-modules = ["git_tidy"] - -[tool.ruff] +[tool.black] line-length = 120 +include = '\.pyi?$' exclude =''' /( - | \.git - | \.mypy_cache + | \.git + | \.mypy_cache )/ ''' [tool.isort] profile = "black" line_length = 120 - -[tool.setuptools_scm]