summaryrefslogtreecommitdiffstats
path: root/bin/domain/imag-timetrack/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bin/domain/imag-timetrack/src/main.rs')
-rw-r--r--bin/domain/imag-timetrack/src/main.rs93
1 files changed, 93 insertions, 0 deletions
diff --git a/bin/domain/imag-timetrack/src/main.rs b/bin/domain/imag-timetrack/src/main.rs
new file mode 100644
index 00000000..7546e6b9
--- /dev/null
+++ b/bin/domain/imag-timetrack/src/main.rs
@@ -0,0 +1,93 @@
+//
+// imag - the personal information management suite for the commandline
+// Copyright (C) 2015, 2016 Matthias Beyer <mail@beyermatthias.de> and contributors
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; version
+// 2.1 of the License.
+//
+// This library 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
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#[macro_use]
+extern crate log;
+
+#[macro_use]
+extern crate version;
+
+extern crate clap;
+extern crate semver;
+extern crate toml;
+extern crate chrono;
+extern crate filters;
+extern crate itertools;
+
+extern crate libimagerror;
+extern crate libimagstore;
+extern crate libimagrt;
+extern crate libimagentrytimetrack;
+extern crate libimagutil;
+
+mod cont;
+mod day;
+mod list;
+mod month;
+mod start;
+mod stop;
+mod track;
+mod ui;
+mod week;
+mod year;
+
+use cont::cont;
+use day::day;
+use list::list;
+use month::month;
+use start::start;
+use stop::stop;
+use track::track;
+use ui::build_ui;
+use week::week;
+use year::year;
+
+use libimagrt::setup::generate_runtime_setup;
+
+fn main() {
+ let rt = generate_runtime_setup("imag-timetrack",
+ &version!()[..],
+ "Time tracking module",
+ build_ui);
+
+ let command = rt.cli().subcommand_name();
+ let retval = if let Some(command) = command {
+ debug!("Call: {}", command);
+ match command {
+ "continue" => cont(&rt),
+ "day" => day(&rt),
+ "list" => list(&rt),
+ "month" => month(&rt),
+ "start" => start(&rt),
+ "stop" => stop(&rt),
+ "track" => track(&rt),
+ "week" => week(&rt),
+ "year" => year(&rt),
+ _ => {
+ error!("Unknown command");
+ 1
+ },
+ }
+ } else {
+ error!("No command");
+ 1
+ };
+
+ ::std::process::exit(retval);
+}