summaryrefslogtreecommitdiff
path: root/Utility
Commit message (Collapse)AuthorAge
...
| * NotificationBroadcaster: Use SampleVars from SafeSemaphores instead of baseGravatar Ben Gamari2012-10-05
|/ | | | SampleVars from base are unsafe
* make a pipeReadStrict, that properly waits on the processGravatar Joey Hess2012-10-04
| | | | | | Nearly everything that's reading from git is operating on a small amount of output and has been switched to use that. Only pipeNullSplit stuff continues using the lazy version that yields zombies.
* added preferred-content log, and allow editing it with vicfgGravatar Joey Hess2012-10-04
| | | | | | | | | | | | | | This includes a full parser for the boolean expressions in the log, that compiles them into Matchers. Those matchers are not used yet. A complication is that matching against an expression should never crash git-annex with an error. Instead, vicfg checks that the expressions parse. If a bad expression (or an expression understood by some future git-annex version) gets into the log, it'll be ignored. Most of the code in Limit couldn't fail anyway, but I did have to make limitCopies check its parameter first, and return an error if it's bad, rather than erroring at runtime.
* bring back default SIGINT handlerGravatar Joey Hess2012-10-01
| | | | | | | | | | | | This seems to fix a problem I've recently seen where ctrl-c during rsync leads to `git annex get` moving on to the next thing rather than exiting. Seems likely that started happening with the switch to System.Process (d1da9cf221aeea5c7ac8a313a18b559791a04f12), as the old code took care to install a default SIGINT handler. Note that since the bug was only occurring sometimes, I am not 100% sure I've squashed it, although I seem to have.
* let's not -DOSX, that results in unwanted manglingGravatar Joey Hess2012-09-29
|
* kqueue bugfix: apply pruner to changed filesGravatar Joey Hess2012-09-28
| | | | | It already applied the pruner when traversing directories, so .git is excluded, but .gitignore was not. Now it is.
* retry bindGravatar Joey Hess2012-09-27
| | | | | | This is a workaround for bind failing with EINVAL sometimes on OSX. I don't know why; EVINAL should mean the socket is already bound to an address, but this is with a new socket.
* make the standalone OSX app automatically install itself when runGravatar Joey Hess2012-09-26
|
* Fix fallback to ~/Desktop when xdg-user-dir is not available. Closes: #688833Gravatar Joey Hess2012-09-25
| | | | | Really the fix here is to make Utility.Process only throw IOErrors, which is what I naturally assumed it'd throw.
* New --time-limit option, makes long git-annex commands stop after a ↵Gravatar Joey Hess2012-09-25
| | | | specified amount of time.
* move sticky bit code into Utility.FileModeGravatar Joey Hess2012-09-25
| | | | | | | | | | | Simplified it using existing functions. I doubt setSticky needs to return the FileMode; if it does for some reason, it can be changed to use modifyFileMode' Converted isSticky to a pure function for consistency with isSymlink. Note that the sticky bit of a file can be tested thus: isSticky . fileMode <$> getFileStatus file
* hooked up git-annex-shell transferinfoGravatar Joey Hess2012-09-21
| | | | Finally done with progressbars!
* avoid calling the progress callback when the bytes sent have not changedGravatar Joey Hess2012-09-20
| | | | | Does rsync stall and update its progress display? Dunno, but this was an easy optimisation to throw in.
* watch for changes to transfer info files, to update progress bars on uploadGravatar Joey Hess2012-09-20
| | | | | | | | | | | | | | This is handled differently for inotify, which can track modifications of existing files, and kqueue, which cannot (TTBOMK). On the inotify side, the TransferWatcher just waits for the file to be updated and reads the new bytesComplete. On the kqueue side, the TransferPoller has to re-read the file every update (currently 0.5 seconds, might need to increase that). I did think about working around kqueue's limitations by somehow creating a new file each time the size changed. But cleaning up all the files that would result seemed difficult. And really, this is not a lot worse than the TransferWatcher's behavior for downloads, which stats a file every 0.5 seconds. As long as the OS has decent file caching behavior..
* optimised rsync output reader to read whole blocks at a timeGravatar Joey Hess2012-09-20
|
* updateGravatar Joey Hess2012-09-20
|
* better parameter nameGravatar Joey Hess2012-09-19
|
* rsync progress interceptionGravatar Joey Hess2012-09-19
| | | | | | | | Current implementation parses rsync's output a character a time, which is hardly efficient. It could be sped up a lot by using hGetBufSome, but that would require going really lowlevel, down to raw C style buffers (good example of that here: http://users.aber.ac.uk/afc/stricthaskell.html) But rsync doesn't output very much, so currently it seems ok.
* parser for rsync progress outputGravatar Joey Hess2012-09-19
|
* renamed RsyncFile -> RsyncGravatar Joey Hess2012-09-19
|
* prefer ipv4 localhost when both are availableGravatar Joey Hess2012-09-18
| | | | | | | | | | The webapp can only run on one of ipv4 and ipv6, no both. Some web browsers may not support ipv6, so ipv4 is the safe choice. The actual problem I ran into with it only listening to ipv6 was that Utility.Url.exists was failing to connect to it. I doubt that haskell's HTTP library is ipv4 only. More likely, it was only trying one address, and tried ipv4 first.
* flip catchDefaultIOGravatar Joey Hess2012-09-17
|
* run git coprocesses with gitEnvGravatar Joey Hess2012-09-15
|
* add decodeW8Gravatar Joey Hess2012-09-13
|
* responding to pair requests *almost* worksGravatar Joey Hess2012-09-10
|
* add withTempDirGravatar Joey Hess2012-09-10
|
* fix gpg pipeline stallGravatar Joey Hess2012-09-09
| | | | | | Bug introduced in d1da9cf221aeea5c7ac8a313a18b559791a04f12, where I removed a forkProcess when feeding gpg. Feeding it from a thread solves the bug.
* pairing passphrase entry form, validation, etcGravatar Joey Hess2012-09-08
| | | | | | Actually 3 forms in one, this handles the initial passphrase entry, and the confirmation, and also varys wording if the same user or a different user is confirming.
* broke out Verifiable to a utility library, and added a quickcheck testGravatar Joey Hess2012-09-07
|
* import yesod qualifiedGravatar Joey Hess2012-08-30
| | | | | | To avoid conflict with different liftIO from MonadIO (in some version of yesod not the one I have here), and because it's generally clearer, since this module has both Wai and Yesod stuff, to qualify them both.
* thread safe git-annex index file useGravatar Joey Hess2012-08-24
|
* add NetWatcher threadGravatar Joey Hess2012-08-21
| | | | | | This deals with interruptions in network connectevity, by listening for a new network interface coming up (using dbus to see when network-manager or wicd do it), and forcing a rescan of
* Merge branch 'master' into assistantGravatar Joey Hess2012-08-17
|\ | | | | | | | | Conflicts: debian/changelog
| * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt.Gravatar Joey Hess2012-08-17
| |
* | support building with yesod-default 1.1.0Gravatar Joey Hess2012-08-09
| | | | | | | | | | | | | | | | | | Old 1.0.1 version is still supported as well. Cabal autodetects which version is available, but in the Makefile, WITH_OLD_YESOD has to be configured appropriately. I have not squashed all the $newline warnings with the new Yesod. They should go away eventually anyway as Yesod moves past that transition.
* | make pid file directoryGravatar Joey Hess2012-08-08
| |
* | Merge branch 'master' into assistantGravatar Joey Hess2012-08-07
|\|
* | updateGravatar Joey Hess2012-08-07
| |
| * move commentGravatar Joey Hess2012-08-07
| |
* | addGravatar Joey Hess2012-08-06
| |
* | avoid headGravatar Joey Hess2012-08-05
| |
* | addGravatar Joey Hess2012-08-05
| |
* | work toward adding new repos on removable drivesGravatar Joey Hess2012-08-04
| | | | | | | | | | This actually does add a new repo, but it doesn't yet set up remotes, or sync to it.
* | fix xdg desktop dir lookup codeGravatar Joey Hess2012-08-02
| | | | | | | | | | had to use xdg-user-dir to query it, since it's in a shell format file. Fall back to
* | better ~/ handlingGravatar Joey Hess2012-08-02
| |
* | fix bugs, add desktop dirGravatar Joey Hess2012-08-02
| |
* | full autostart supportGravatar Joey Hess2012-08-02
| | | | | | | | | | | | | | | | git annex assistant --autostart will start separate daemons in each listed autostart repo running the webapp outside any git-annex repo will open it on the first listed autostart repo
* | install autostart file tooGravatar Joey Hess2012-08-01
| |
* | installing desktop file workingGravatar Joey Hess2012-08-01
| | | | | | | | Not hooked up to either Makefile or cabal yet
* | implement enough of the fdo specs to be able to write desktop menu filesGravatar Joey Hess2012-08-01
| | | | | | | | to the appropriate system or local user directory