Go 언어로 Todoist의 CLI 클라이언트를 만들어 보았습니다.
Go 언어로 Todoist의 CLI 클라이언트를 만들어 보았습니다.
Todoist 라고 하는 Web 어플리케이션의 태스크 관리 툴을 사랑해 일년 정도 사용하고 있다.
이전에는 ddksr/cliist 을 사용하여 CLI로 조작할 수 있었지만, Todoist API의 버전 업에 수반해, 사용할 수 없게 되어 버렸다.
업데이트를 하는 것 같은데, 언제가 될지 기다리는 것도 귀찮고, Go 언어 만지고 싶었기 때문에 연습이 되면 새롭게 Todoist의 CLI 클라이언트를 만들어 보았으므로 소개.
작성 메모 같은 것은 또 이번 쓴다.
리포지토리
sachaos/todoist: Todoist CLI Client. I ❤️ Todoist and CLI.
사용법
작업 목록
$ todoist l
64302291 p1 #Movie A CLOCKWORK ORANGE
64302368 p1 #Movie The Shining
64302395 p1 #Movie Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb
64302507 p1 #Movie 2001:A Space Odyssey
64302581 p1 #Inbox Do something
64302602 p1 #Personal Read a book
64303204 p1 #Movie test movie
64303294 p1 #Personal something do
작업 만들기
$ todoist add "3 idiots"
작업 삭제
$ todoist list
...
64308215 p1 #Inbox 3 idiots
$ todoist close 64308215
데모 (with peco)
작업 추가
peco에서 프로젝트를 선택합니다.
작업 닫기
peco에서 작업 목록에서 선택하고 닫습니다.
peco와 결합하면 편리
간단한 부속 명령을 준비하고 있으므로 쉘 스크립트로 잘 조합해 주세요는 스탠스입니다. peco 사용하면 편해지고 생활이 촉촉해진다.
<C-x> t p: プロジェクト選択
<C-x> t l: ラベル選択
<C-x> t c: タスクを選択してクローズ
# todoist find project
function peco-todoist-project () {
local SELECTED_PROJECT="$(todoist projects | peco | head -n1 | cut -d ' ' -f 1)"
if [ -n "$SELECTED_PROJECT" ]; then
if [ -n "$LBUFFER" ]; then
local new_left="${LBUFFER%\ } $SELECTED_PROJECT"
else
local new_left="$SELECTED_PROJECT"
fi
BUFFER=${new_left}${RBUFFER}
CURSOR=${#new_left}
fi
}
zle -N peco-todoist-project
bindkey "^xtp" peco-todoist-project
# todoist find labels
function peco-todoist-labels () {
local SELECTED_LABELS="$(todoist labels | peco | cut -d ' ' -f 1 | tr '\n' ',' | sed -e 's/,$//')"
if [ -n "$SELECTED_LABELS" ]; then
if [ -n "$LBUFFER" ]; then
local new_left="${LBUFFER%\ } $SELECTED_LABELS"
else
local new_left="$SELECTED_LABELS"
fi
BUFFER=${new_left}${RBUFFER}
CURSOR=${#new_left}
fi
}
zle -N peco-todoist-labels
bindkey "^xtl" peco-todoist-labels
# todoist close
function peco-todoist-close() {
local SELECTED_ITEMS="$(todoist list | peco | cut -d ' ' -f 1 | tr '\n' ' ')"
if [ -n "$SELECTED_ITEMS" ]; then
BUFFER="todoist close $(echo "$SELECTED_ITEMS" | tr '\n' ' ')"
CURSOR=$#BUFFER
fi
zle accept-line
}
zle -N peco-todoist-close
bindkey "^xtc" peco-todoist-close
작은 느낌
Go 언어, 여러가지 스스로 고리고리 쓰지 않으면 안 되는 부분이 있으면서도, 주변 툴이 매우 갖추어져 있어 개발하기 쉽다고 생각했습니다.
Reference
이 문제에 관하여(Go 언어로 Todoist의 CLI 클라이언트를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sachaos/items/1679d736e9802cb5e6cd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
작업 목록
$ todoist l
64302291 p1 #Movie A CLOCKWORK ORANGE
64302368 p1 #Movie The Shining
64302395 p1 #Movie Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb
64302507 p1 #Movie 2001:A Space Odyssey
64302581 p1 #Inbox Do something
64302602 p1 #Personal Read a book
64303204 p1 #Movie test movie
64303294 p1 #Personal something do
작업 만들기
$ todoist add "3 idiots"
작업 삭제
$ todoist list
...
64308215 p1 #Inbox 3 idiots
$ todoist close 64308215
데모 (with peco)
작업 추가
peco에서 프로젝트를 선택합니다.
작업 닫기
peco에서 작업 목록에서 선택하고 닫습니다.
peco와 결합하면 편리
간단한 부속 명령을 준비하고 있으므로 쉘 스크립트로 잘 조합해 주세요는 스탠스입니다. peco 사용하면 편해지고 생활이 촉촉해진다.
<C-x> t p: プロジェクト選択
<C-x> t l: ラベル選択
<C-x> t c: タスクを選択してクローズ
# todoist find project
function peco-todoist-project () {
local SELECTED_PROJECT="$(todoist projects | peco | head -n1 | cut -d ' ' -f 1)"
if [ -n "$SELECTED_PROJECT" ]; then
if [ -n "$LBUFFER" ]; then
local new_left="${LBUFFER%\ } $SELECTED_PROJECT"
else
local new_left="$SELECTED_PROJECT"
fi
BUFFER=${new_left}${RBUFFER}
CURSOR=${#new_left}
fi
}
zle -N peco-todoist-project
bindkey "^xtp" peco-todoist-project
# todoist find labels
function peco-todoist-labels () {
local SELECTED_LABELS="$(todoist labels | peco | cut -d ' ' -f 1 | tr '\n' ',' | sed -e 's/,$//')"
if [ -n "$SELECTED_LABELS" ]; then
if [ -n "$LBUFFER" ]; then
local new_left="${LBUFFER%\ } $SELECTED_LABELS"
else
local new_left="$SELECTED_LABELS"
fi
BUFFER=${new_left}${RBUFFER}
CURSOR=${#new_left}
fi
}
zle -N peco-todoist-labels
bindkey "^xtl" peco-todoist-labels
# todoist close
function peco-todoist-close() {
local SELECTED_ITEMS="$(todoist list | peco | cut -d ' ' -f 1 | tr '\n' ' ')"
if [ -n "$SELECTED_ITEMS" ]; then
BUFFER="todoist close $(echo "$SELECTED_ITEMS" | tr '\n' ' ')"
CURSOR=$#BUFFER
fi
zle accept-line
}
zle -N peco-todoist-close
bindkey "^xtc" peco-todoist-close
작은 느낌
Go 언어, 여러가지 스스로 고리고리 쓰지 않으면 안 되는 부분이 있으면서도, 주변 툴이 매우 갖추어져 있어 개발하기 쉽다고 생각했습니다.
Reference
이 문제에 관하여(Go 언어로 Todoist의 CLI 클라이언트를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sachaos/items/1679d736e9802cb5e6cd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
간단한 부속 명령을 준비하고 있으므로 쉘 스크립트로 잘 조합해 주세요는 스탠스입니다. peco 사용하면 편해지고 생활이 촉촉해진다.
<C-x> t p: プロジェクト選択
<C-x> t l: ラベル選択
<C-x> t c: タスクを選択してクローズ
# todoist find project
function peco-todoist-project () {
local SELECTED_PROJECT="$(todoist projects | peco | head -n1 | cut -d ' ' -f 1)"
if [ -n "$SELECTED_PROJECT" ]; then
if [ -n "$LBUFFER" ]; then
local new_left="${LBUFFER%\ } $SELECTED_PROJECT"
else
local new_left="$SELECTED_PROJECT"
fi
BUFFER=${new_left}${RBUFFER}
CURSOR=${#new_left}
fi
}
zle -N peco-todoist-project
bindkey "^xtp" peco-todoist-project
# todoist find labels
function peco-todoist-labels () {
local SELECTED_LABELS="$(todoist labels | peco | cut -d ' ' -f 1 | tr '\n' ',' | sed -e 's/,$//')"
if [ -n "$SELECTED_LABELS" ]; then
if [ -n "$LBUFFER" ]; then
local new_left="${LBUFFER%\ } $SELECTED_LABELS"
else
local new_left="$SELECTED_LABELS"
fi
BUFFER=${new_left}${RBUFFER}
CURSOR=${#new_left}
fi
}
zle -N peco-todoist-labels
bindkey "^xtl" peco-todoist-labels
# todoist close
function peco-todoist-close() {
local SELECTED_ITEMS="$(todoist list | peco | cut -d ' ' -f 1 | tr '\n' ' ')"
if [ -n "$SELECTED_ITEMS" ]; then
BUFFER="todoist close $(echo "$SELECTED_ITEMS" | tr '\n' ' ')"
CURSOR=$#BUFFER
fi
zle accept-line
}
zle -N peco-todoist-close
bindkey "^xtc" peco-todoist-close
작은 느낌
Go 언어, 여러가지 스스로 고리고리 쓰지 않으면 안 되는 부분이 있으면서도, 주변 툴이 매우 갖추어져 있어 개발하기 쉽다고 생각했습니다.
Reference
이 문제에 관하여(Go 언어로 Todoist의 CLI 클라이언트를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sachaos/items/1679d736e9802cb5e6cd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Go 언어로 Todoist의 CLI 클라이언트를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sachaos/items/1679d736e9802cb5e6cd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)