hledger 0.16.1 → 0.17
raw patch · 6 files changed
+48/−59 lines, 6 filesdep +cabal-file-thdep ~cmdargsdep ~hledger-libPVP ok
version bump matches the API change (PVP)
Dependencies added: cabal-file-th
Dependency ranges changed: cmdargs, hledger-lib
API changes (from Hackage documentation)
- Hledger.Cli.Version: progversionstr :: String -> String
- Hledger.Cli.Version: version :: String
+ Hledger.Cli.Version: progname, prognameandversion, version :: String
Files
- Hledger/Cli/Balance.hs +5/−1
- Hledger/Cli/Convert.hs +2/−2
- Hledger/Cli/Main.hs +2/−2
- Hledger/Cli/Options.hs +6/−8
- Hledger/Cli/Version.hs +17/−38
- hledger.cabal +16/−8
Hledger/Cli/Balance.hs view
@@ -147,7 +147,11 @@ -- | Render one balance report line item as plain text. accountsReportItemAsText :: ReportOpts -> [FormatString] -> AccountsReportItem -> [String] accountsReportItemAsText opts format (_, accountName, depth, Mixed amounts) =- case amounts of+ -- 'amounts' could contain several quantities of the same commodity with different price.+ -- In order to combine them into single value (which is expected) we take the first price and+ -- use it for the whole mixed amount. This could be suboptimal. XXX+ let Mixed normAmounts = normaliseMixedAmountPreservingFirstPrice (Mixed amounts) in+ case normAmounts of [] -> [] [a] -> [formatAccountsReportItem opts (Just accountName) depth a format] (as) -> multiline as
Hledger/Cli/Convert.hs view
@@ -25,8 +25,8 @@ import Hledger import Hledger.Cli.Format import qualified Hledger.Cli.Format as Format-import Hledger.Cli.Version import Hledger.Cli.Options+import Hledger.Cli.Version {- | A set of data definitions and account-matching patterns sufficient to@@ -144,7 +144,7 @@ initialRulesFileContent :: String initialRulesFileContent =- "# csv conversion rules file generated by "++(progversionstr progname)++"\n" +++ "# csv conversion rules file generated by " ++ prognameandversion ++ "\n" ++ "# Add rules to this file for more accurate conversion, see\n"++ "# http://hledger.org/MANUAL.html#convert\n" ++ "\n" ++
Hledger/Cli/Main.hs view
@@ -65,12 +65,12 @@ args <- getArgs addons <- getHledgerAddonCommands opts <- getHledgerCliOpts addons- when (debug_ opts) $ printf "%s\n" progversion >> printf "opts: %s\n" (show opts)+ when (debug_ opts) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show opts) run' opts addons args where run' opts@CliOpts{command_=cmd} addons args -- delicate, add tests before changing (eg --version, ADDONCMD --version, INTERNALCMD --version)- | (null matchedaddon) && "version" `in_` (rawopts_ opts) = putStrLn progversion+ | (null matchedaddon) && "version" `in_` (rawopts_ opts) = putStrLn prognameandversion | (null matchedaddon) && "binary-filename" `in_` (rawopts_ opts) = putStrLn $ binaryfilename progname | null cmd = putStr $ showModeHelp mainmode' | cmd `isPrefixOf` "add" = showModeHelpOr addmode $ journalFilePathFromOpts opts >>= ensureJournalFile >> withJournalDo opts add
Hledger/Cli/Options.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE TemplateHaskell #-} {-| Command-line options for the hledger program, and option-parsing utilities.@@ -25,9 +26,6 @@ import Hledger.Cli.Version -progname = "hledger"-progversion = progversionstr progname- -- 1. cmdargs mode and flag definitions, for the main and subcommand modes. -- Flag values are parsed initially to simple RawOpts to permit reuse. @@ -428,10 +426,10 @@ journalFilePathFromOpts :: CliOpts -> IO String journalFilePathFromOpts opts = do f <- myJournalPath- return $ errorIfContainsTilde $ fromMaybe f $ file_ opts--errorIfContainsTilde s |'~' `elem` s = error' "unsupported literal ~ found in environment variable, please adjust"- | otherwise = s+ let f' = fromMaybe f $ file_ opts+ if '~' `elem` f'+ then error' $ printf "~ in the journal file path is not supported, please adjust (%s)" f'+ else return f' aliasesFromOpts :: CliOpts -> [(AccountName,AccountName)] aliasesFromOpts = map parseAlias . alias_@@ -445,7 +443,7 @@ alias' = case alias of ('=':rest) -> rest _ -> orig -showModeHelp = showText defaultWrap . helpText HelpFormatDefault+showModeHelp = showText defaultWrap . helpText [] HelpFormatDefault tests_Hledger_Cli_Options = TestList [
Hledger/Cli/Version.hs view
@@ -1,61 +1,40 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP, TemplateHaskell #-} {--Version-related utilities. See the Makefile for details of our version-numbering policy.+Version number-related utilities. See also the Makefile. -} module Hledger.Cli.Version (- version- ,progversionstr- ,binaryfilename+ progname,+ version,+ prognameandversion,+ binaryfilename ) where-import Data.List+import Distribution.PackageDescription.TH (packageVariable, package, pkgName, pkgVersion) import System.Info (os, arch) import Text.Printf import Hledger.Utils --- version and PATCHLEVEL are set by the make process--version :: String-version = "0.16.1"+-- package name and version from the cabal file+progname, version, prognameandversion :: String+progname = $(packageVariable (pkgName . package))+version = $(packageVariable (pkgVersion . package))+prognameandversion = progname ++ " " ++ version +-- developer build version strings include PATCHLEVEL (number of+-- patches since the last tag). If defined, it must be a number. patchlevel :: String #ifdef PATCHLEVEL-patchlevel = "." ++ show (PATCHLEVEL :: Int) -- must be numeric !+patchlevel = "." ++ show (PATCHLEVEL :: Int) #else patchlevel = "" #endif +-- the package version plus patchlevel if specified buildversion :: String-buildversion = version ++ patchlevel :: String---- | Given a program name, return a human-readable version string. For--- development builds, at least non-cabal builds, the patch level (ie the--- number of patches applied since last release tag) will also be--- included.-progversionstr :: String -> String-progversionstr progname = progname ++ "-" ++ versionstr ++ configmsg- where- versionstr = prettify $ splitAtElement '.' buildversion- where- prettify (major:minor:bugfix:patches:[]) =- printf "%s.%s%s%s" major minor bugfix' patches'- where- bugfix'- | bugfix `elem` ["0"{-,"98","99"-}] = ""- | otherwise = '.' : bugfix- patches'- | patches/="0" = "+"++patches- | otherwise = ""- prettify s = intercalate "." s-- configmsg | null buildflags = ""- | otherwise = " with " ++ intercalate ", " buildflags-- buildflags = []+buildversion = version ++ patchlevel -- | Given a program name, return a precise platform-specific executable -- name suitable for naming downloadable binaries. Can raise an error if
hledger.cabal view
@@ -1,5 +1,5 @@ name: hledger-version: 0.16.1+version: 0.17 category: Finance synopsis: The main command-line interface for the hledger accounting tool. description:@@ -17,7 +17,7 @@ homepage: http://hledger.org bug-reports: http://code.google.com/p/hledger/issues stability: beta-tested-with: GHC==6.12, GHC==7.0+tested-with: GHC==7.0, GHC==7.2 cabal-version: >= 1.8 build-type: Simple -- data-dir: data@@ -35,6 +35,10 @@ type: darcs location: http://joyful.com/repos/hledger +flag threaded+ Description: Build with support for multithreaded execution+ Default: True+ library -- XXX should set patchlevel here as in Makefile cpp-options: -DPATCHLEVEL=0@@ -57,10 +61,11 @@ Hledger.Cli.Stats -- should be the same as below build-depends:- hledger-lib == 0.16.1+ hledger-lib == 0.17 ,base >= 3 && < 5+ ,cabal-file-th ,containers- ,cmdargs >= 0.8 && < 0.9+ ,cmdargs >= 0.9.1 && < 0.10 ,csv ,directory ,filepath@@ -104,13 +109,16 @@ Hledger.Cli.Stats -- XXX should set patchlevel here as in Makefile cpp-options: -DPATCHLEVEL=0- ghc-options: -threaded -W- -- should be the same as above+ ghc-options: -W+ if flag(threaded)+ ghc-options: -threaded+ -- should be the same as above build-depends:- hledger-lib == 0.16.1+ hledger-lib == 0.17 ,base >= 3 && < 5+ ,cabal-file-th ,containers- ,cmdargs >= 0.8 && < 0.9+ ,cmdargs >= 0.9.1 && < 0.10 ,csv ,directory ,filepath