diff --git a/Makefile.am b/Makefile.am index 5dfa489f5f930a24f0d3d20e7099dbec1cb1204e..a3165b5a19c7606fbb005db5c48ce6468c4b2dd1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -385,6 +385,7 @@ HS_LIB_SRCS = \ htools/Ganeti/HTools/Text.hs \ htools/Ganeti/HTools/Types.hs \ htools/Ganeti/HTools/Utils.hs \ + htools/Ganeti/HTools/Program.hs \ htools/Ganeti/HTools/Program/Hail.hs \ htools/Ganeti/HTools/Program/Hbal.hs \ htools/Ganeti/HTools/Program/Hscan.hs \ diff --git a/htools/Ganeti/HTools/Program.hs b/htools/Ganeti/HTools/Program.hs new file mode 100644 index 0000000000000000000000000000000000000000..3c7b8255c36cf105aa0dae715ff40affb19c6b8f --- /dev/null +++ b/htools/Ganeti/HTools/Program.hs @@ -0,0 +1,43 @@ +{-| Small module holding program definitions. + +-} + +{- + +Copyright (C) 2011, 2012 Google Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +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 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., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +-} + +module Ganeti.HTools.Program + ( personalities + ) where + +import Ganeti.HTools.CLI (OptType, Options) + +import qualified Ganeti.HTools.Program.Hail as Hail +import qualified Ganeti.HTools.Program.Hbal as Hbal +import qualified Ganeti.HTools.Program.Hscan as Hscan +import qualified Ganeti.HTools.Program.Hspace as Hspace + +-- | Supported binaries. +personalities :: [(String, (Options -> [String] -> IO (), [OptType]))] +personalities = [ ("hail", (Hail.main, Hail.options)) + , ("hbal", (Hbal.main, Hbal.options)) + , ("hscan", (Hscan.main, Hscan.options)) + , ("hspace", (Hspace.main, Hspace.options)) + ] diff --git a/htools/htools.hs b/htools/htools.hs index d33b96150aa5dfad9927bd3e6171055f63d92dde..f35c18cdf9238d421131978850a4e756ae0e0fe3 100644 --- a/htools/htools.hs +++ b/htools/htools.hs @@ -31,19 +31,8 @@ import System.Exit import System.IO import Ganeti.HTools.Utils -import Ganeti.HTools.CLI (OptType, Options, parseOpts) -import qualified Ganeti.HTools.Program.Hail as Hail -import qualified Ganeti.HTools.Program.Hbal as Hbal -import qualified Ganeti.HTools.Program.Hscan as Hscan -import qualified Ganeti.HTools.Program.Hspace as Hspace - --- | Supported binaries. -personalities :: [(String, (Options -> [String] -> IO (), [OptType]))] -personalities = [ ("hail", (Hail.main, Hail.options)) - , ("hbal", (Hbal.main, Hbal.options)) - , ("hscan", (Hscan.main, Hscan.options)) - , ("hspace", (Hspace.main, Hspace.options)) - ] +import Ganeti.HTools.CLI (parseOpts) +import Ganeti.HTools.Program (personalities) -- | Display usage and exit. usage :: String -> IO ()