summaryrefslogtreecommitdiff
path: root/Utility
Commit message (Collapse)AuthorAge
* use widgetFileGravatar Joey Hess2012-07-26
|
* webapp now does long pollingGravatar Joey Hess2012-07-26
| | | | | | | | The webapp is now a constantly updating clock! I accomplished this amazing feat using "long polling", with some jquery and a little custom java script. There are more modern techniques, but this one works everywhere.
* fix OSX open callGravatar Joey Hess2012-07-26
|
* on second thought, the session cookie is still useful to support setMessageGravatar Joey Hess2012-07-26
|
* git annex webapp --force forces a restart of the daemonGravatar Joey Hess2012-07-26
| | | | Useful for testing..
* update build depsGravatar Joey Hess2012-07-26
|
* use the secret token for authentication, and add to all dynamic urlsGravatar Joey Hess2012-07-26
|
* generate random token and launch webapp using itGravatar Joey Hess2012-07-26
|
* added a custom defaultLayout, static site, and faviconGravatar Joey Hess2012-07-26
| | | | | | | | | | Broke hamlet out into standalone files. I don't like the favicon display; it should be served from /favicon.ico, but I could only get the static site to serve /static/favicon.ico, so I had to use a <link rel=icon> to pull it in. I looked at Yesod.Default.Handlers.getFaviconR, but it doesn't seem to embed the favicon into the binary?
* git annex webapp now opens a browser to the webappGravatar Joey Hess2012-07-25
| | | | Also, starts the assistant if it wasn't already running.
* run yesod, and launch webapp on startupGravatar Joey Hess2012-07-25
|
* add a path field to remotesGravatar Joey Hess2012-07-22
| | | | | Also broke out some helper functions around constructing remotes, to be used later.
* left unsafe imports here; added a comment with a rationalleGravatar Joey Hess2012-07-20
|
* use safe FFI imports for diskfreeGravatar Joey Hess2012-07-20
| | | | | | There's a minor performance overhead to doing this, but this way I don't have to worry about a situation where statfs might block for a long time. For example, when it's on a network filesystem.
* use safe FFI importsGravatar Joey Hess2012-07-20
| | | | | This avoids blocking all threads when calling waitchange_kqueue, which blocks.
* store whole MntentsGravatar Joey Hess2012-07-19
| | | | | This way, if a mount point was already mounted, but something else gets mounted there, it'll be seen as a new mount.
* cleanupGravatar Joey Hess2012-07-19
|
* now working on OSXGravatar Joey Hess2012-07-19
| | | | | | | While this seems to work fine when used in a simple program, when I load it in ghci, it segfaults about half the time. Don't know why, and seems ghci specific, but if I get reports of crashes, I'll need to look into that.
* fix build on OSXGravatar Joey Hess2012-07-19
|
* try to make Utility.Mounts portableGravatar Joey Hess2012-07-19
| | | | | This is an unholy mashup, but it just might work. It works on Linux, that's all I've tested. :)
* extacted Mounts.hsc from hsshellscriptGravatar Joey Hess2012-07-19
| | | | | | | | | Converted from using c2hs to using hsc2hs, just because other code in git-annex uses hsc2hs. Various cleanups. This code is LGPLed, so I had to include that licence.
* fooGravatar Joey Hess2012-07-19
|
* better readProcessGravatar Joey Hess2012-07-19
|
* add back debug loggingGravatar Joey Hess2012-07-19
| | | | | | | | | | | | | Make Utility.Process wrap the parts of System.Process that I use, and add debug logging to them. Also wrote some higher-level code that allows running an action with handles to a processes stdin or stdout (or both), and checking its exit status, all in a single function call. As a bonus, the debug logging now indicates whether the process is being run to read from it, feed it data, chat with it (writing and reading), or just call it for its side effect.
* rewrote to not use forkProcessGravatar Joey Hess2012-07-18
| | | | That can make the threaded runtime stall.. But it can use threads now!
* add missing importsGravatar Joey Hess2012-07-18
|
* Merge branch 'threaded' into assistantGravatar Joey Hess2012-07-18
|\
| * switch from System.Cmd.Utils to System.ProcessGravatar Joey Hess2012-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test suite now passes with -threaded! I traced back all the hangs with -threaded to System.Cmd.Utils. It seems it's just crappy/unsafe/outdated, and should not be used. System.Process seems to be the cool new thing, so converted all the code to use it instead. In the process, --debug stopped printing commands it runs. I may try to bring that back later. Note that even SafeSystem was switched to use System.Process. Since that was a modified version of code from System.Cmd.Utils, it needed to be converted too. I also got rid of nearly all calls to forkProcess, and all calls to executeFile, which I'm also doubtful about working well with -threaded.
| * more debuggingGravatar Joey Hess2012-07-18
| |
* | cleanupGravatar Joey Hess2012-07-17
| |
* | bugfixGravatar Joey Hess2012-07-17
| |
* | kqueue: properly call delHook for file deletion, not delDirHookGravatar Joey Hess2012-07-17
| |
* | robustness fixGravatar Joey Hess2012-07-17
| | | | | | | | Don't fall over symlinks, and avoid crashing if the file goes away.
* | cleanupGravatar Joey Hess2012-07-17
| |
* | add inodes to kqueue's directory cacheGravatar Joey Hess2012-07-17
| | | | | | | | | | | | | | | | | | | | This is necessary to generate events when a file is deleted and immediately replaced. Otherwise, the cache will have the old file, and so no event would be generated. Use of getFileStatus is suboptimal, it would be faster to use the inode returned by readdir -- but getDirectoryContents does not expose it, so I'd have to copy and modify a lot of low-level code.
| * add debuggingGravatar Joey Hess2012-07-17
| |
* | Merge branch 'master' into assistantGravatar Joey Hess2012-07-02
|\|
| * better pid file locking codeGravatar Joey Hess2012-07-02
| |
| * avoid untrappable exception if dirContentsRecursive is run on a directoryGravatar Joey Hess2012-07-02
| | | | | | | | | | | | | | | | that doesn't exist, or cannot be read The problem is its use of unsafeInterleaveIO, which causes its IO code to run when the thunk is forced, outside any exception trapping the caller may do.
| * record transfers for git-annex-shellGravatar Joey Hess2012-07-02
| | | | | | | | | | | | | | | | | | Not yet tested and places git-annex-shell is run need to be modified to pass the new field settings. Note that rsyncServerSend was changed to fork, rather than directly exec rsync, because it needs to keep the transfer lock held, and clean up the transfer log when done.
| * add fields to git-annex-shellGravatar Joey Hess2012-07-02
| |
* | Merge branch 'master' into assistantGravatar Joey Hess2012-07-01
|\|
| * pointlessnessGravatar Joey Hess2012-06-29
| |
* | typoGravatar Joey Hess2012-06-28
| |
* | fix kqueue buildGravatar Joey Hess2012-06-28
| |
* | improve thread termination handlingGravatar Joey Hess2012-06-28
| | | | | | | | | | | | | | | | | | | | The reason the DirWatcher had to wait for program termination was because it used withINotify, so when it finished, its watcher threads were killed. But since I have two DirWatcher threads now, that was not good, and could perhaps explain the MVar problem I saw yesterday. In any case, fixed this part of the code by making the DirWatcher return a handle that can be used to stop it, and now the main Assistant thread is the only one calling waitForTermination.
* | use a TMVarGravatar Joey Hess2012-06-26
| | | | | | | | | | | | | | SampleMVar won't work; between getting the current value and changing it, another thread could made a change, which would get lost. TMVar works well; this update situation is handled by atomic transactions.
* | add a push retry threadGravatar Joey Hess2012-06-25
| |
* | golfingGravatar Joey Hess2012-06-23
| |
* | added a merger threadGravatar Joey Hess2012-06-22
| | | | | | | | | | | | Wow! I can create a file in repo a, and it instantly* shows up in repo b! * under 1 second anyway