Repository : http://git.fedorahosted.org/cgit/jenkinscat-docs.git
On branch : master
commit 58a7f98025fb5b45c0b78488b43098bcf6d82097 Author: Pavel Tisnovsky ptisnovs@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@redhat.com + + * src/jenkinscat/server.clj: + Basic support for adding new books. + 2015-01-19 Pavel Tisnovsky ptisnovs@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)]