[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