Como adicionar várias tarefas em um comando no Taskwarrior?

Como adicionar várias tarefas em um comando no Taskwarrior?

Como posso adicionar várias tarefas em uma linha de comandoGuerreiro de Tarefas?

Eu gostaria de conseguir algo como:

task add task1 tag:tag1, task2 tag:tag2

Acho que deveria haver um delimitador para separar tarefas.

Responder1

Se você literalmente só precisa fazer isso em uma linha, você poderia fazer:

task add "Get some foo"; task add "Get some bar"

Isso usa apenas o ;token nativo do shell.

Responder2

Não sei se você ainda está interessado nisso. Criei um script bash shell bastante rápido que atendeu aos meus propósitos na época. Ele pergunta se você deseja definir um projeto ou tags para as tarefas e cria rapidamente várias novas tarefas. Usa algumas combinações de cores bastante chamativas, acho que acabei de descobrir o método "echo -e" na época; o)

Eu estava pesquisando hoje e encontrei sua postagem porque queria desenvolver o script para fazer dependências, mas parece que preciso aprender python; Também quero sincronizar alguns lembretes do Google. Se você encontrou uma boa ferramenta, ficarei feliz em saber qual solução você escolheu.

kr A


#!/bin/bash

#  Script:  twmulti
#  Created: 2016.02.11
#  Current: ~/Bin

#   clear the variables just in case a recent session set them
PRJNAME=""
TAGNAME=""
TSKNAME=""

clear

echo -e "\e[1;33;41mENTER PROJECT NAME >\e[0;m" 
read PRJNAME
if [ -z $PRJNAME ] ; then PRJNAME="" ; fi

echo -e "\n\e[1;33;41mENTER ANY TAG(S)  >\e[0;m" 
read TEMPTAGNAME
TAGNAME="+"`echo $TEMPTAGNAME | sed 's/ / +/g'`
if [ -z $TEMPTAGNAME ] ; then TAGNAME=""; fi

while :
do
    clear 
    echo -e "\e[1;33;41mENTER TASK DESCRIPTION (Project:$PRJNAME) >\e[0;m"
    echo -e "\e[1;33;41mor enter again to quit\e[0;m"
    read TSKNAME
        if [ -z $TSKNAME ] ; then exit ; fi 
        task add project\:$PRJNAME $TAGNAME $TSKNAME 1>/dev/null
    echo -e "\e[0;m"
done

Responder3

Como @Sardathrion apontou no comentário, ficaria assim:

for i in "task 1" "task 2" "task 3"; do task add "$i"; done

Responder4

Esperando que isso possa ajudar alguém, você pode usar task importesse caso. Na taskpágina de manual de:

       task import [<file> ...]
              Imports tasks in the JSON format.  Can be used to add new tasks, or update existing ones.  Tasks are identified by their UUID.

              If no file or "-" is specified, import tasks from STDIN.

              Setting rc.recurrence.confirmation to an appropriate level is recommended if import is to be used in automated workflows.  See taskrc(5).

              For importing other file formats, the standard task release comes with a few example scripts, such as:

                import-todo.sh.pl
                import-yaml.pl

Então, você pode algo assim:

$ echo '[{"description":"task1"},{"description":"task2"}]' |task import -
Importing 'STDIN'
 add  bfc337ce-b446-453d-8cfe-c570bc1b5f03 task1
 add  556a737c-11f3-4a21-a872-67e56b75cdc4 task2
Imported 2 tasks.

Claro que você pode adicionar qualquer atributo que desejar (tags, projeto, UDA, etc). O esquema JSON está disponível aqui:https://taskwarrior.org/docs/design/task.html

Para adicionar tarefas em massa você pode criar primeiro um arquivo com todas as informações e depois alimentá-lo task, ou apenas usar o Vim comtarefawiki:)

informação relacionada