aboutsummaryrefslogtreecommitdiff
path: root/GitAnnex.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@debian.org>2013-11-27 18:41:44 -0400
committerGravatar Joey Hess <joeyh@debian.org>2013-11-27 18:41:44 -0400
commit2e6d39d426f6b08f236d6071e671a9dcfc799d91 (patch)
tree1618fd9e34a30409ee0937cb4b3861ec3b5e7bba /GitAnnex.hs
git-annex (5.20131127) unstable; urgency=low
* webapp: Detect when upgrades are available, and upgrade if the user desires. (Only when git-annex is installed using the prebuilt binaries from git-annex upstream, not from eg Debian.) * assistant: Detect when the git-annex binary is modified or replaced, and either prompt the user to restart the program, or automatically restart it. * annex.autoupgrade configures both the above upgrade behaviors. * Added support for quvi 0.9. Slightly suboptimal due to limitations in its interface compared with the old version. * Bug fix: annex.version did not get set on automatic upgrade to v5 direct mode repo, so the upgrade was performed repeatedly, slowing commands down. * webapp: Fix bug that broke switching between local repositories that use the new guarded direct mode. * Android: Fix stripping of the git-annex binary. * Android: Make terminal app show git-annex version number. * Android: Re-enable XMPP support. * reinject: Allow to be used in direct mode. * Futher improvements to git repo repair. Has now been tested in tens of thousands of intentionally damaged repos, and successfully repaired them all. * Allow use of --unused in bare repository. # imported from the archive
Diffstat (limited to 'GitAnnex.hs')
-rw-r--r--GitAnnex.hs181
1 files changed, 181 insertions, 0 deletions
diff --git a/GitAnnex.hs b/GitAnnex.hs
new file mode 100644
index 000000000..61d8b918a
--- /dev/null
+++ b/GitAnnex.hs
@@ -0,0 +1,181 @@
+{- git-annex main program
+ -
+ - Copyright 2010 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+{-# LANGUAGE CPP, OverloadedStrings #-}
+
+module GitAnnex where
+
+import qualified Git.CurrentRepo
+import CmdLine
+import Command
+import GitAnnex.Options
+
+import qualified Command.Add
+import qualified Command.Unannex
+import qualified Command.Drop
+import qualified Command.Move
+import qualified Command.Copy
+import qualified Command.Get
+import qualified Command.FromKey
+import qualified Command.DropKey
+import qualified Command.TransferKey
+#ifndef mingw32_HOST_OS
+import qualified Command.TransferKeys
+#endif
+import qualified Command.ReKey
+import qualified Command.Reinject
+import qualified Command.Fix
+import qualified Command.Init
+import qualified Command.Describe
+import qualified Command.InitRemote
+import qualified Command.EnableRemote
+import qualified Command.Fsck
+import qualified Command.Repair
+import qualified Command.Unused
+import qualified Command.DropUnused
+import qualified Command.AddUnused
+import qualified Command.Unlock
+import qualified Command.Lock
+import qualified Command.PreCommit
+import qualified Command.Find
+import qualified Command.Whereis
+import qualified Command.List
+import qualified Command.Log
+import qualified Command.Merge
+import qualified Command.Info
+import qualified Command.Status
+import qualified Command.Migrate
+import qualified Command.Uninit
+import qualified Command.Trust
+import qualified Command.Untrust
+import qualified Command.Semitrust
+import qualified Command.Dead
+import qualified Command.Group
+import qualified Command.Wanted
+import qualified Command.Schedule
+import qualified Command.Ungroup
+import qualified Command.Vicfg
+import qualified Command.Sync
+import qualified Command.Mirror
+import qualified Command.AddUrl
+#ifdef WITH_FEED
+import qualified Command.ImportFeed
+#endif
+import qualified Command.RmUrl
+import qualified Command.Import
+import qualified Command.Map
+import qualified Command.Direct
+import qualified Command.Indirect
+import qualified Command.Upgrade
+import qualified Command.Forget
+import qualified Command.Version
+import qualified Command.Help
+#ifdef WITH_ASSISTANT
+import qualified Command.Watch
+import qualified Command.Assistant
+#ifdef WITH_WEBAPP
+import qualified Command.WebApp
+#endif
+#ifdef WITH_XMPP
+import qualified Command.XMPPGit
+#endif
+#endif
+#ifdef WITH_TESTSUITE
+import qualified Command.Test
+import qualified Command.FuzzTest
+#endif
+#ifdef WITH_EKG
+import System.Remote.Monitoring
+#endif
+
+cmds :: [Command]
+cmds = concat
+ [ Command.Add.def
+ , Command.Get.def
+ , Command.Drop.def
+ , Command.Move.def
+ , Command.Copy.def
+ , Command.Unlock.def
+ , Command.Lock.def
+ , Command.Sync.def
+ , Command.Mirror.def
+ , Command.AddUrl.def
+#ifdef WITH_FEED
+ , Command.ImportFeed.def
+#endif
+ , Command.RmUrl.def
+ , Command.Import.def
+ , Command.Init.def
+ , Command.Describe.def
+ , Command.InitRemote.def
+ , Command.EnableRemote.def
+ , Command.Reinject.def
+ , Command.Unannex.def
+ , Command.Uninit.def
+ , Command.PreCommit.def
+ , Command.Trust.def
+ , Command.Untrust.def
+ , Command.Semitrust.def
+ , Command.Dead.def
+ , Command.Group.def
+ , Command.Wanted.def
+ , Command.Schedule.def
+ , Command.Ungroup.def
+ , Command.Vicfg.def
+ , Command.FromKey.def
+ , Command.DropKey.def
+ , Command.TransferKey.def
+#ifndef mingw32_HOST_OS
+ , Command.TransferKeys.def
+#endif
+ , Command.ReKey.def
+ , Command.Fix.def
+ , Command.Fsck.def
+ , Command.Repair.def
+ , Command.Unused.def
+ , Command.DropUnused.def
+ , Command.AddUnused.def
+ , Command.Find.def
+ , Command.Whereis.def
+ , Command.List.def
+ , Command.Log.def
+ , Command.Merge.def
+ , Command.Info.def
+ , Command.Status.def
+ , Command.Migrate.def
+ , Command.Map.def
+ , Command.Direct.def
+ , Command.Indirect.def
+ , Command.Upgrade.def
+ , Command.Forget.def
+ , Command.Version.def
+ , Command.Help.def
+#ifdef WITH_ASSISTANT
+ , Command.Watch.def
+ , Command.Assistant.def
+#ifdef WITH_WEBAPP
+ , Command.WebApp.def
+#endif
+#ifdef WITH_XMPP
+ , Command.XMPPGit.def
+#endif
+#endif
+#ifdef WITH_TESTSUITE
+ , Command.Test.def
+ , Command.FuzzTest.def
+#endif
+ ]
+
+header :: String
+header = "git-annex command [option ...]"
+
+run :: [String] -> IO ()
+run args = do
+#ifdef WITH_EKG
+ _ <- forkServer "localhost" 4242
+#endif
+ dispatch True args cmds options [] header Git.CurrentRepo.get