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.
|
have TCPKeepAlive enabled by default.
|
||||||
* Make all --batch input, as well as fromkey and registerurl stdin
|
* Make all --batch input, as well as fromkey and registerurl stdin
|
||||||
be processed without requiring it to be in the current encoding.
|
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
|
-- Joey Hess <id@joeyh.name> Sun, 11 Dec 2016 21:29:51 -0400
|
||||||
|
|
||||||
|
|
|
@ -27,25 +27,43 @@ cmd = command "p2p" SectionSetup
|
||||||
|
|
||||||
data P2POpts
|
data P2POpts
|
||||||
= GenAddresses
|
= GenAddresses
|
||||||
| LinkRemote RemoteName
|
| LinkRemote
|
||||||
|
|
||||||
optParser :: CmdParamsDesc -> Parser P2POpts
|
optParser :: CmdParamsDesc -> Parser (P2POpts, Maybe RemoteName)
|
||||||
optParser _ = genaddresses <|> linkremote
|
optParser _ = (,)
|
||||||
|
<$> (genaddresses <|> linkremote)
|
||||||
|
<*> optional name
|
||||||
where
|
where
|
||||||
genaddresses = flag' GenAddresses
|
genaddresses = flag' GenAddresses
|
||||||
( long "gen-addresses"
|
( long "gen-addresses"
|
||||||
<> help "generate addresses that allow accessing this repository over P2P networks"
|
<> help "generate addresses that allow accessing this repository over P2P networks"
|
||||||
)
|
)
|
||||||
linkremote = LinkRemote <$> strOption
|
linkremote = flag' LinkRemote
|
||||||
( long "link"
|
( long "link"
|
||||||
<> metavar paramRemote
|
<> help "set up a P2P link to a git remote"
|
||||||
<> help "specify name to use for git remote"
|
)
|
||||||
|
name = strOption
|
||||||
|
( long "name"
|
||||||
|
<> metavar paramName
|
||||||
|
<> help "name of remote"
|
||||||
)
|
)
|
||||||
|
|
||||||
seek :: P2POpts -> CommandSeek
|
seek :: (P2POpts, Maybe RemoteName) -> CommandSeek
|
||||||
seek GenAddresses = genAddresses =<< loadP2PAddresses
|
seek (GenAddresses, _) = genAddresses =<< loadP2PAddresses
|
||||||
seek (LinkRemote name) = commandAction $
|
seek (LinkRemote, Just name) = commandAction $
|
||||||
linkRemote (Git.Remote.makeLegalName name)
|
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.
|
-- Only addresses are output to stdout, to allow scripting.
|
||||||
genAddresses :: [P2PAddress] -> Annex ()
|
genAddresses :: [P2PAddress] -> Annex ()
|
||||||
|
|
|
@ -22,14 +22,20 @@ services.
|
||||||
over the available P2P networks. The address or addresses is output to
|
over the available P2P networks. The address or addresses is output to
|
||||||
stdout.
|
stdout.
|
||||||
|
|
||||||
* `--link remotename`
|
* `--link`
|
||||||
|
|
||||||
Sets up a git remote with the specified remotename that is accessed over
|
Sets up a git remote that is accessed over a P2P network.
|
||||||
a P2P network.
|
|
||||||
|
|
||||||
This will prompt for an address to be entered; you should paste in the
|
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.
|
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
|
# SEE ALSO
|
||||||
|
|
||||||
[[git-annex]](1)
|
[[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,
|
This will make a git remote named "peer1", which connects,
|
||||||
through Tor, to the repository on the other peer.
|
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
|
That command will prompt for an address; paste in the address that was
|
||||||
generated on the first peer, and then press Enter.
|
generated on the first peer, and then press Enter.
|
||||||
|
|
Loading…
Reference in a new issue