[jenkinscat-docs] master: Basic support for adding new books. (58a7f98)

immanetize at fedoraproject.org immanetize at fedoraproject.org
Fri Feb 6 07:41:01 UTC 2015


Repository : http://git.fedorahosted.org/cgit/jenkinscat-docs.git

On branch  : master

>---------------------------------------------------------------

commit 58a7f98025fb5b45c0b78488b43098bcf6d82097
Author: Pavel Tisnovsky <ptisnovs at redhat.com>
Date:   Tue Jan 20 10:54:47 2015 +0100

    Basic support for adding new books.


>---------------------------------------------------------------

 ChangeLog                 |    5 ++++
 src/jenkinscat/server.clj |   54 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4b4aecc..8f2ca97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-20  Pavel Tisnovsky  <ptisnovs at redhat.com>
+
+	* src/jenkinscat/server.clj:
+	Basic support for adding new books.
+
 2015-01-19  Pavel Tisnovsky  <ptisnovs at redhat.com>
 
 	* tools/create_books_clj_file.lua:
diff --git a/src/jenkinscat/server.clj b/src/jenkinscat/server.clj
index d350ba3..b9babc1 100644
--- a/src/jenkinscat/server.clj
+++ b/src/jenkinscat/server.clj
@@ -688,6 +688,60 @@
     (force-to-read-books)
     (job-configurations-handler uri params session))
 
+(defn add-book-step-1-handler
+    "Handler for the 'Add book' command."
+    [uri params session]
+    (read-books-if-not-loaded)
+    (let [product-list (get-products)
+          page-content (add-book-step-1-renderer/render-add-book-step-1-page product-list config/devel-version)]
+         (generate-response-html page-content session)))
+
+(defn get-full-repository-url
+    [repository-type repository-name]
+    (cond
+        (= repository-type "GitHub")                (str github-repo-prefix repository-name)
+        (= repository-type "Gerrit (internal GIT)") (str gerrit-repo-prefix repository-name)
+        (= repository-type "Fedora GIT")            (str fedora-git-repo-prefix repository-name)
+        (= repository-type "SVN (internal)")        (str internal-svn-repo-prefix repository-name)
+        :else false))
+
+(defn get-dvcs
+    [repository-type]
+    (cond
+        (= repository-type "GitHub")                "git"
+        (= repository-type "Gerrit (internal GIT)") "git"
+        (= repository-type "Fedora GIT")            "git"
+        (= repository-type "SVN (internal)")        "svn"
+        :else nil))
+
+(defn check-if-git-repo-exists
+    "Basic check if (external) GIT repo exists by using git ls-remote command."
+    [url]
+    (let [result (exec/exec "git ls-remote" url)]
+        (println "Check if GIT repo exists (0=OK): " result)
+        (= result 0)))
+
+(defn check-if-svn-repo-exists
+    "Basic check if (external) SVN repo exists by using svn ls command."
+    [url]
+    (let [result (exec/exec "svn ls --non-interactive --trust-server-cert" url)]
+        (println "Check if SVN repo exists (0=OK): " result)
+        (= result 0)))
+
+(defn check-if-repo-exists
+    "Returns true if repository of given type exists, nil intstead."
+    [repository-type url]
+    (cond
+        (= repository-type "git") (check-if-git-repo-exists url)
+        (= repository-type "svn") (check-if-svn-repo-exists url)
+        :else nil))
+
+(defn repository-exists?
+    [repository-type repository-name]
+    (let [dvcs (get-dvcs repository-type)
+          url  (get-full-repository-url repository-type repository-name)]
+          (check-if-repo-exists dvcs url)))
+
 (defn count-books
     [books]
     (let [out-data (new java.util.TreeSet)]



More information about the docs-commits mailing list