packages feed

rosmsg-bin-0.1.0.0: app/genhs/Main.hs

{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
module Main (main) where

import System.Environment
import Robotics.ROS.Pkg
import Data.Text (pack)
import System.IO.Temp
import Template
import Stack

main :: IO ()
main = withSystemTempDirectory "genhs" $ \tmpDir -> do
    args <- getArgs
    case args of
        [name] -> do
            putStr $ "Search package `" ++ name ++"`..."
            Just pkg <- package (pack name)
            putStrLn "DONE"

            msgs     <- pkgMessages pkg
            putStrLn "Found messages:"
            mapM_ (putStrLn . (" - " ++)) msgs

            template <- newTemplate tmpDir pkg msgs
            putStrLn $ "Template created: " ++ template

            msgPkg <- newPackage tmpDir (pkgName (meta pkg)) template
            putStrLn $ "Package created: " ++ msgPkg
        _ -> putStrLn "USAGE: genhs [PACKAGE_NAME]"