Skip to content

feat: 標準入力対応を実装 - #23

Merged
karimiku merged 1 commit into
mainfrom
feat/stdin-input
Jan 16, 2026
Merged

karimiku merged 1 commit into
mainfrom
feat/stdin-input

Conversation

@karimiku

Copy link
Copy Markdown
Owner

概要

パイプやヒアドキュメントからタスクを追加できるように、標準入力対応を実装しました。

関連Issue

Closes #9

変更内容

新規関数

  • readFromStdin() 関数
    • os.Stdin.Stat() で標準入力の状態を確認
    • パイプの場合のみ読み取り
    • bufio.Scanner で複数行を読み取り
    • 改行を保持して結合

既存ファイルの更新

  • commands/add.go
    • Run() 関数を更新
    • 引数がある場合: 引数を優先
    • 引数がない場合: 標準入力から読み取り
    • 空入力時はエラーメッセージを表示
    • quietモードと組み合わせ可能

使用例

# パイプで追加
echo "タスク" | todo add
# 出力: 追加: タスク

# ヒアドキュメント(複数行)
todo add <<EOF
# データベース最適化

## 背景
検索が遅い

## 実施内容
1. インデックス追加
EOF

# quietと組み合わせ
echo "タスク" | todo add -q
# 出力なし

# AIによる使用例
cat << 'TASK' | todo add --quiet
# ユーザー認証の強化

## 背景
セキュリティ要件の変更

## 実施内容
1. MFA実装
2. パスワードポリシー更新
3. セッション管理の見直し
TASK

テスト方法

# ユニットテスト
go test ./internal/commands/...

# 動作確認(パイプ)
echo "パイプからのタスク" | go run ./cmd/todo add

# 動作確認(ヒアドキュメント)
go run ./cmd/todo add <<EOF
複数行の
タスク
EOF

# タスクが追加されたか確認
go run ./cmd/todo list

受け入れ基準

  • echo "タスク" | todo add が動作する
  • 複数行のヒアドキュメントが正しく保存される
  • 空入力時はエラーメッセージが表示される
  • 引数がある場合は引数が優先される
  • --quiet と組み合わせて使える

チェックリスト

  • テストを追加・更新した
  • ドキュメントを更新した(必要な場合)
  • ローカルでテストが通ることを確認した
  • コードフォーマットを確認した(go fmt)
  • リントエラーがないことを確認した

パイプやヒアドキュメントからタスクを追加できるように、標準入力対応を実装しました。

実装内容:
- readFromStdin() 関数を追加
  - os.Stdin.Stat() で標準入力の状態を確認
  - パイプの場合のみ読み取り
  - bufio.Scanner で複数行を読み取り
  - 改行を保持して結合
- commands/add.go の Run() を更新
  - 引数がある場合: 引数を優先
  - 引数がない場合: 標準入力から読み取り
  - 空入力時はエラーメッセージを表示
- quietモードと組み合わせ可能

使用例:
  # パイプで追加
  echo "タスク" | todo add

  # ヒアドキュメント(複数行)
  todo add <<EOF
  # データベース最適化

  ## 背景
  検索が遅い

  ## 実施内容
  1. インデックス追加
  EOF

  # quietと組み合わせ
  echo "タスク" | todo add -q

受け入れ基準:
✅ echo "タスク" | todo add が動作する
✅ 複数行のヒアドキュメントが正しく保存される
✅ 空入力時はエラーメッセージが表示される
✅ 引数がある場合は引数が優先される
✅ --quiet と組み合わせて使える

Closes #9
@karimiku
karimiku merged commit 72b1354 into main Jan 16, 2026
2 checks passed
@karimiku
karimiku deleted the feat/stdin-input branch January 16, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[v2] 標準入力対応の実装

1 participant