p2p: --link no longer takes a remote name, instead the --name option can be used.
This commit is contained in:
parent
76d525c4d5
commit
e67a310da1
4 changed files with 39 additions and 13 deletions
|
@ -12,6 +12,8 @@ git-annex (6.20161211) UNRELEASED; urgency=medium
|
|||
have TCPKeepAlive enabled by default.
|
||||
* Make all --batch input, as well as fromkey and registerurl stdin
|
||||
be processed without requiring it to be in the current encoding.
|
||||
* p2p: --link no longer takes a remote name, instead the --name
|
||||
option can be used.
|
||||
|
||||
-- Joey Hess <id@joeyh.name> Sun, 11 Dec 2016 21:29:51 -0400
|
||||
|
||||
|
|
|
@ -27,25 +27,43 @@ cmd = command "p2p" SectionSetup
|
|||
|
||||
data P2POpts
|
||||
= GenAddresses
|
||||
| LinkRemote RemoteName
|
||||
| LinkRemote
|
||||
|
||||
optParser :: CmdParamsDesc -> Parser P2POpts
|
||||
optParser _ = genaddresses <|> linkremote
|
||||
optParser :: CmdParamsDesc -> Parser (P2POpts, Maybe RemoteName)
|
||||
optParser _ = (,)
|
||||
<$> (genaddresses <|> linkremote)
|
||||
<*> optional name
|
||||
where
|
||||
genaddresses = flag' GenAddresses
|
||||
( long "gen-addresses"
|
||||
<> help "generate addresses that allow accessing this repository over P2P networks"
|
||||
)
|
||||
linkremote = LinkRemote <$> strOption
|
||||
linkremote = flag' LinkRemote
|
||||
( long "link"
|
||||
<> metavar paramRemote
|
||||
<> help "specify name to use for git remote"
|
||||
<> help "set up a P2P link to a git remote"
|
||||
)
|
||||
name = strOption
|
||||
( long "name"
|
||||
<> metavar paramName
|
||||
<> help "name of remote"
|
||||
)
|
||||
|
||||
seek :: P2POpts -> CommandSeek
|
||||
seek GenAddresses = genAddresses =<< loadP2PAddresses
|
||||
seek (LinkRemote name) = commandAction $
|
||||
seek :: (P2POpts, Maybe RemoteName) -> CommandSeek
|
||||
seek (GenAddresses, _) = genAddresses =<< loadP2PAddresses
|
||||
seek (LinkRemote, Just name) = commandAction $
|
||||
linkRemote (Git.Remote.makeLegalName name)
|
||||
seek (LinkRemote, Nothing) = commandAction $
|
||||
linkRemote =<< unusedPeerRemoteName
|
||||
|
||||
unusedPeerRemoteName :: Annex RemoteName
|
||||
unusedPeerRemoteName = go (1 :: Integer) =<< usednames
|
||||
where
|
||||
usednames = mapMaybe remoteName . remotes <$> Annex.gitRepo
|
||||
go n names = do
|
||||
let name = "peer" ++ show n
|
||||
if name `elem` names
|
||||
then go (n+1) names
|
||||
else return name
|
||||
|
||||
-- Only addresses are output to stdout, to allow scripting.
|
||||
genAddresses :: [P2PAddress] -> Annex ()
|
||||
|
|
|
@ -22,14 +22,20 @@ services.
|
|||
over the available P2P networks. The address or addresses is output to
|
||||
stdout.
|
||||
|
||||
* `--link remotename`
|
||||
* `--link`
|
||||
|
||||
Sets up a git remote with the specified remotename that is accessed over
|
||||
a P2P network.
|
||||
Sets up a git remote that is accessed over a P2P network.
|
||||
|
||||
This will prompt for an address to be entered; you should paste in the
|
||||
address that was generated by --gen-address in the remote repository.
|
||||
|
||||
Defaults to making the git remote be named "peer1", "peer2",
|
||||
etc. This can be overridden with the `--name` option.
|
||||
|
||||
* `--name`
|
||||
|
||||
Specify a name to use when setting up a git remote.
|
||||
|
||||
# SEE ALSO
|
||||
|
||||
[[git-annex]](1)
|
||||
|
|
|
@ -46,7 +46,7 @@ Now, tell the new peer about the address of the first peer.
|
|||
This will make a git remote named "peer1", which connects,
|
||||
through Tor, to the repository on the other peer.
|
||||
|
||||
git annex p2p --link peer1
|
||||
git annex p2p --link --name peer1
|
||||
|
||||
That command will prompt for an address; paste in the address that was
|
||||
generated on the first peer, and then press Enter.
|
||||
|
|
Loading…
Reference in a new issue