diff --git a/scripts/newproject b/scripts/newproject index 335af59..8a1cdc6 100755 --- a/scripts/newproject +++ b/scripts/newproject @@ -218,6 +218,28 @@ LICENSE=$(gum choose \ "None" \ --header "License type") +####################################### +# TickTick Integration +####################################### +echo "" +gum style --foreground 245 "Create setup tasks in TickTick?" + +TICKTICK_TASKS=$(gum choose \ + "Yes - Create project setup tasks" \ + "No" \ + --header "TickTick integration") + +####################################### +# Open in Obsidian +####################################### +echo "" +gum style --foreground 245 "Create project note in Obsidian?" + +OBSIDIAN_NOTE=$(gum choose \ + "Yes - Create note in ~/Notes/Projects/" \ + "No" \ + --header "Obsidian integration") + ####################################### # Confirm ####################################### @@ -236,7 +258,8 @@ Git: $GIT_INIT | Remote: $GIT_REMOTE Syncthing: $SYNCTHING_OPT Claude-mem: $CLAUDE_MEM Database: $DATABASE -License: $LICENSE" +License: $LICENSE +TickTick: $TICKTICK_TASKS | Obsidian: $OBSIDIAN_NOTE" if [ -n "$SUBDOMAIN" ]; then SUMMARY="$SUMMARY @@ -1008,6 +1031,92 @@ if [[ "$GIT_REMOTE" == *"GitHub"* ]]; then fi fi +####################################### +# TickTick Tasks +####################################### +if [[ "$TICKTICK_TASKS" == *"Yes"* ]]; then + PA_DIR="$HOME/Projects/personal-assistant" + if [ -d "$PA_DIR" ] && [ -f "$PA_DIR/venv/bin/python" ]; then + gum spin --spinner dot --title "Creating TickTick tasks..." -- sleep 0.5 + + # Create project setup tasks + ( + cd "$PA_DIR" + source venv/bin/activate + + # Create tasks for the new project + python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Set up development environment" --project "Inbox" 2>/dev/null || true + python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Review PROJECT_BRIEF.md and refine requirements" --project "Inbox" 2>/dev/null || true + python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Write first test" --project "Inbox" 2>/dev/null || true + python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Implement MVP" --project "Inbox" 2>/dev/null || true + ) 2>/dev/null + + TICKTICK_CREATED="Yes" + else + TICKTICK_CREATED="(PA not found)" + fi +fi + +####################################### +# Obsidian Note +####################################### +OBSIDIAN_NOTE_PATH="" +if [[ "$OBSIDIAN_NOTE" == *"Yes"* ]]; then + gum spin --spinner dot --title "Creating Obsidian note..." -- sleep 0.3 + + NOTES_DIR="$HOME/Notes/Projects" + mkdir -p "$NOTES_DIR" + + OBSIDIAN_NOTE_PATH="$NOTES_DIR/$PROJECT_NAME.md" + + cat > "$OBSIDIAN_NOTE_PATH" << OBSIDIAN_EOF +# $PROJECT_NAME + +$PROJECT_DESC + +## Quick Links + +- **Project**: [Open in Finder](file://$PROJECT_PATH) +- **CLAUDE.md**: [Open](file://$PROJECT_PATH/CLAUDE.md) +- **Project Brief**: [Open](file://$PROJECT_PATH/docs/PROJECT_BRIEF.md) +OBSIDIAN_EOF + + # Add repo links if available + if [ -n "$GITEA_URL" ] && [ "$GITEA_URL" != "(failed)" ]; then + echo "- **Gitea**: [$PROJECT_NAME]($GITEA_URL)" >> "$OBSIDIAN_NOTE_PATH" + fi + if [ -n "$GITHUB_URL" ] && [[ "$GITHUB_URL" != *"not installed"* ]]; then + echo "- **GitHub**: [$PROJECT_NAME]($GITHUB_URL)" >> "$OBSIDIAN_NOTE_PATH" + fi + if [ -n "$SUBDOMAIN" ]; then + echo "- **URL**: https://$SUBDOMAIN" >> "$OBSIDIAN_NOTE_PATH" + fi + + cat >> "$OBSIDIAN_NOTE_PATH" << OBSIDIAN_EOF2 + +## Project Brief + +$PROJECT_BRIEF + +## Tech Stack + +- **Type**: $PROJECT_TYPE +- **Database**: $DATABASE +- **License**: $LICENSE + +## Notes + + + +--- + +*Created $(date '+%Y-%m-%d') via newproject wizard* +OBSIDIAN_EOF2 + + # Open in Obsidian + open "obsidian://open?vault=Notes&file=Projects/$PROJECT_NAME" 2>/dev/null || true +fi + ####################################### # Success! ####################################### @@ -1045,4 +1154,14 @@ if [ -n "$SUBDOMAIN" ]; then echo " Subdomain: https://$SUBDOMAIN (configure Traefik)" fi +if [ -n "$TICKTICK_CREATED" ] && [ "$TICKTICK_CREATED" = "Yes" ]; then + echo "" + echo " ✅ TickTick tasks created (check Inbox)" +fi + +if [ -n "$OBSIDIAN_NOTE_PATH" ]; then + echo "" + echo " 📝 Obsidian note: ~/Notes/Projects/$PROJECT_NAME.md" +fi + echo ""