tar-0.6.4.0: Codec/Archive/Tar/Entry.hs
-----------------------------------------------------------------------------
-- |
-- Module : Codec.Archive.Tar.Entry
-- Copyright : (c) 2007 Bjorn Bringert,
-- 2008 Andrea Vezzosi,
-- 2008-2009 Duncan Coutts
-- License : BSD3
--
-- Maintainer : duncan@community.haskell.org
-- Portability : portable
--
-- Types and functions to manipulate tar entries.
--
-- While the "Codec.Archive.Tar" module provides only the simple high level
-- API, this module provides full access to the details of tar entries. This
-- lets you inspect all the meta-data, construct entries and handle error cases
-- more precisely.
--
-- This module uses common names and so is designed to be imported qualified:
--
-- > import qualified Codec.Archive.Tar as Tar
-- > import qualified Codec.Archive.Tar.Entry as Tar
--
-----------------------------------------------------------------------------
{-# LANGUAGE CPP #-}
module Codec.Archive.Tar.Entry (
-- * Tar entry and associated types
GenEntry(..),
Entry,
entryPath,
GenEntryContent(..),
EntryContent,
Ownership(..),
FileSize,
Permissions,
EpochTime,
DevMajor,
DevMinor,
TypeCode,
Format(..),
-- * Constructing simple entry values
simpleEntry,
fileEntry,
directoryEntry,
longLinkEntry,
longSymLinkEntry,
-- * Standard file permissions
-- | For maximum portability when constructing archives use only these file
-- permissions.
ordinaryFilePermissions,
executableFilePermissions,
directoryPermissions,
-- * Constructing entries from disk files
packFileEntry,
packDirectoryEntry,
packSymlinkEntry,
#if __GLASGOW_HASKELL__ >= 908
{-# DEPRECATED "The re-export will be removed in future releases of tar, use directory-ospath-streaming package directly " #-}
#endif
getDirectoryContentsRecursive,
-- * TarPath type
TarPath,
toTarPath,
fromTarPath,
fromTarPathToPosixPath,
fromTarPathToWindowsPath,
-- * LinkTarget type
LinkTarget,
toLinkTarget,
fromLinkTarget,
fromLinkTargetToPosixPath,
fromLinkTargetToWindowsPath,
) where
import Codec.Archive.Tar.Types
import Codec.Archive.Tar.Pack
import System.Directory.OsPath.Streaming (getDirectoryContentsRecursive)