detect when unwanted remote is empty and remove it
Needs fixes to build when the webapp is disabled.
This commit is contained in:
parent
8a5b397ac4
commit
9a5f421768
13 changed files with 157 additions and 42 deletions
|
@ -180,7 +180,7 @@ enableAWSRemote remotetype uuid = do
|
|||
makeAWSRemote remotetype creds name (const noop) M.empty
|
||||
_ -> do
|
||||
description <- liftAnnex $
|
||||
T.pack . concat <$> Remote.prettyListUUIDs [uuid]
|
||||
T.pack <$> Remote.prettyUUID uuid
|
||||
$(widgetFile "configurators/enableaws")
|
||||
|
||||
makeAWSRemote :: RemoteType -> AWSCreds -> String -> (Remote -> Handler ()) -> RemoteConfig -> Handler ()
|
||||
|
|
|
@ -10,28 +10,29 @@
|
|||
module Assistant.WebApp.Configurators.Delete where
|
||||
|
||||
import Assistant.WebApp.Common
|
||||
import Assistant.DeleteRemote
|
||||
import Assistant.WebApp.Utility
|
||||
import Assistant.DaemonStatus
|
||||
import Assistant.ScanRemotes
|
||||
import qualified Remote
|
||||
import Remote.List (remoteListRefresh)
|
||||
import qualified Git.Command
|
||||
import qualified Git
|
||||
import Locations.UserConfig
|
||||
import Utility.FileMode
|
||||
import Logs.Trust
|
||||
import Logs.Remote
|
||||
import Logs.PreferredContent
|
||||
import Types.StandardGroups
|
||||
|
||||
import qualified Data.Text as T
|
||||
import System.IO.HVFS (SystemFS(..))
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Map as M
|
||||
|
||||
getDeleteRepositoryR :: UUID -> Handler RepHtml
|
||||
getDeleteRepositoryR uuid = go =<< liftAnnex (Remote.remoteFromUUID uuid)
|
||||
where
|
||||
go Nothing = redirect DeleteCurrentRepositoryR
|
||||
go (Just r) = deletionPage $ do
|
||||
reponame <- liftAnnex $ concat <$> Remote.prettyListUUIDs [uuid]
|
||||
reponame <- liftAnnex $ Remote.prettyUUID uuid
|
||||
$(widgetFile "configurators/delete/choose")
|
||||
|
||||
getDeleteRepositoryFromListR :: UUID -> Handler RepHtml
|
||||
|
@ -39,20 +40,6 @@ getDeleteRepositoryFromListR uuid = do
|
|||
void $ liftAssistant $ removeRemote uuid
|
||||
redirect DashboardR
|
||||
|
||||
removeRemote :: UUID -> Assistant Remote
|
||||
removeRemote uuid = do
|
||||
remote <- fromMaybe (error "unknown remote")
|
||||
<$> liftAnnex (Remote.remoteFromUUID uuid)
|
||||
liftAnnex $ do
|
||||
inRepo $ Git.Command.run
|
||||
[ Param "remote"
|
||||
, Param "remove"
|
||||
, Param (Remote.name remote)
|
||||
]
|
||||
void $ remoteListRefresh
|
||||
updateSyncRemotes
|
||||
return remote
|
||||
|
||||
getStartDeleteRepositoryContentsR :: UUID -> Handler RepHtml
|
||||
getStartDeleteRepositoryContentsR uuid = deletionPage $ do
|
||||
remote <- fromMaybe (error "unknown remote")
|
||||
|
@ -62,9 +49,16 @@ getStartDeleteRepositoryContentsR uuid = deletionPage $ do
|
|||
setStandardGroup uuid UnwantedGroup
|
||||
liftAssistant $ addScanRemotes True [remote]
|
||||
|
||||
reponame <- liftAnnex $ concat <$> Remote.prettyListUUIDs [uuid]
|
||||
reponame <- liftAnnex $ Remote.prettyUUID uuid
|
||||
$(widgetFile "configurators/delete/started")
|
||||
|
||||
getFinishedDeletingRepositoryContentsR :: UUID -> Handler RepHtml
|
||||
getFinishedDeletingRepositoryContentsR uuid = deletionPage $ do
|
||||
reponame <- liftAnnex $ Remote.prettyUUID uuid
|
||||
{- If it's not listed in the remote log, it must be a git repo. -}
|
||||
gitrepo <- liftAnnex $ M.notMember uuid <$> readRemoteLog
|
||||
$(widgetFile "configurators/delete/finished")
|
||||
|
||||
getDeleteCurrentRepositoryR :: Handler RepHtml
|
||||
getDeleteCurrentRepositoryR = deleteCurrentRepository
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ import Utility.Mounts
|
|||
import Utility.DiskFree
|
||||
import Utility.DataUnits
|
||||
import Utility.Network
|
||||
import Remote (prettyListUUIDs)
|
||||
import Remote (prettyUUID)
|
||||
import Annex.UUID
|
||||
import Types.StandardGroups
|
||||
import Logs.PreferredContent
|
||||
|
@ -261,8 +261,7 @@ combineRepos dir name = liftAnnex $ do
|
|||
|
||||
getEnableDirectoryR :: UUID -> Handler RepHtml
|
||||
getEnableDirectoryR uuid = page "Enable a repository" (Just Configuration) $ do
|
||||
description <- liftAnnex $
|
||||
T.pack . concat <$> prettyListUUIDs [uuid]
|
||||
description <- liftAnnex $ T.pack <$> prettyUUID uuid
|
||||
$(widgetFile "configurators/enabledirectory")
|
||||
|
||||
{- List of removable drives. -}
|
||||
|
|
|
@ -148,8 +148,7 @@ postEnableRsyncR u = do
|
|||
_ -> redirect AddSshR
|
||||
where
|
||||
showform form enctype status = do
|
||||
description <- liftAnnex $
|
||||
T.pack . concat <$> prettyListUUIDs [u]
|
||||
description <- liftAnnex $ T.pack <$> prettyUUID u
|
||||
$(widgetFile "configurators/ssh/enable")
|
||||
enable sshdata = lift $ redirect $ ConfirmSshR $
|
||||
sshdata { rsyncOnly = True }
|
||||
|
|
|
@ -113,7 +113,7 @@ postEnableWebDAVR uuid = do
|
|||
makeWebDavRemote name (toCredPair input) (const noop) M.empty
|
||||
_ -> do
|
||||
description <- liftAnnex $
|
||||
T.pack . concat <$> Remote.prettyListUUIDs [uuid]
|
||||
T.pack <$> Remote.prettyUUID uuid
|
||||
$(widgetFile "configurators/enablewebdav")
|
||||
#else
|
||||
postEnableWebDAVR _ = error "WebDAV not supported by this build"
|
||||
|
|
|
@ -29,10 +29,6 @@
|
|||
/config/repository/edit/new/cloud/#UUID EditNewCloudRepositoryR GET POST
|
||||
/config/repository/sync/disable/#UUID DisableSyncR GET
|
||||
/config/repository/sync/enable/#UUID EnableSyncR GET
|
||||
/config/repository/delete/choose/#UUID DeleteRepositoryR GET
|
||||
/config/repository/delete/fromlist/#UUID DeleteRepositoryFromListR GET
|
||||
/config/repository/delete/contents/start/#UUID StartDeleteRepositoryContentsR GET
|
||||
/config/repository/delete/here DeleteCurrentRepositoryR GET POST
|
||||
|
||||
/config/repository/add/drive AddDriveR GET POST
|
||||
/config/repository/add/drive/confirm/#RemovableDrive ConfirmAddDriveR GET
|
||||
|
@ -47,6 +43,12 @@
|
|||
/config/repository/add/cloud/glacier AddGlacierR GET POST
|
||||
/config/repository/add/cloud/box.com AddBoxComR GET POST
|
||||
|
||||
/config/repository/delete/choose/#UUID DeleteRepositoryR GET
|
||||
/config/repository/delete/fromlist/#UUID DeleteRepositoryFromListR GET
|
||||
/config/repository/delete/contents/start/#UUID StartDeleteRepositoryContentsR GET
|
||||
/config/repository/delete/contents/finish/#UUID FinishedDeletingRepositoryContentsR GET
|
||||
/config/repository/delete/here DeleteCurrentRepositoryR GET POST
|
||||
|
||||
/config/repository/pair/local/start StartLocalPairR GET POST
|
||||
/config/repository/pair/local/running/#SecretReminder RunningLocalPairR GET
|
||||
/config/repository/pair/local/finish/#PairMsg FinishLocalPairR GET POST
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue