packages feed

scp-streams-0.1.0: bin/scp-broken-upload.hs

-- Simulate a network failure or a Ctrl-C on the client when a file is being
-- uploaded. Run against a regular remote `scp`, the file is created but empty.
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where

import qualified System.IO.Streams as S
import System.Environment (getArgs)

import Network.SCP.Protocol
import Network.SCP.Types (Command(Copy))

main :: IO ()
main = do
  [user, host, target] <- getArgs
  scp <- sendSsh user host target
  -- A 10-byte size is advertized...
  _ <- sendCommand scp $ Copy 0 7 5 5 10 "a"
  -- ... but 4-byte input stream is given
  content <- S.fromByteString "AAAA"
  S.connect content (scpIn scp)