git-annex-10.20250828: CmdLine/GitRemoteTorAnnex.hs
{- git-remote-tor-annex program
-
- Copyright 2016 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
module CmdLine.GitRemoteTorAnnex where
import Common
import Utility.Tor
import P2P.Address
import CmdLine.GitRemoteP2PAnnex (runner)
run :: [String] -> IO ()
run = runner mkaddress
where
mkaddress address =
let (onionaddress, onionport)
| '/' `elem` address = parseAddressPort $
reverse $ takeWhile (/= '/') $ reverse address
| otherwise = parseAddressPort address
in TorAnnex onionaddress onionport
parseAddressPort :: String -> (OnionAddress, OnionPort)
parseAddressPort s =
let (a, sp) = separate (== ':') s
in case readish sp of
Nothing -> giveup "onion address must include port number"
Just p -> (OnionAddress a, p)