From e598b78a69af62cdf4d236d1df698b350989cafc Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 18 Feb 2013 20:37:26 -0400 Subject: [PATCH] webapp: Can now add a new local repository, and make it sync with the main local repository. --- Assistant/WebApp/Configurators/Local.hs | 41 +++++++++++++----- Assistant/WebApp/OtherRepos.hs | 15 ++++--- Assistant/WebApp/routes | 1 + debian/changelog | 2 + doc/assistant/combinerepos.png | Bin 0 -> 10677 bytes templates/configurators/newrepository.hamlet | 12 +---- .../newrepository/combine.hamlet | 18 ++++---- .../configurators/repositories/misc.hamlet | 8 +++- 8 files changed, 58 insertions(+), 39 deletions(-) create mode 100644 doc/assistant/combinerepos.png diff --git a/Assistant/WebApp/Configurators/Local.hs b/Assistant/WebApp/Configurators/Local.hs index 2cfc7dbd63..d689261087 100644 --- a/Assistant/WebApp/Configurators/Local.hs +++ b/Assistant/WebApp/Configurators/Local.hs @@ -11,6 +11,7 @@ module Assistant.WebApp.Configurators.Local where import Assistant.WebApp.Common import Assistant.WebApp.Utility +import Assistant.WebApp.OtherRepos import Assistant.MakeRemote import Init import qualified Git @@ -135,20 +136,35 @@ getFirstRepositoryR = page "Getting started" (Just Configuration) $ do startFullAssistant $ T.unpack p _ -> $(widgetFile "configurators/newrepository/first") -{- Adding a new, separate repository. -} +{- Adding a new local repository, which may be entirely separate, or may + - be connected to the current repository. -} getNewRepositoryR :: Handler RepHtml getNewRepositoryR = page "Add another repository" (Just Configuration) $ do home <- liftIO myHomeDir ((res, form), enctype) <- lift $ runFormGet $ newRepositoryForm home case res of - FormSuccess (RepositoryPath p) -> lift $ do + FormSuccess (RepositoryPath p) -> do let path = T.unpack p liftIO $ makeRepo path False u <- liftIO $ initRepo True path Nothing - runAnnex () $ setStandardGroup u ClientGroup + lift $ runAnnex () $ setStandardGroup u ClientGroup liftIO $ addAutoStart path - redirect $ SwitchToRepositoryR path + liftIO $ startAssistant path + askcombine u path _ -> $(widgetFile "configurators/newrepository") + where + askcombine newrepouuid newrepopath = do + newrepo <- liftIO $ relHome newrepopath + mainrepo <- fromJust . relDir <$> lift getYesod + $(widgetFile "configurators/newrepository/combine") + +getCombineRepositoryR :: FilePath -> UUID -> Handler RepHtml +getCombineRepositoryR newrepopath newrepouuid = do + r <- combineRepos newrepopath remotename + syncRemote r + redirect $ EditRepositoryR newrepouuid + where + remotename = takeFileName newrepopath data RemovableDrive = RemovableDrive { diskFree :: Maybe Integer @@ -188,7 +204,7 @@ getAddDriveR = page "Add a removable drive" (Just Configuration) $ do make mountpoint = do liftIO $ makerepo dir u <- liftIO $ initRepo False dir $ Just remotename - r <- addremote dir remotename + r <- combineRepos dir remotename runAnnex () $ setStandardGroup u TransferGroup syncRemote r return u @@ -204,12 +220,15 @@ getAddDriveR = page "Add a removable drive" (Just Configuration) $ do _ -> do createDirectoryIfMissing True dir makeRepo dir True - {- Each repository is made a remote of the other. -} - addremote dir name = runAnnex undefined $ do - hostname <- maybe "host" id <$> liftIO getHostname - hostlocation <- fromRepo Git.repoLocation - liftIO $ inDir dir $ void $ makeGitRemote hostname hostlocation - addRemote $ makeGitRemote name dir + +{- Each repository is made a remote of the other. + - Next call syncRemote to get them in sync. -} +combineRepos :: FilePath -> String -> Handler Remote +combineRepos dir name = runAnnex undefined $ do + hostname <- maybe "host" id <$> liftIO getHostname + hostlocation <- fromRepo Git.repoLocation + liftIO $ inDir dir $ void $ makeGitRemote hostname hostlocation + addRemote $ makeGitRemote name dir getEnableDirectoryR :: UUID -> Handler RepHtml getEnableDirectoryR uuid = page "Enable a repository" (Just Configuration) $ do diff --git a/Assistant/WebApp/OtherRepos.hs b/Assistant/WebApp/OtherRepos.hs index 06f9eef0ac..b89022c5c8 100644 --- a/Assistant/WebApp/OtherRepos.hs +++ b/Assistant/WebApp/OtherRepos.hs @@ -43,14 +43,9 @@ listOtherRepos = do -} getSwitchToRepositoryR :: FilePath -> Handler RepHtml getSwitchToRepositoryR repo = do - liftIO startassistant - url <- liftIO geturl - redirect url + liftIO $ startAssistant repo + redirect =<< liftIO geturl where - startassistant = do - program <- readProgramFile - void $ forkIO $ void $ createProcess $ - (proc program ["assistant"]) { cwd = Just repo } geturl = do r <- Git.Config.read =<< Git.Construct.fromPath repo waiturl $ gitAnnexUrlFile r @@ -66,3 +61,9 @@ getSwitchToRepositoryR repo = do delayed a = do threadDelay 100000 -- 1/10th of a second a + +startAssistant :: FilePath -> IO () +startAssistant repo = do + program <- readProgramFile + void $ forkIO $ void $ createProcess $ + (proc program ["assistant"]) { cwd = Just repo } diff --git a/Assistant/WebApp/routes b/Assistant/WebApp/routes index 1ffdac1c5f..a99237c898 100644 --- a/Assistant/WebApp/routes +++ b/Assistant/WebApp/routes @@ -20,6 +20,7 @@ /config/repository/new NewRepositoryR GET /config/repository/switcher RepositorySwitcherR GET /config/repository/switchto/#FilePath SwitchToRepositoryR GET +/config/repository/combine/#FilePath/#UUID CombineRepositoryR GET /config/repository/edit/#UUID EditRepositoryR GET /config/repository/edit/new/#UUID EditNewRepositoryR GET /config/repository/edit/new/cloud/#UUID EditNewCloudRepositoryR GET diff --git a/debian/changelog b/debian/changelog index d6b606447f..584a033125 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ git-annex (3.20130217) UNRELEASED; urgency=low always using git's pseudosymlink files in such repositories. * webapp: Allow creating repositories on filesystems that lack support for symlinks. + * webapp: Can now add a new local repository, and make it sync with + the main local repository. * Android: Bundle now includes openssh. -- Joey Hess Sun, 17 Feb 2013 16:42:16 -0400 diff --git a/doc/assistant/combinerepos.png b/doc/assistant/combinerepos.png new file mode 100644 index 0000000000000000000000000000000000000000..7beea71bc50461b4df12eaf12c419b8cf80c8c83 GIT binary patch literal 10677 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

