From 9f13be882f25a3aa8c6b410ae7844ce4017b108e Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Sun, 15 Jan 2012 00:55:58 +0100 Subject: [PATCH] Split the list of program personalities into a module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit β¦ a mini-module, actually. This is only done for unit-testing, as we don't want to duplicate the personalities list in the tests. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> --- Makefile.am | 1 + htools/Ganeti/HTools/Program.hs | 43 +++++++++++++++++++++++++++++++++ htools/htools.hs | 15 ++---------- 3 files changed, 46 insertions(+), 13 deletions(-) create mode 100644 htools/Ganeti/HTools/Program.hs diff --git a/Makefile.am b/Makefile.am index 5dfa489f5..a3165b5a1 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 000000000..3c7b8255c --- /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 d33b96150..f35c18cdf 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 () -- GitLab