mirror of
https://github.com/correl/melpa.git
synced 2024-11-14 19:19:32 +00:00
Added support for fossil SCM, added recipe for vc-fossil.el, a VC backend for the fossil sofware configuration management system
This commit is contained in:
parent
5f576f6fab
commit
263f420437
7 changed files with 37 additions and 8 deletions
|
@ -173,7 +173,7 @@ the following form (`[...]` denotes optional or conditional values),
|
||||||
|
|
||||||
```lisp
|
```lisp
|
||||||
(<package-name>
|
(<package-name>
|
||||||
:fetcher [git|github|bzr|hg|darcs|svn|cvs|wiki]
|
:fetcher [git|github|bzr|hg|darcs|fossil|svn|cvs|wiki]
|
||||||
[:url "<repo url>"]
|
[:url "<repo url>"]
|
||||||
[:repo "github-user/repo-name"]
|
[:repo "github-user/repo-name"]
|
||||||
[:module "cvs-module"]
|
[:module "cvs-module"]
|
||||||
|
@ -183,11 +183,11 @@ the following form (`[...]` denotes optional or conditional values),
|
||||||
- `package-name`
|
- `package-name`
|
||||||
a lisp symbol that has the same name as the package being specified.
|
a lisp symbol that has the same name as the package being specified.
|
||||||
|
|
||||||
- `:fetcher` (one of `git, github, bzr, hg, darcs, svn, cvs, wiki`)
|
- `:fetcher` (one of `git, github, bzr, hg, darcs, fossil, svn, cvs, wiki`)
|
||||||
specifies the type of repository that `:url` points to. Right now
|
specifies the type of repository that `:url` points to. Right now
|
||||||
package-build supports [git][git], [github][github],
|
package-build supports [git][git], [github][github],
|
||||||
[bazaar (bzr)][bzr], [mercurial (hg)][hg], [subversion (svn)][svn],
|
[bazaar (bzr)][bzr], [mercurial (hg)][hg], [subversion (svn)][svn],
|
||||||
[cvs][cvs], [darcs][darcs], and [Emacs Wiki (wiki)][emacswiki] as
|
[cvs][cvs], [darcs][darcs], [fossil][fossil], and [Emacs Wiki (wiki)][emacswiki] as
|
||||||
possible mechanisms for checking out the repository.
|
possible mechanisms for checking out the repository.
|
||||||
|
|
||||||
*package-build* uses
|
*package-build* uses
|
||||||
|
@ -204,7 +204,7 @@ differs from the package name being built.
|
||||||
|
|
||||||
- `:url`
|
- `:url`
|
||||||
specifies the URL of the version control repository. *required for
|
specifies the URL of the version control repository. *required for
|
||||||
the `git`, `bzr`, `hg`, `darcs`, `svn` and `cvs` fetchers.*
|
the `git`, `bzr`, `hg`, `darcs`, `fossil`, `svn` and `cvs` fetchers.*
|
||||||
|
|
||||||
- `:repo` specifies the github repository and is of the form
|
- `:repo` specifies the github repository and is of the form
|
||||||
`github-user/repo-name`. *required for the `github` fetcher*.
|
`github-user/repo-name`. *required for the `github` fetcher*.
|
||||||
|
@ -249,6 +249,7 @@ specified package requires more complex file specification.
|
||||||
[svn]: http://subversion.apache.org/
|
[svn]: http://subversion.apache.org/
|
||||||
[cvs]: http://www.nongnu.org/cvs/
|
[cvs]: http://www.nongnu.org/cvs/
|
||||||
[darcs]: http://darcs.net/
|
[darcs]: http://darcs.net/
|
||||||
|
[fossil]: http://www.fossil-scm.org/
|
||||||
[emacswiki]: http://www.emacswiki.org/
|
[emacswiki]: http://www.emacswiki.org/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<h1><span class="archive-name">MELPA</span> (Milkypostman’s Emacs Lisp Package Archive)</h1>
|
<h1><span class="archive-name">MELPA</span> (Milkypostman’s Emacs Lisp Package Archive)</h1>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Up-to-date packages built on our servers from upstream source</li>
|
<li>Up-to-date packages built on our servers from upstream source</li>
|
||||||
<li>Installable in any recent Emacs using 'package.el' - no need to install svn/cvs/hg/bzr/git/darcs etc.</li>
|
<li>Installable in any recent Emacs using 'package.el' - no need to install svn/cvs/hg/bzr/git/darcs/fossil etc.</li>
|
||||||
<li>Curated - no obsolete, renamed, forked or randomly hacked packages</li>
|
<li>Curated - no obsolete, renamed, forked or randomly hacked packages</li>
|
||||||
<li>Comprehensive - more packages than any other archive</li>
|
<li>Comprehensive - more packages than any other archive</li>
|
||||||
<li>Automatic updates - new commits result in new packages</li>
|
<li>Automatic updates - new commits result in new packages</li>
|
||||||
|
|
|
@ -419,7 +419,7 @@
|
||||||
m("section.jumbotron", [
|
m("section.jumbotron", [
|
||||||
m("ul", [
|
m("ul", [
|
||||||
m("li", m.trust("<strong>Up-to-date packages built on our servers from upstream source</strong>")),
|
m("li", m.trust("<strong>Up-to-date packages built on our servers from upstream source</strong>")),
|
||||||
m("li", m.trust("<strong>Installable in any recent Emacs using 'package.el'</strong> - no need to install svn/cvs/hg/bzr/git/darcs etc.")),
|
m("li", m.trust("<strong>Installable in any recent Emacs using 'package.el'</strong> - no need to install svn/cvs/hg/bzr/git/darcs/fossil etc.")),
|
||||||
m("li", m.trust("<strong>Curated</strong> - no obsolete, renamed, forked or randomly hacked packages")),
|
m("li", m.trust("<strong>Curated</strong> - no obsolete, renamed, forked or randomly hacked packages")),
|
||||||
m("li", m.trust("<strong>Comprehensive</strong> - more packages than any other archive")),
|
m("li", m.trust("<strong>Comprehensive</strong> - more packages than any other archive")),
|
||||||
m("li", m.trust("<strong>Automatic updates</strong> - new commits result in new packages")),
|
m("li", m.trust("<strong>Automatic updates</strong> - new commits result in new packages")),
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
<p><a href="https://github.com/milkypostman/melpa">https://github.com/milkypostman/melpa</a></p>
|
<p><a href="https://github.com/milkypostman/melpa">https://github.com/milkypostman/melpa</a></p>
|
||||||
<p>
|
<p>
|
||||||
Contributions are welcome. Currently, the builder supports
|
Contributions are welcome. Currently, the builder supports
|
||||||
packages using git, subversion, mercurial, bzr, cvs, darcs and
|
packages using git, subversion, mercurial, bzr, cvs, darcs, fossil and
|
||||||
emacswiki.
|
emacswiki.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -323,6 +323,32 @@ seconds; the server cuts off after 10 requests in 20 seconds.")
|
||||||
(pb/find-parse-time
|
(pb/find-parse-time
|
||||||
"\\([a-zA-Z]\\{3\\} [a-zA-Z]\\{3\\} \\( \\|[0-9]\\)[0-9] [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\} [A-Za-z]\\{3\\} [0-9]\\{4\\}\\)")))))
|
"\\([a-zA-Z]\\{3\\} [a-zA-Z]\\{3\\} \\( \\|[0-9]\\)[0-9] [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\} [A-Za-z]\\{3\\} [0-9]\\{4\\}\\)")))))
|
||||||
|
|
||||||
|
(defun pb/fossil-repo (dir)
|
||||||
|
"Get the current fossil repo for DIR."
|
||||||
|
(pb/run-process-match "\\(.*\\)" dir "fossil" "remote-url"))
|
||||||
|
|
||||||
|
(defun pb/checkout-fossil (name config dir)
|
||||||
|
"Check package NAME with config CONFIG out of fossil into DIR."
|
||||||
|
(unless package-build-stable
|
||||||
|
(let ((repo (plist-get config :url)))
|
||||||
|
(with-current-buffer (get-buffer-create "*package-build-checkout*")
|
||||||
|
(cond
|
||||||
|
((and (file-exists-p (expand-file-name ".fslckout" dir))
|
||||||
|
(string-equal (pb/fossil-repo dir) repo))
|
||||||
|
(pb/princ-exists dir)
|
||||||
|
(pb/run-process dir "fossil" "pull"))
|
||||||
|
(t
|
||||||
|
(when (file-exists-p dir)
|
||||||
|
(delete-directory dir t))
|
||||||
|
(pb/princ-checkout repo dir)
|
||||||
|
(make-directory dir)
|
||||||
|
(pb/run-process dir "fossil" "clone" repo "repo.fossil")
|
||||||
|
(pb/run-process dir "fossil" "open" "repo.fossil")))
|
||||||
|
(pb/run-process dir "fossil" "timeline" "--limit" "1" "--type" "ci" "--width" "0")
|
||||||
|
(or (pb/find-parse-time
|
||||||
|
"=== \\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ===\n[0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\}\\) ")
|
||||||
|
(error "No valid timestamps found!"))))))
|
||||||
|
|
||||||
(defun pb/svn-repo (dir)
|
(defun pb/svn-repo (dir)
|
||||||
"Get the current svn repo for DIR."
|
"Get the current svn repo for DIR."
|
||||||
(pb/run-process-match "URL: \\(.*\\)" dir "svn" "info"))
|
(pb/run-process-match "URL: \\(.*\\)" dir "svn" "info"))
|
||||||
|
@ -571,6 +597,7 @@ Optionally PRETTY-PRINT the data."
|
||||||
"--exclude=CVS"
|
"--exclude=CVS"
|
||||||
"--exclude=.git*"
|
"--exclude=.git*"
|
||||||
"--exclude=_darcs"
|
"--exclude=_darcs"
|
||||||
|
"--exclude=.fslckout"
|
||||||
"--exclude=.bzr"
|
"--exclude=.bzr"
|
||||||
"--exclude=.hg"
|
"--exclude=.hg"
|
||||||
(or (mapcar (lambda (fn) (concat dir "/" fn)) files) (list dir))))
|
(or (mapcar (lambda (fn) (concat dir "/" fn)) files) (list dir))))
|
||||||
|
|
1
recipes/vc-fossil
Normal file
1
recipes/vc-fossil
Normal file
|
@ -0,0 +1 @@
|
||||||
|
(vc-fossil :fetcher fossil :url "http://chiselapp.com/user/venks/repository/emacs-fossil/" :files ("vc/el/*.el" "doc/*"))
|
|
@ -10,7 +10,7 @@ sudo ${SUDOENV} apt-get update
|
||||||
sudo ${SUDOENV} apt-get -y upgrade
|
sudo ${SUDOENV} apt-get -y upgrade
|
||||||
sudo ${SUDOENV} apt-get -y \
|
sudo ${SUDOENV} apt-get -y \
|
||||||
install \
|
install \
|
||||||
subversion git cvs darcs curl bzr mercurial \
|
subversion git cvs darcs fossil curl bzr mercurial \
|
||||||
emacs24 emacs24-el emacs24-common-non-dfsg \
|
emacs24 emacs24-el emacs24-common-non-dfsg \
|
||||||
tmux make
|
tmux make
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue