mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Commands - import
- Migrated handleImport to CmdImport.
This commit is contained in:
parent
4603bdb509
commit
a7d5641d00
9 changed files with 123 additions and 86 deletions
|
@ -44,7 +44,6 @@ set (task_SRCS API.cpp API.h
|
||||||
dependency.cpp
|
dependency.cpp
|
||||||
feedback.cpp
|
feedback.cpp
|
||||||
i18n.h
|
i18n.h
|
||||||
import.cpp
|
|
||||||
interactive.cpp
|
interactive.cpp
|
||||||
recur.cpp
|
recur.cpp
|
||||||
report.cpp
|
report.cpp
|
||||||
|
|
|
@ -132,7 +132,6 @@ void Cmd::load ()
|
||||||
commands.push_back ("calendar");
|
commands.push_back ("calendar");
|
||||||
commands.push_back ("delete");
|
commands.push_back ("delete");
|
||||||
commands.push_back ("done");
|
commands.push_back ("done");
|
||||||
commands.push_back ("import");
|
|
||||||
commands.push_back ("timesheet");
|
commands.push_back ("timesheet");
|
||||||
commands.push_back ("undo");
|
commands.push_back ("undo");
|
||||||
commands.push_back ("merge");
|
commands.push_back ("merge");
|
||||||
|
@ -210,7 +209,6 @@ bool Cmd::isWriteCommand ()
|
||||||
if (command == "merge" ||
|
if (command == "merge" ||
|
||||||
command == "delete" ||
|
command == "delete" ||
|
||||||
command == "done" ||
|
command == "done" ||
|
||||||
command == "import" ||
|
|
||||||
command == "pull" ||
|
command == "pull" ||
|
||||||
command == "undo")
|
command == "undo")
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -253,7 +253,6 @@ int Context::dispatch (std::string &out)
|
||||||
else if (cmd.command == "timesheet") { rc = handleReportTimesheet (out); }
|
else if (cmd.command == "timesheet") { rc = handleReportTimesheet (out); }
|
||||||
else if (cmd.command == "done") { rc = handleDone (out); }
|
else if (cmd.command == "done") { rc = handleDone (out); }
|
||||||
else if (cmd.command == "delete") { rc = handleDelete (out); }
|
else if (cmd.command == "delete") { rc = handleDelete (out); }
|
||||||
else if (cmd.command == "import") { rc = handleImport (out); }
|
|
||||||
else if (cmd.command == "undo") { handleUndo ( ); }
|
else if (cmd.command == "undo") { handleUndo ( ); }
|
||||||
else if (cmd.command == "merge") { tdb.gc ();
|
else if (cmd.command == "merge") { tdb.gc ();
|
||||||
handleMerge (out); }
|
handleMerge (out); }
|
||||||
|
|
|
@ -23,6 +23,7 @@ set (commands_SRCS Command.cpp Command.h
|
||||||
CmdHelp.cpp CmdHelp.h
|
CmdHelp.cpp CmdHelp.h
|
||||||
CmdHistory.cpp CmdHistory.h
|
CmdHistory.cpp CmdHistory.h
|
||||||
CmdIDs.cpp CmdIDs.h
|
CmdIDs.cpp CmdIDs.h
|
||||||
|
CmdImport.cpp CmdImport.h
|
||||||
CmdInfo.cpp CmdInfo.h
|
CmdInfo.cpp CmdInfo.h
|
||||||
CmdInstall.cpp CmdInstall.h
|
CmdInstall.cpp CmdInstall.h
|
||||||
CmdLog.cpp CmdLog.h
|
CmdLog.cpp CmdLog.h
|
||||||
|
|
|
@ -123,26 +123,6 @@ int CmdHelp::execute (const std::string&, std::string& output)
|
||||||
view.set (row, 1, "task calendar [due|month year|year]");
|
view.set (row, 1, "task calendar [due|month year|year]");
|
||||||
view.set (row, 2, "Shows a calendar, with due tasks marked.");
|
view.set (row, 2, "Shows a calendar, with due tasks marked.");
|
||||||
|
|
||||||
row = view.addRow ();
|
|
||||||
view.set (row, 1, "task import");
|
|
||||||
view.set (row, 2, "Imports tasks from a variety of formats.");
|
|
||||||
|
|
||||||
row = view.addRow ();
|
|
||||||
view.set (row, 1, "task export");
|
|
||||||
view.set (row, 2, "Lists all tasks in CSV format. Alias to export.csv");
|
|
||||||
|
|
||||||
row = view.addRow ();
|
|
||||||
view.set (row, 1, "task export.csv");
|
|
||||||
view.set (row, 2, "Lists all tasks in CSV format.");
|
|
||||||
|
|
||||||
row = view.addRow ();
|
|
||||||
view.set (row, 1, "task export.ical");
|
|
||||||
view.set (row, 2, "Lists all tasks in iCalendar format.");
|
|
||||||
|
|
||||||
row = view.addRow ();
|
|
||||||
view.set (row, 1, "task export.yaml");
|
|
||||||
view.set (row, 2, "Lists all tasks in YAML format.");
|
|
||||||
|
|
||||||
row = view.addRow ();
|
row = view.addRow ();
|
||||||
view.set (row, 1, "task merge URL");
|
view.set (row, 1, "task merge URL");
|
||||||
view.set (row, 2, "Merges the specified undo.data file with the local data files.");
|
view.set (row, 2, "Merges the specified undo.data file with the local data files.");
|
||||||
|
|
|
@ -24,35 +24,29 @@
|
||||||
// USA
|
// USA
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
#include <iostream>
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <stdio.h>
|
#include <Context.h>
|
||||||
#include <unistd.h>
|
#include <Transport.h>
|
||||||
#include <Nibbler.h>
|
|
||||||
#include <File.h>
|
|
||||||
#include <Date.h>
|
|
||||||
#include <text.h>
|
#include <text.h>
|
||||||
#include <util.h>
|
#include <util.h>
|
||||||
#include <main.h>
|
#include <main.h>
|
||||||
#include <Transport.h>
|
#include <CmdImport.h>
|
||||||
|
|
||||||
extern Context context;
|
extern Context context;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
enum fileType
|
CmdImport::CmdImport ()
|
||||||
{
|
{
|
||||||
not_a_clue,
|
_keyword = "import";
|
||||||
task_1_4_3,
|
_usage = "task import <file>";
|
||||||
task_1_5_0,
|
_description = "Imports tasks from a variety of formats.";
|
||||||
task_1_6_0,
|
_read_only = false;
|
||||||
task_cmd_line,
|
_displays_id = false;
|
||||||
todo_sh_2_0,
|
}
|
||||||
csv,
|
|
||||||
yaml,
|
|
||||||
text
|
|
||||||
};
|
|
||||||
|
|
||||||
static fileType determineFileType (const std::vector <std::string>& lines)
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
CmdImport::fileType CmdImport::determineFileType (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
// '7f7a4191-c2f2-487f-8855-7a1eb378c267',' ...
|
// '7f7a4191-c2f2-487f-8855-7a1eb378c267',' ...
|
||||||
// ....:....|....:....|....:....|....:....|
|
// ....:....|....:....|....:....|....:....|
|
||||||
|
@ -69,15 +63,15 @@ static fileType determineFileType (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
if (lines[0] == "'uuid','status','tags','entry','start','due','recur',"
|
if (lines[0] == "'uuid','status','tags','entry','start','due','recur',"
|
||||||
"'end','project','priority','fg','bg','description'")
|
"'end','project','priority','fg','bg','description'")
|
||||||
return task_1_6_0;
|
return type_task_1_6_0;
|
||||||
|
|
||||||
if (lines[0] == "'id','uuid','status','tags','entry','start','due','recur',"
|
if (lines[0] == "'id','uuid','status','tags','entry','start','due','recur',"
|
||||||
"'end','project','priority','fg','bg','description'")
|
"'end','project','priority','fg','bg','description'")
|
||||||
return task_1_5_0;
|
return type_task_1_5_0;
|
||||||
|
|
||||||
if (lines[0] == "'id','status','tags','entry','start','due','end','project',"
|
if (lines[0] == "'id','status','tags','entry','start','due','end','project',"
|
||||||
"'priority','fg','bg','description'")
|
"'priority','fg','bg','description'")
|
||||||
return task_1_4_3;
|
return type_task_1_4_3;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((lines.size () > 2 &&
|
if ((lines.size () > 2 &&
|
||||||
|
@ -90,7 +84,7 @@ static fileType determineFileType (const std::vector <std::string>& lines)
|
||||||
lines[2].find ("task:") != std::string::npos ||
|
lines[2].find ("task:") != std::string::npos ||
|
||||||
lines[3].find ("task:") != std::string::npos)))
|
lines[3].find ("task:") != std::string::npos)))
|
||||||
{
|
{
|
||||||
return yaml;
|
return type_yaml;
|
||||||
}
|
}
|
||||||
|
|
||||||
// A task command line might include a priority or project.
|
// A task command line might include a priority or project.
|
||||||
|
@ -111,7 +105,7 @@ static fileType determineFileType (const std::vector <std::string>& lines)
|
||||||
words[w].substr (0, 6) == "proje:" ||
|
words[w].substr (0, 6) == "proje:" ||
|
||||||
words[w].substr (0, 5) == "proj:" ||
|
words[w].substr (0, 5) == "proj:" ||
|
||||||
words[w].substr (0, 4) == "pro:")
|
words[w].substr (0, 4) == "pro:")
|
||||||
return task_cmd_line;
|
return type_task_cmd_line;
|
||||||
}
|
}
|
||||||
|
|
||||||
// x 2009-03-25 Walk the dog +project @context
|
// x 2009-03-25 Walk the dog +project @context
|
||||||
|
@ -133,7 +127,7 @@ static fileType determineFileType (const std::vector <std::string>& lines)
|
||||||
lines[i][9] == '-' &&
|
lines[i][9] == '-' &&
|
||||||
isdigit (lines[i][10]) &&
|
isdigit (lines[i][10]) &&
|
||||||
isdigit (lines[i][11]))
|
isdigit (lines[i][11]))
|
||||||
return todo_sh_2_0;
|
return type_todo_sh_2_0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector <std::string> words;
|
std::vector <std::string> words;
|
||||||
|
@ -144,13 +138,13 @@ static fileType determineFileType (const std::vector <std::string>& lines)
|
||||||
if (words[w].length () > 1 &&
|
if (words[w].length () > 1 &&
|
||||||
words[w][0] == '+' &&
|
words[w][0] == '+' &&
|
||||||
!isspace (words[w][1]))
|
!isspace (words[w][1]))
|
||||||
return todo_sh_2_0;
|
return type_todo_sh_2_0;
|
||||||
|
|
||||||
// @context
|
// @context
|
||||||
if (words[w].length () > 1 &&
|
if (words[w].length () > 1 &&
|
||||||
words[w][0] == '@' &&
|
words[w][0] == '@' &&
|
||||||
!isspace (words[w][1]))
|
!isspace (words[w][1]))
|
||||||
return todo_sh_2_0;
|
return type_todo_sh_2_0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,17 +160,17 @@ static fileType determineFileType (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (commas_on_every_line)
|
if (commas_on_every_line)
|
||||||
return csv;
|
return type_csv;
|
||||||
|
|
||||||
// Looks like 'text' is the default case, if there is any data at all.
|
// Looks like 'text' is the default case, if there is any data at all.
|
||||||
if (lines.size () >= 1)
|
if (lines.size () >= 1)
|
||||||
return text;
|
return type_text;
|
||||||
|
|
||||||
return not_a_clue;
|
return type_not_a_clue;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static void decorateTask (Task& task)
|
void CmdImport::decorateTask (Task& task)
|
||||||
{
|
{
|
||||||
if (!task.has ("entry"))
|
if (!task.has ("entry"))
|
||||||
{
|
{
|
||||||
|
@ -208,7 +202,7 @@ static void decorateTask (Task& task)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importTask_1_4_3 (const std::vector <std::string>& lines)
|
std::string CmdImport::task_1_4_3 (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
|
|
||||||
|
@ -364,7 +358,7 @@ static std::string importTask_1_4_3 (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importTask_1_5_0 (const std::vector <std::string>& lines)
|
std::string CmdImport::task_1_5_0 (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
|
|
||||||
|
@ -525,7 +519,7 @@ static std::string importTask_1_5_0 (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importTask_1_6_0 (const std::vector <std::string>& lines)
|
std::string CmdImport::task_1_6_0 (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
|
|
||||||
|
@ -687,7 +681,7 @@ static std::string importTask_1_6_0 (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importTaskCmdLine (const std::vector <std::string>& lines)
|
std::string CmdImport::taskCmdLine (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
std::string unused;
|
std::string unused;
|
||||||
|
@ -735,7 +729,7 @@ static std::string importTaskCmdLine (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importTodoSh_2_0 (const std::vector <std::string>& lines)
|
std::string CmdImport::todoSh_2_0 (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
|
|
||||||
|
@ -862,7 +856,7 @@ static std::string importTodoSh_2_0 (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importText (const std::vector <std::string>& lines)
|
std::string CmdImport::text (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -926,7 +920,7 @@ static std::string importText (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importCSV (const std::vector <std::string>& lines)
|
std::string CmdImport::CSV (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
std::vector <std::string> failed;
|
std::vector <std::string> failed;
|
||||||
|
|
||||||
|
@ -1171,7 +1165,7 @@ static std::string importCSV (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static std::string importYAML (const std::vector <std::string>& lines)
|
std::string CmdImport::YAML (const std::vector <std::string>& lines)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
|
@ -1285,7 +1279,7 @@ static std::string importYAML (const std::vector <std::string>& lines)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int handleImport (std::string& outs)
|
int CmdImport::execute (const std::string&, std::string& output)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
std::stringstream out;
|
std::stringstream out;
|
||||||
|
@ -1331,15 +1325,15 @@ int handleImport (std::string& outs)
|
||||||
std::string identifier;
|
std::string identifier;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case task_1_4_3: identifier = "This looks like an older taskwarrior export file."; break;
|
case type_task_1_4_3: identifier = "This looks like an older taskwarrior export file."; break;
|
||||||
case task_1_5_0: identifier = "This looks like a recent taskwarrior export file."; break;
|
case type_task_1_5_0: identifier = "This looks like a recent taskwarrior export file."; break;
|
||||||
case task_1_6_0: identifier = "This looks like a current taskwarrior export file."; break;
|
case type_task_1_6_0: identifier = "This looks like a current taskwarrior export file."; break;
|
||||||
case task_cmd_line: identifier = "This looks like taskwarrior command line arguments."; break;
|
case type_task_cmd_line: identifier = "This looks like taskwarrior command line arguments."; break;
|
||||||
case todo_sh_2_0: identifier = "This looks like a todo.sh 2.x file."; break;
|
case type_todo_sh_2_0: identifier = "This looks like a todo.sh 2.x file."; break;
|
||||||
case csv: identifier = "This looks like a CSV file, but not a taskwarrior export file."; break;
|
case type_csv: identifier = "This looks like a CSV file, but not a taskwarrior export file."; break;
|
||||||
case yaml: identifier = "This looks like a YAML file."; break;
|
case type_yaml: identifier = "This looks like a YAML file."; break;
|
||||||
case text: identifier = "This looks like a text file with one task per line."; break;
|
case type_text: identifier = "This looks like a text file with one task per line."; break;
|
||||||
case not_a_clue:
|
case type_not_a_clue:
|
||||||
throw std::string ("Taskwarrior cannot determine which type of file "
|
throw std::string ("Taskwarrior cannot determine which type of file "
|
||||||
"this is, and cannot proceed.");
|
"this is, and cannot proceed.");
|
||||||
}
|
}
|
||||||
|
@ -1352,15 +1346,15 @@ int handleImport (std::string& outs)
|
||||||
// Determine which type it might be, then attempt an import.
|
// Determine which type it might be, then attempt an import.
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case task_1_4_3: out << importTask_1_4_3 (lines); break;
|
case type_task_1_4_3: out << task_1_4_3 (lines); break;
|
||||||
case task_1_5_0: out << importTask_1_5_0 (lines); break;
|
case type_task_1_5_0: out << task_1_5_0 (lines); break;
|
||||||
case task_1_6_0: out << importTask_1_6_0 (lines); break;
|
case type_task_1_6_0: out << task_1_6_0 (lines); break;
|
||||||
case task_cmd_line: out << importTaskCmdLine (lines); break;
|
case type_task_cmd_line: out << taskCmdLine (lines); break;
|
||||||
case todo_sh_2_0: out << importTodoSh_2_0 (lines); break;
|
case type_todo_sh_2_0: out << todoSh_2_0 (lines); break;
|
||||||
case csv: out << importCSV (lines); break;
|
case type_csv: out << CSV (lines); break;
|
||||||
case yaml: out << importYAML (lines); break;
|
case type_yaml: out << YAML (lines); break;
|
||||||
case text: out << importText (lines); break;
|
case type_text: out << text (lines); break;
|
||||||
case not_a_clue: /* to stop the compiler from complaining. */ break;
|
case type_not_a_clue: /* to stop the compiler from complaining. */ break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tmpfile != "")
|
if (tmpfile != "")
|
||||||
|
@ -1369,7 +1363,7 @@ int handleImport (std::string& outs)
|
||||||
else
|
else
|
||||||
throw std::string ("You must specify a file to import.");
|
throw std::string ("You must specify a file to import.");
|
||||||
|
|
||||||
outs = out.str ();
|
output = out.str ();
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
67
src/commands/CmdImport.h
Normal file
67
src/commands/CmdImport.h
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// taskwarrior - a command line task list manager.
|
||||||
|
//
|
||||||
|
// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
|
// the terms of the GNU General Public License as published by the Free Software
|
||||||
|
// Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
// version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
// details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with
|
||||||
|
// this program; if not, write to the
|
||||||
|
//
|
||||||
|
// Free Software Foundation, Inc.,
|
||||||
|
// 51 Franklin Street, Fifth Floor,
|
||||||
|
// Boston, MA
|
||||||
|
// 02110-1301
|
||||||
|
// USA
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
#ifndef INCLUDED_CMDIMPORT
|
||||||
|
#define INCLUDED_CMDIMPORT
|
||||||
|
#define L10N // Localization complete.
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <Command.h>
|
||||||
|
|
||||||
|
class CmdImport : public Command
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CmdImport ();
|
||||||
|
int execute (const std::string&, std::string&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
enum fileType
|
||||||
|
{
|
||||||
|
type_not_a_clue,
|
||||||
|
type_task_1_4_3,
|
||||||
|
type_task_1_5_0,
|
||||||
|
type_task_1_6_0,
|
||||||
|
type_task_cmd_line,
|
||||||
|
type_todo_sh_2_0,
|
||||||
|
type_csv,
|
||||||
|
type_yaml,
|
||||||
|
type_text
|
||||||
|
};
|
||||||
|
|
||||||
|
fileType determineFileType (const std::vector <std::string>&);
|
||||||
|
void decorateTask (Task&);
|
||||||
|
std::string task_1_4_3 (const std::vector <std::string>&);
|
||||||
|
std::string task_1_5_0 (const std::vector <std::string>&);
|
||||||
|
std::string task_1_6_0 (const std::vector <std::string>&);
|
||||||
|
std::string taskCmdLine (const std::vector <std::string>&);
|
||||||
|
std::string todoSh_2_0 (const std::vector <std::string>&);
|
||||||
|
std::string text (const std::vector <std::string>&);
|
||||||
|
std::string CSV (const std::vector <std::string>&);
|
||||||
|
std::string YAML (const std::vector <std::string>&);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
|
@ -45,6 +45,7 @@
|
||||||
#include <CmdHelp.h>
|
#include <CmdHelp.h>
|
||||||
#include <CmdHistory.h>
|
#include <CmdHistory.h>
|
||||||
#include <CmdIDs.h>
|
#include <CmdIDs.h>
|
||||||
|
#include <CmdImport.h>
|
||||||
#include <CmdInfo.h>
|
#include <CmdInfo.h>
|
||||||
#include <CmdInstall.h>
|
#include <CmdInstall.h>
|
||||||
#include <CmdLog.h>
|
#include <CmdLog.h>
|
||||||
|
@ -98,6 +99,7 @@ void Command::factory (std::map <std::string, Command*>& all)
|
||||||
c = new CmdHistoryMonthly (); all[c->keyword ()] = c;
|
c = new CmdHistoryMonthly (); all[c->keyword ()] = c;
|
||||||
c = new CmdHistoryAnnual (); all[c->keyword ()] = c;
|
c = new CmdHistoryAnnual (); all[c->keyword ()] = c;
|
||||||
c = new CmdIDs (); all[c->keyword ()] = c;
|
c = new CmdIDs (); all[c->keyword ()] = c;
|
||||||
|
c = new CmdImport (); all[c->keyword ()] = c;
|
||||||
c = new CmdInfo (); all[c->keyword ()] = c;
|
c = new CmdInfo (); all[c->keyword ()] = c;
|
||||||
c = new CmdInstall (); all[c->keyword ()] = c;
|
c = new CmdInstall (); all[c->keyword ()] = c;
|
||||||
c = new CmdLog (); all[c->keyword ()] = c;
|
c = new CmdLog (); all[c->keyword ()] = c;
|
||||||
|
|
|
@ -84,9 +84,6 @@ std::string colorizeHeader (const std::string&);
|
||||||
std::string colorizeFootnote (const std::string&);
|
std::string colorizeFootnote (const std::string&);
|
||||||
std::string colorizeDebug (const std::string&);
|
std::string colorizeDebug (const std::string&);
|
||||||
|
|
||||||
// import.cpp
|
|
||||||
int handleImport (std::string&);
|
|
||||||
|
|
||||||
// dependency.cpp
|
// dependency.cpp
|
||||||
bool dependencyIsBlocked (const Task&);
|
bool dependencyIsBlocked (const Task&);
|
||||||
void dependencyGetBlocked (const Task&, std::vector <Task>&);
|
void dependencyGetBlocked (const Task&, std::vector <Task>&);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue