{----------------------------------------------------------------- (c) 2008-2009 Markus Dittrich This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 3 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License Version 3 for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --------------------------------------------------------------------} -- | this module parses the CHOST info of a package module Parsers.Chost ( get_chost ) where -- imports import qualified Data.ByteString as B(ByteString) import qualified Data.ByteString.Char8 as BC(pack) import Prelude import System.FilePath.Posix(()) import Text.Regex.PCRE((=~)) -- local imports import Helpers.FileIO(read_file) -- | open the SLOT info of a package and return as a -- ByteString get_chost :: FilePath -> IO B.ByteString get_chost p = read_file (p "CHOST") >>= \item -> return $ determine_chost item where -- if we can't figure out the CHOST we simply -- propagate the string "???" to the user determine_chost x | x =~ "i686-" = BC.pack "x86" | x =~ "x86_64-" = BC.pack "amd64" | x =~ "alpha-" = BC.pack "alpha" | x =~ "arm-" = BC.pack "arm" | x =~ "hppa-" = BC.pack "hppa" | x =~ "ia64-" = BC.pack "ia64" | x =~ "m68k-" = BC.pack "m68k" | x =~ "mips64-" = BC.pack "mips" | x =~ "powerpc-" = BC.pack "ppc" | x =~ "powerpc64-" = BC.pack "ppc64" | x =~ "s390-" = BC.pack "s390" | x =~ "sh-" = BC.pack "sh" | x =~ "sparc-" = BC.pack "sparc" | otherwise = BC.pack "???"