Как добавить несколько задач в одну команду в Taskwarrior?

Как добавить несколько задач в одну команду в Taskwarrior?

Как добавить несколько задач в одну командную строку наTaskwarrior?

Я хотел бы добиться чего-то вроде:

task add task1 tag:tag1, task2 tag:tag2

Я думаю, что должен быть разделитель для разделения задач.

решение1

Если вам буквально нужно сделать это в одну строку, вы можете сделать так:

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

Здесь просто используется ;собственный токен оболочки.

решение2

Не знаю, интересно ли вам это еще. Я создал довольно быстрый скрипт оболочки bash, который подходил для моих целей в то время. Он спрашивает, хотите ли вы задать проект или тег(и) для задач, а затем быстро создает несколько новых задач. Использует довольно громкие цветовые сочетания, я думаю, что я только что открыл для себя метод "echo -e" в то время ;o)

Я искал сегодня и нашел ваш пост, потому что я хотел разработать скрипт для зависимостей, но похоже, что мне, возможно, придется изучить python; я также хочу сделать синхронизацию напоминаний Google. Если вы нашли хороший инструмент, то я был бы рад узнать, на каком решении вы остановились.

кр А


#!/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

решение3

Как отметил @Sardathrion в комментарии, это будет выглядеть так:

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

решение4

Надеюсь, это может кому-то помочь, вы можете использовать task importдля такого варианта использования. Из taskman-страницы:

       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

Итак, вы можете сделать что-то вроде этого:

$ 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.

Конечно, вы можете добавить любой атрибут по вашему желанию (теги, проект, UDA и т. д.). Схема JSON доступна здесь:https://taskwarrior.org/docs/design/task.html

Чтобы добавить задачи оптом, вы можете сначала создать файл со всей информацией, а затем просто передать его в task, или просто использовать Vim сзадачаwiki:)

Связанный контент