From efc52c4a3ac2aaf3f1f8f091c9e91d2bf33e8137 Mon Sep 17 00:00:00 2001 From: Daniils Petrovs Date: Fri, 1 Oct 2021 16:44:04 +0200 Subject: [PATCH] Add option to get cli version --- project.clj | 2 +- src/atoss_cli/cli.clj | 18 ++++++++++++++++-- src/atoss_cli/core.clj | 8 +++++--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/project.clj b/project.clj index 914e081..44bc7a9 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject atoss-cli "0.2.1-SNAPSHOT" +(defproject atoss-cli "0.2.2-SNAPSHOT" :description "A CLI tool for interacting with ATOSS time sheets" :url "https://github.com/platogo/atoss-cli" :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0" diff --git a/src/atoss_cli/cli.clj b/src/atoss_cli/cli.clj index 3b1a189..230a5f1 100644 --- a/src/atoss_cli/cli.clj +++ b/src/atoss_cli/cli.clj @@ -1,7 +1,9 @@ (ns atoss-cli.cli - (:require [atoss-cli.atoss :refer [valid-day-codes]]) + (:require + [clojure.java.io :as io] + [atoss-cli.atoss :refer [valid-day-codes]]) (:import (java.text SimpleDateFormat) - (java.util Date))) + (java.util Date Properties))) (def today-date (.format (SimpleDateFormat. "dd.MM.yyyy") @@ -18,6 +20,13 @@ Work seamlessly with ATOSS time sheets.") log: Log time pair for today or a specific date view: View month overview of logged time") +(defn read-project-version [] + (-> (doto (Properties.) + (.load (-> "META-INF/maven/atoss-cli/atoss-cli/pom.properties" + (io/resource) + (io/reader)))) + (.get "version"))) + (def options ;; An option with a required argument [["-d" "--date DATE" "Date in the format DD.MM.YYYY" @@ -34,6 +43,8 @@ Work seamlessly with ATOSS time sheets.") :id :verbosity :default 0 :update-fn inc] + [nil "--version" "Print CLI version" + :default false] ;; A boolean option defaulting to nil ["-h" "--help" "Show this help printout." :default false]]) @@ -46,3 +57,6 @@ Work seamlessly with ATOSS time sheets.") (newline) (newline) (print args-summary)) + +(defn print-project-ver [] + (println (format "Version: %s" (read-project-version)))) diff --git a/src/atoss_cli/core.clj b/src/atoss_cli/core.clj index e81320e..39faa93 100644 --- a/src/atoss_cli/core.clj +++ b/src/atoss_cli/core.clj @@ -1,8 +1,9 @@ (ns atoss-cli.core "Entrypoint module for the ATOSS CLI." - (:require [clojure.tools.cli :refer [parse-opts]] - [atoss-cli.atoss :as atoss] - [atoss-cli.cli :as cli]) + (:require + [clojure.tools.cli :refer [parse-opts]] + [atoss-cli.atoss :as atoss] + [atoss-cli.cli :as cli]) (:import (java.util Collection)) (:gen-class)) @@ -43,6 +44,7 @@ options :options, :as opts} (parse-opts args cli/options)] (cond + (options :version) (cli/print-project-ver) (options :help) (cli/print-help summary) (= (first arguments) "view") (show-month-overview) (= (first arguments) "log") (log-time opts)