packages feed

haskell-postal-0.1.0.0: src/main.hs

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Control.Monad
import System.Environment
import System.Exit
import NLP.Postal

import qualified Data.Text as T

main :: IO ()
main = do
    args <- getArgs

    when (length args /= 1) $ die "Usage: haskell-postal <address>"

    let address = T.pack $ head args

    putStrLn "Setting up libpostal..."
    setup >>= \x -> when (x == 0) $ die "FAIL"

    putStrLn "Setting up the parser..."
    setupParser >>= \x -> when (x == 0) $ die "FAIL"

    putStrLn "Setting up the language classifier..."
    setupLanguageClassifier >>= \x -> when (x == 0) $ die "FAIL"

    defParserOpts <- getAddressParserDefaultOptions
    defNormalizeOptions <- getDefaultNormalizeOptions

    parseAddress defParserOpts address >>= print
    expandAddress defNormalizeOptions address >>= print

    tearDownLanguageClassifier
    tearDownParser
    tearDown