2025-02-23 daily publish
This commit is contained in:
parent
01862d2120
commit
9ab1a23ff4
|
@ -7,6 +7,7 @@ authors = [{ name = "GitMatt", email = "git@publicmatt.com" }]
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"click>=8.1.8",
|
"click>=8.1.8",
|
||||||
|
"invoke>=2.2.0",
|
||||||
"option>=2.1.0",
|
"option>=2.1.0",
|
||||||
"pydanclick>=0.4.0",
|
"pydanclick>=0.4.0",
|
||||||
"pydantic>=2.10.6",
|
"pydantic>=2.10.6",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import click
|
import click
|
||||||
from pydanclick import from_pydantic
|
from pydanclick import from_pydantic
|
||||||
|
|
||||||
from . import weather, hacker_news
|
from . import weather, hacker_news, git
|
||||||
|
|
||||||
|
|
||||||
@click.group()
|
@click.group()
|
||||||
|
@ -26,3 +26,6 @@ def top():
|
||||||
stories = hacker_news.recent_top_stories()
|
stories = hacker_news.recent_top_stories()
|
||||||
for item in stories:
|
for item in stories:
|
||||||
print(f"[{item.score:>4}|{item.diff_for_humans():>12}]: {item.title}")
|
print(f"[{item.score:>4}|{item.diff_for_humans():>12}]: {item.title}")
|
||||||
|
|
||||||
|
|
||||||
|
cli.add_command(git.cli)
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
import click
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
@click.command("commit-push")
|
||||||
|
@click.option(
|
||||||
|
"--repo-path", "-p", "repo_path", help="path to commit", default=Path().cwd()
|
||||||
|
)
|
||||||
|
def cli(repo_path):
|
||||||
|
"""
|
||||||
|
Commits and pushes changes in the specified Git repository.
|
||||||
|
"""
|
||||||
|
commit_message = f"{datetime.now().strftime('%Y-%m-%d')} daily publish"
|
||||||
|
os.chdir(repo_path)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Run git add (add all changes)
|
||||||
|
subprocess.run(["git", "add", "."], check=True)
|
||||||
|
|
||||||
|
# Run git commit
|
||||||
|
subprocess.run(["git", "commit", "-m", commit_message], check=True)
|
||||||
|
|
||||||
|
# Run git push
|
||||||
|
subprocess.run(["git", "push"], check=True)
|
||||||
|
|
||||||
|
click.echo(
|
||||||
|
f"changes have been committed and pushed to {repo_path} with message: {commit_message}"
|
||||||
|
)
|
||||||
|
logging.info("git pushed")
|
||||||
|
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
logging.warning(f"error occurred while running git command: {e}")
|
||||||
|
click.echo(f"error occurred while running git command: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
cli()
|
11
uv.lock
11
uv.lock
|
@ -81,6 +81,7 @@ version = "0.1.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "click" },
|
{ name = "click" },
|
||||||
|
{ name = "invoke" },
|
||||||
{ name = "option" },
|
{ name = "option" },
|
||||||
{ name = "pydanclick" },
|
{ name = "pydanclick" },
|
||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
|
@ -91,6 +92,7 @@ dependencies = [
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "click", specifier = ">=8.1.8" },
|
{ name = "click", specifier = ">=8.1.8" },
|
||||||
|
{ name = "invoke", specifier = ">=2.2.0" },
|
||||||
{ name = "option", specifier = ">=2.1.0" },
|
{ name = "option", specifier = ">=2.1.0" },
|
||||||
{ name = "pydanclick", specifier = ">=0.4.0" },
|
{ name = "pydanclick", specifier = ">=0.4.0" },
|
||||||
{ name = "pydantic", specifier = ">=2.10.6" },
|
{ name = "pydantic", specifier = ">=2.10.6" },
|
||||||
|
@ -107,6 +109,15 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
|
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "invoke"
|
||||||
|
version = "2.2.0"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/f9/42/127e6d792884ab860defc3f4d80a8f9812e48ace584ffc5a346de58cdc6c/invoke-2.2.0.tar.gz", hash = "sha256:ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5", size = 299835 }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/0a/66/7f8c48009c72d73bc6bbe6eb87ac838d6a526146f7dab14af671121eb379/invoke-2.2.0-py3-none-any.whl", hash = "sha256:6ea924cc53d4f78e3d98bc436b08069a03077e6f85ad1ddaa8a116d7dad15820", size = 160274 },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "option"
|
name = "option"
|
||||||
version = "2.1.0"
|
version = "2.1.0"
|
||||||
|
|
Loading…
Reference in New Issue