[DEBUG] Triggering hook for import test
This commit is contained in:
@@ -1,32 +1,21 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import subprocess
|
import subprocess
|
||||||
import os
|
from datetime import datetime
|
||||||
from datetime import datetime # datetime kann direkt importiert werden
|
|
||||||
|
|
||||||
# Ermittle das Git-Projekt-Root-Verzeichnis
|
# Fügen Sie das Projekt-Stammverzeichnis zum Python-Pfad hinzu
|
||||||
try:
|
# Das ist das Verzeichnis, in dem sich das Hook-Skript befindet
|
||||||
PROJECT_ROOT = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip()
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||||
# Stelle sicher, dass PROJECT_ROOT am Anfang von sys.path steht
|
|
||||||
if PROJECT_ROOT not in sys.path:
|
|
||||||
sys.path.insert(0, PROJECT_ROOT)
|
|
||||||
# DEBUG prints
|
|
||||||
print(f"DEBUG: PROJECT_ROOT = {PROJECT_ROOT}", file=sys.stderr)
|
|
||||||
print(f"DEBUG: sys.path = {sys.path}", file=sys.stderr)
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
print("Fehler: Nicht in einem Git-Repository. Kann notion_commit_hook nicht ausführen.", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import dev_session
|
from dev_session import append_blocks_to_notion_page, decimal_hours_to_hhmm
|
||||||
# Greife auf Funktionen über dev_session.function_name zu
|
except ImportError:
|
||||||
append_blocks_to_notion_page = dev_session.append_blocks_to_notion_page
|
print("Fehler: Konnte dev_session.py nicht importieren.", file=sys.stderr)
|
||||||
decimal_hours_to_hhmm = dev_session.decimal_hours_to_hhmm
|
|
||||||
except ImportError as e:
|
|
||||||
print(f"Fehler: Konnte dev_session.py nicht importieren. Stelle sicher, dass dev_session.py im Projekt-Root liegt. Details: {e}", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
SESSION_DIR = os.path.join(PROJECT_ROOT, ".dev_session")
|
SESSION_DIR = ".dev_session"
|
||||||
SESSION_FILE_PATH = os.path.join(SESSION_DIR, "SESSION_INFO")
|
SESSION_FILE_PATH = os.path.join(SESSION_DIR, "SESSION_INFO")
|
||||||
|
|
||||||
def get_last_commit_message() -> str:
|
def get_last_commit_message() -> str:
|
||||||
@@ -42,9 +31,18 @@ def get_last_commit_message() -> str:
|
|||||||
except (subprocess.CalledProcessError, FileNotFoundError):
|
except (subprocess.CalledProcessError, FileNotFoundError):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
def is_merge_commit() -> bool:
|
||||||
|
"""Prüft, ob der letzte Commit ein Merge-Commit ist."""
|
||||||
|
try:
|
||||||
|
result = subprocess.run(["git", "rev-parse", "--quiet", "--verify", "MERGE_HEAD"], capture_output=True, check=False)
|
||||||
|
return result.returncode == 0
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Hauptfunktion des Git-Hooks."""
|
"""Hauptfunktion des Git-Hooks."""
|
||||||
if not os.path.exists(SESSION_FILE_PATH):
|
# Führe den Hook nur aus, wenn eine aktive Session existiert und es kein Merge-Commit ist
|
||||||
|
if not os.path.exists(SESSION_FILE_PATH) or is_merge_commit():
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -67,7 +65,7 @@ def main():
|
|||||||
elapsed_time = datetime.now() - session_start_time
|
elapsed_time = datetime.now() - session_start_time
|
||||||
elapsed_hours = elapsed_time.total_seconds() / 3600
|
elapsed_hours = elapsed_time.total_seconds() / 3600
|
||||||
elapsed_hhmm = decimal_hours_to_hhmm(elapsed_hours)
|
elapsed_hhmm = decimal_hours_to_hhmm(elapsed_hours)
|
||||||
time_comment = f"⏱️ Arbeitszeit in dieser Session: {elapsed_hhmm}\\n"
|
time_comment = f"⏱️ Arbeitszeit in dieser Session: {elapsed_hhmm}\n"
|
||||||
|
|
||||||
report_content = f"✅ New Commit:\n{time_comment}---\n{commit_message}"
|
report_content = f"✅ New Commit:\n{time_comment}---\n{commit_message}"
|
||||||
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M')
|
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M')
|
||||||
@@ -92,7 +90,8 @@ def main():
|
|||||||
append_blocks_to_notion_page(token, task_id, notion_blocks)
|
append_blocks_to_notion_page(token, task_id, notion_blocks)
|
||||||
|
|
||||||
except (FileNotFoundError, json.JSONDecodeError):
|
except (FileNotFoundError, json.JSONDecodeError):
|
||||||
|
# Wenn die Datei nicht existiert oder fehlerhaft ist, einfach beenden
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user