summaryrefslogtreecommitdiff
path: root/Messages.hs
Commit message (Collapse)AuthorAge
* Flush json output, avoiding a buffering problem that could result in doubled ↵Gravatar Joey Hess2011-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | output. The bug was that with --json, output lines were sometimes doubled. For example, git annex init --json would output two lines, despite only running one thing. Adding to the weirdness, this only occurred when the output was redirected to a pipe or a file. Strace showed two processes outputting the same buffered output. The second process was this writer process (only needed to work around bug #624389): _ <- forkProcess $ do hPutStr toh $ unlines paths hClose toh exitSuccess The doubled output occurs when this process exits, and ghc flushes the inherited stdout buffer. Why only when piping? I don't know, but ghc may be behaving differently when stdout is not a terminal. While this is quite possibly a ghc bug, there is a nice fix in git-annex. Explicitly flushing after each chunk of json is output works around the problem, and as a side effect, json is streamed rather than being output all at the end when performing an expensive operaition. However, note that this means all uses of putStr in git-annex must be explicitly flushed. The others were, already.
* status --json now shows most thingsGravatar Joey Hess2011-11-20
| | | | | | Left out the backend usage graph for now, and bad/temp directory sizes are only displayed when present. Also, disk usage is returned as a string with units, which I can see changing later.
* better status outputGravatar Joey Hess2011-11-15
|
* status --json --fast for escGravatar Joey Hess2011-11-14
| | | | | | * status: Fix --json mode (only the repository lists are currently displayed) * status: --fast is back
* minor syntax changesGravatar Joey Hess2011-10-11
|
* factor out common importsGravatar Joey Hess2011-10-03
| | | | no code changes
* more newline fixesGravatar Joey Hess2011-09-09
| | | | | | | | | | Adds a missing newline when a longnote is followed by a endresult. Multiple longnotes in a row will now be separated by a blank line, which could be a bug or a feature depending on taste. Removed several places where newlines were explicitly displayed after longnotes.
* Improve display of newlines around error and warning messages.Gravatar Joey Hess2011-09-06
|
* avoid showing json lists of remotes when not in json modeGravatar Joey Hess2011-09-02
|
* basic json supportGravatar Joey Hess2011-09-01
| | | | | | | | | | | | | | | | | | This includes a generic JSONStream library built on top of Text.JSON (somewhat hackishly). It would be possible to stream out a single json document describing all actions, but it's probably better for consumers if they can expect one json document per line, so I did it that way instead. Output from external programs used for transferring files is not currently hidden when outputting json, which probably makes it not very useful there. This may be dealt with if there is demand for json output for --get or --move to be parsable. The version, status, and find subcommands have hand-crafted output and don't do json. The whereis subcommand needs to be modified to produce useful json.
* generalize quiet flag to output typeGravatar Joey Hess2011-09-01
| | | | This will allow adding other styles of output.
* unify elipsis handlingGravatar Joey Hess2011-07-19
| | | | | And add a simple dots-based progress display, currently only used in v2 upgrade.
* hlint tweaksGravatar Joey Hess2011-07-15
| | | | Did all sources except Remotes/* and Command/*
* better display of thrown errorsGravatar Joey Hess2011-07-05
|
* Maybe reduction pass 2Gravatar Joey Hess2011-05-15
|
* Rethink filename encoding handling for display. Since filename encoding may ↵0.23Gravatar Joey Hess2011-03-12
| | | | or may not match locale settings, any attempt to decode filenames will fail for some files. So instead, do all output in binary mode.
* put in utf8 forcing workaroundGravatar Joey Hess2011-03-08
| | | | | | | | | Haskell's IO layer crashes on characters > 255 when in a non-unicode (latin1) locale. Until Haskell gets better behavior, put in an admittedly ugly workaround for that: git-annex forces utf8 output mode no matter what locale is selected. So if you use a non-utf8 locale, your filenames with characters > 127 will not be displayed as you'd expect. But at least it won't crash.
* qualified importGravatar Joey Hess2011-02-11
|
* update unicode FilePath handlingGravatar Joey Hess2011-02-11
| | | | | | | | Based on http://hackage.haskell.org/trac/ghc/ticket/3307 , whether FilePath contains decoded unicode varies by OS. So, add a configure check for it. Also, renamed showFile to filePathToString
* fooGravatar Joey Hess2011-02-10
|
* Fix display of unicode filenames.Gravatar Joey Hess2011-02-10
| | | | | | | | | Internally, the filenames are stored as un-decoded unicode. I tried decoding them, but then haskell tries to access the wrong files. Hmm. So, I've unhappily chosen option "B", which is to decode filenames before they are displayed.
* better warnings displayGravatar Joey Hess2011-01-26
|
* rework config storageGravatar Joey Hess2011-01-26
| | | | | | | Moved away from a map of flags to storing config directly in the AnnexState structure. Got rid of most accessor functions in Annex. This allowed supporting multiple --exclude flags.
* missing \n in -q modeGravatar Joey Hess2010-11-28
|
* hlint tweaksGravatar Joey Hess2010-11-22
| | | | Remotes.hs next, and also Backend/* and Command/*
* this is kinda weird, but it avoids blank lines after warningsGravatar Joey Hess2010-11-15
|
* fsck: Print warnings to stderr; --quiet can now be used to only see problems.Gravatar Joey Hess2010-11-15
|
* add showSideActionGravatar Joey Hess2010-11-08
|
* refactoring, no code changes reallyGravatar Joey Hess2010-11-08