Compare commits

...

2 Commits

Author SHA1 Message Date
dba2a2b70c feat: proper config method 2024-05-29 13:19:21 +02:00
38768737b1 feat: implemented release script 2024-05-29 12:50:56 +02:00
5 changed files with 60 additions and 9 deletions

View File

@ -1,3 +1,23 @@
# Git Time Tracking # Git Time Tracking
This is a tool, allowing you to view the commits you have made in a set of repositories. This is useful if you need to write down your times for work. This is a tool, allowing you to view the commits you have made in a set of repositories. This is useful if you need to write down your times for work.
## Installation
You can install the program by using pip:
```bash
pip install git-time-tracking
```
> Make sure nano is installed on your system, as it is used for editing the config file.
## Usage
You can see all the cli options by running:
```bash
git_time_tracking --help
```
The first time running the program, you will be thrown into `nano` (has to be installed). Here you can specify the repositories you want to track, and some other settings.

View File

@ -1,2 +1,2 @@
__version__ = "0.0.0" __version__ = "0.0.1"
__name__ = "git_time_tracking" __name__ = "git_time_tracking"

View File

@ -1,20 +1,30 @@
import argparse import argparse
import datetime import datetime
import subprocess import subprocess
from pathlib import Path
from .utils import SETTINGS, console from .utils import (CONFIG_PATH, SETTINGS, SETTINGS_EXISTED, console,
load_config, save_config)
def configure():
save_config()
subprocess.call(['nano', str(CONFIG_PATH)])
load_config()
GIT_COMMAND = """
git log "
"""
def main(): def main():
# get the user input # get the user input
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("date", help="The date to get the logs for") parser.add_argument("--date", help="The date to get the logs for", nargs="?", const=None)
parser.add_argument("--author", help="The author to get the logs for", nargs="?", const=None)
parser.add_argument("--config", action=argparse.BooleanOptionalAction, help="Configure the settings")
args = parser.parse_args() args = parser.parse_args()
parsed_date = raw_date = args.date.replace("date=", "") if not SETTINGS_EXISTED or args.config:
configure()
parsed_date = raw_date = args.date.replace("date=", "") if args.date is not None else datetime.datetime.now().strftime(SETTINGS["date_format"])
try: try:
date = datetime.datetime.strptime(raw_date, SETTINGS["date_format"]).date() date = datetime.datetime.strptime(raw_date, SETTINGS["date_format"]).date()
parsed_date = date.strftime("%Y-%m-%d") parsed_date = date.strftime("%Y-%m-%d")
@ -24,7 +34,7 @@ def main():
if SETTINGS["git_author"] is None: if SETTINGS["git_author"] is None:
SETTINGS["git_author"] = console.input("Whats your name? ").strip() SETTINGS["git_author"] = console.input("Whats your name? ").strip()
parsed_author = SETTINGS["git_author"].replace("'", "") parsed_author = (args.author or SETTINGS["git_author"]).replace("'", "")
pretty_author = parsed_author if not SETTINGS["censor_author"] else "*" * len(parsed_author) pretty_author = parsed_author if not SETTINGS["censor_author"] else "*" * len(parsed_author)
console.print("date:\t", parsed_date, style="bold") console.print("date:\t", parsed_date, style="bold")

View File

@ -9,6 +9,7 @@ from .__about__ import __name__
console: Console = Console() console: Console = Console()
SETTINGS_EXISTED = False
CONFIG_PATH = Path.home() / ".config" / __name__ / "config.toml" CONFIG_PATH = Path.home() / ".config" / __name__ / "config.toml"
SETTINGS = { SETTINGS = {
"git_directories": [], "git_directories": [],
@ -18,7 +19,10 @@ SETTINGS = {
} }
def load_config(): def load_config():
global SETTINGS_EXISTED
if CONFIG_PATH.exists(): if CONFIG_PATH.exists():
SETTINGS_EXISTED = True
with CONFIG_PATH.open("r", encoding="utf-8") as f: with CONFIG_PATH.open("r", encoding="utf-8") as f:
config = toml.load(f) config = toml.load(f)
SETTINGS.update(config) SETTINGS.update(config)

17
release Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
# install build tools
pip install build
pip install twine
pip install hatch
# increment version in pyproject.toml
hatch version micro
# build package
python3 -m build --wheel
# upload to pypi
python3 -m twine upload dist/*
python3 -m twine upload --skip-existing --repository gitea dist/*