- Add another repository -

- The form below will make a separate repository, that is not synced # - with your existing repository. You can use the new repository for # - different sorts of files, that are synced and shared with other # - devices and users. + Add another local repository

+ Where do you want to put this new repository?

^{form} -

- # - Do you want to add another repository that is kept in sync with # - the current one? If so, go here. diff --git a/templates/configurators/newrepository/combine.hamlet b/templates/configurators/newrepository/combine.hamlet index 3ea8034822..7cdec85080 100644 --- a/templates/configurators/newrepository/combine.hamlet +++ b/templates/configurators/newrepository/combine.hamlet @@ -2,16 +2,16 @@

Combine repositories?

- You have created a new repository at #{newrepopath}. # - Do you want to combine it with your existing repository at #{mainrepopath}? + You have created a new repository at #{newrepo}. +
+ Do you want to combine it with your existing repository at #{mainrepo}?

- Combining the repositories will sync their files, so each will have # - added to it all files from the other repository. + + Combine the repositories # + The combined repositories will sync and share their files.

- If you want to use the new repository to hold different sorts of files, # - you should not combine the repositories. + -or-

- - Combine the repositories - Keep the repositories separate + Keep the repositories separate # + Files placed in one will not be synced to the other. diff --git a/templates/configurators/repositories/misc.hamlet b/templates/configurators/repositories/misc.hamlet index 5975118375..7ceae2c92f 100644 --- a/templates/configurators/repositories/misc.hamlet +++ b/templates/configurators/repositories/misc.hamlet @@ -15,9 +15,7 @@

Pair with a computer to automatically keep files in sync # over your local network. -

- For easy sharing with friends and devices in the same location.

@@ -31,6 +29,12 @@ For easy sharing with friends and devices, over the internet. +

+ + Add a local repository +

+ Make another repository on your computer. +

Phone