Merge branch 'master' into watch

Conflicts:
	debian/changelog
	git-annex.cabal
This commit is contained in:
Joey Hess 2012-06-12 13:37:17 -04:00
commit 2e5ea30981
9 changed files with 75 additions and 23 deletions

4
.gitignore vendored
View file

@ -13,3 +13,7 @@ html
Utility/Touch.hs
Utility/libdiskfree.o
dist
# Sandboxed builds
cabal-dev
# Project-local emacs configuration
.dir-locals.el

1
CONTRIBUTING Symbolic link
View file

@ -0,0 +1 @@
doc/contributing.mdwn

1
COPYRIGHT Symbolic link
View file

@ -0,0 +1 @@
debian/copyright

View file

@ -47,18 +47,22 @@ git-annex-shell.1: doc/git-annex-shell.mdwn
git-union-merge.1: doc/git-union-merge.mdwn
./mdwn2man git-union-merge 1 doc/git-union-merge.mdwn > git-union-merge.1
install: all
install -d $(DESTDIR)$(PREFIX)/bin
install $(bins) $(DESTDIR)$(PREFIX)/bin
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell
install-mans: $(mans)
install -d $(DESTDIR)$(PREFIX)/share/man/man1
install -m 0644 $(mans) $(DESTDIR)$(PREFIX)/share/man/man1
install-docs: docs install-mans
install -d $(DESTDIR)$(PREFIX)/share/doc/git-annex
if [ -d html ]; then \
rsync -a --delete html/ $(DESTDIR)$(PREFIX)/share/doc/git-annex/html/; \
fi
test:
install: all install-docs
install -d $(DESTDIR)$(PREFIX)/bin
install $(bins) $(DESTDIR)$(PREFIX)/bin
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell
test: $(sources) $(clibs)
@if ! $(GHCMAKE) -O0 test $(clibs); then \
echo "** failed to build the test suite" >&2; \
exit 1; \
@ -96,13 +100,10 @@ clean:
rm -rf tmp $(bins) $(mans) test configure *.tix .hpc $(sources) \
doc/.ikiwiki html dist $(clibs)
# Workaround for cabal sdist not running Setup hooks, so I cannot
# generate a file list there.
sdist: clean
@if [ ! -e git-annex.cabal.orig ]; then cp git-annex.cabal git-annex.cabal.orig; fi
@sed -e "s!\(Extra-Source-Files: \).*!\1$(shell find . -name .git -prune -or -not -name \\*.orig -not -type d -print | perl -ne 'print unless length >= 100')!i" < git-annex.cabal.orig > git-annex.cabal
@cabal sdist
@mv git-annex.cabal.orig git-annex.cabal
# Workaround for `cabal sdist` requiring all included files to be listed
# in .cabal.
sdist: clean $(mans)
./make-sdist.sh
# Upload to hackage.
hackage: sdist

View file

@ -1,27 +1,49 @@
{-# LANGUAGE NamedFieldPuns #-}
{- cabal setup file -}
import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.Setup
import System.Cmd
import Distribution.Simple.Utils (installOrdinaryFiles, rawSystemExit)
import Distribution.PackageDescription (PackageDescription(..))
import Distribution.Verbosity (Verbosity)
import System.FilePath
import qualified Build.Configure as Configure
main = defaultMainWithHooks simpleUserHooks
{ preConf = configure
, instHook = install
, postInst = myPostInst
}
configure _ _ = do
Configure.run Configure.tests
return (Nothing, [])
install pkg_descr lbi userhooks flags = do
r <- (instHook simpleUserHooks) pkg_descr lbi userhooks flags
_ <- rawSystem "ln" ["-sf", "git-annex",
bindir installDirs </> "git-annex-shell"]
return r
myPostInst :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()
myPostInst _ (InstallFlags { installVerbosity }) pkg lbi = do
installGitAnnexShell dest verbosity pkg lbi
installManpages dest verbosity pkg lbi
where
installDirs = absoluteInstallDirs pkg_descr lbi $
fromFlag (copyDest defaultCopyFlags)
dest = NoCopyDest
verbosity = fromFlag installVerbosity
installGitAnnexShell :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
installGitAnnexShell copyDest verbosity pkg lbi =
rawSystemExit verbosity "ln"
["-sf", "git-annex", dstBinDir </> "git-annex-shell"]
where
dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest
-- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages.
--
-- Based on pandoc's Setup.hs.
installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
installManpages copyDest verbosity pkg lbi =
installOrdinaryFiles verbosity dstManDir srcManpages
where
dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1"
srcManpages = zip (repeat srcManDir) manpages
srcManDir = ""
manpages = ["git-annex.1", "git-annex-shell.1"]

4
debian/changelog vendored
View file

@ -3,8 +3,10 @@ git-annex (3.20120612) UNRELEASED; urgency=low
* watch: New subcommand, which uses inotify to watch for changes to
files and automatically annexes new files, etc, so you don't need
to manually run git commands when manipulating files.
* Install man page when run by cabal, in a location where man will
find it, even when installing under $HOME. Thanks, Nathan Collins
-- Joey Hess <joeyh@debian.org> Tue, 05 Jun 2012 20:25:51 -0400
-- Joey Hess <joeyh@debian.org> Tue, 12 Jun 2012 11:35:59 -0400
git-annex (3.20120611) unstable; urgency=medium

7
doc/contributing.mdwn Normal file
View file

@ -0,0 +1,7 @@
## Style
This project uses tabs for indentation and the code looks fine with
any tab width. If you are using Emacs, and have it configured to use
spaces for indentation, then you can add a `./.dir-locals.el` to use
tabs for files in this project. See
<http://www.emacswiki.org/emacs/DirectoryVariables>.

View file

@ -7,7 +7,6 @@ Author: Joey Hess
Stability: Stable
Copyright: 2010-2012 Joey Hess
License-File: GPL
Extra-Source-Files: use-make-sdist-instead
Homepage: http://git-annex.branchable.com/
Build-type: Custom
Category: Utility
@ -37,6 +36,7 @@ Executable git-annex
base == 4.5.*, monad-control, transformers-base, lifted-base,
IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance,
hinotify, STM
-- Need to list this because it's generated from a .hsc file.
Other-Modules: Utility.Touch
C-Sources: Utility/libdiskfree.c
Extensions: CPP
@ -54,6 +54,7 @@ Test-Suite test
base == 4.5.*, monad-control, transformers-base, lifted-base,
IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance,
hinotify, STM
Other-Modules: Utility.Touch
C-Sources: Utility/libdiskfree.c
Extensions: CPP

13
make-sdist.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
# Create target directory
sdist_dir=git-annex-$(grep '^Version:' git-annex.cabal | sed -re 's/Version: *//')
mkdir --parents dist/$sdist_dir
find . \( -name .git -or -name dist -or -name cabal-dev \) -prune \
-or -not -name \\*.orig -not -type d -print \
| perl -ne 'print unless length >= 100' \
| xargs cp --parents --target-directory dist/$sdist_dir
cd dist
tar -caf $sdist_dir.tar.gz $sdist_dir