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
This commit is contained in:
commit
7189dfd77d
6383 changed files with 204042 additions and 0 deletions
64
Build/DistributionUpdate.hs
Normal file
64
Build/DistributionUpdate.hs
Normal file
|
@ -0,0 +1,64 @@
|
|||
{- Builds distributon info files for each git-annex release in a directory
|
||||
- tree, which must itself be part of a git-annex repository. Only files
|
||||
- that are present have their info file created. -}
|
||||
|
||||
import Common.Annex
|
||||
import Types.Distribution
|
||||
import Build.Version
|
||||
import Utility.UserInfo
|
||||
import Utility.Path
|
||||
import qualified Git.Construct
|
||||
import qualified Annex
|
||||
import Annex.Content
|
||||
import Backend
|
||||
import Git.Command
|
||||
|
||||
import Data.Time.Clock
|
||||
|
||||
main = do
|
||||
state <- Annex.new =<< Git.Construct.fromPath =<< getRepoDir
|
||||
Annex.eval state makeinfos
|
||||
|
||||
makeinfos :: Annex ()
|
||||
makeinfos = do
|
||||
basedir <- liftIO getRepoDir
|
||||
version <- liftIO getChangelogVersion
|
||||
now <- liftIO getCurrentTime
|
||||
liftIO $ putStrLn $ "building info files for version " ++ version ++ " in " ++ basedir
|
||||
fs <- liftIO $ dirContentsRecursiveSkipping (== "info") (basedir </> "git-annex")
|
||||
forM_ fs $ \f -> do
|
||||
v <- lookupFile f
|
||||
case v of
|
||||
Nothing -> noop
|
||||
Just (k, _b) -> whenM (inAnnex k) $ do
|
||||
liftIO $ putStrLn f
|
||||
let infofile = f ++ ".info"
|
||||
liftIO $ writeFile infofile $ show $ GitAnnexDistribution
|
||||
{ distributionUrl = mkUrl basedir f
|
||||
, distributionKey = k
|
||||
, distributionVersion = version
|
||||
, distributionReleasedate = now
|
||||
, distributionUrgentUpgrade = Nothing
|
||||
}
|
||||
void $ inRepo $ runBool [Param "add", Param infofile]
|
||||
void $ inRepo $ runBool
|
||||
[ Param "commit"
|
||||
, Param "-m"
|
||||
, Param $ "publishing git-annex " ++ version
|
||||
]
|
||||
void $ inRepo $ runBool
|
||||
[ Param "annex"
|
||||
, Params "move --to website"
|
||||
]
|
||||
void $ inRepo $ runBool
|
||||
[ Param "annex"
|
||||
, Params "sync"
|
||||
]
|
||||
|
||||
getRepoDir :: IO FilePath
|
||||
getRepoDir = do
|
||||
home <- liftIO myHomeDir
|
||||
return $ home </> "lib" </> "downloads"
|
||||
|
||||
mkUrl :: FilePath -> FilePath -> String
|
||||
mkUrl basedir f = "https://downloads.kitenet.net/" ++ relPathDirToFile basedir f
|
Loading…
Add table
Add a link
Reference in a new issue