symlinkFile :: Options -> FilePath -> FilePath -> IO ()
symlinkFile opts dest fp = do
    when (optReportRemove opts) $
        putStrLn (fp ++ "@ update to -> " ++ dest)
    case (optRemove opts) of
        OptDryRun -> return ()
        OptScript -> putStrLn ("ln -sf " ++ dest ++ " " ++ fp)
        OptRemove -> safely fp $ removeLink fp >> createSymbolicLink dest fp

-- | Archive a file, by giving it a suffix with a unique integer attached
symlinkFile :: Options -> FilePath -> FilePath -> IO ()
symlinkFile opts dest fp = do
    when (optReportRemove opts) $
        putStrLn (fp ++ "@ update to -> " ++ dest)
    case (optRemove opts) of
        OptDryRun -> return ()
        OptScript -> putStrLn ("ln -sf " ++ dest ++ " " ++ fp)
        OptRemove -> safely fp $ removeLink fp >> createSymbolicLink dest fp

-- | Archive a file, by giving it a suffix with a unique integer attached
symlinkFile opts dest fp = do
    when (optReportRemove opts) $
        putStrLn (fp ++ "@ update to -> " ++ dest)
    case (optRemove opts) of
        OptDryRun -> return ()
        OptScript -> putStrLn ("ln -sf " ++ dest ++ " " ++ fp)
        OptRemove -> safely fp $ removeLink fp >> createSymbolicLink dest fp

-- | Archive a file, by giving it a suffix with a unique integer attached