| Age | Commit message (Collapse) | Author |
|
Sadly my bug report about this is not going to get fixed it seems, so
I have to drag around a whole added module file just to deal with it.
https://github.com/haskell/directory/issues/52
|
|
|
|
It's now exporting a conflicting isSymbolicLink
https://github.com/haskell/directory/issues/52
Only a few places in propellor use isSymbolicLink, but to prevent future
problems, made as much of it as possible import Utility.Directory, which
re-exports System.Directory without the conflicting symbol.
(Utility.Tmp and System.Console.Concurrent.Internal cannot import
Utility.Directory due to cycles, and don't use isSymbolicLink anyway.)
|
|
|
|
Before, they could run in the background if another process was running,
and so their output wouldn't immediately be visible.
With this change, the concurrent-output layer is not used for these
interactive commands.
|
|
|
|
|
|
withTmpDir security fix in git-annex merged
Fix potential denial of service attack when creating temp dirs.
withTmpDir now makes directory mode 700. AFAICS, propellor didn't leak any
info with the old permissions, and no uses of withTmpDir in propellor are
broken by the new permissions.
|
|
|
|
|
|
|
|
|
|
|
|
This adds a dependency on Text, but I don't mind propellor depending on it
and am somewhat surprised it doesn't already.
Using Text also lets this use encodeUtf8 instead of the nasty hack it was
using to go from String -> ByteString.
|
|
|
|
|
|
|
|
|
|
|
|
threads on shutdown
|
|
|
|
|
|
Build it up reversed, and reverse when processing.
|
|
https://github.com/haskell/process/issues/46
|
|
Race between 2 calls to takeOutputLock'. The first call empties the
TMVar, and does some work to check it. Meanwhile, the second call could
sneak in, see it was empty, and call waitlock. Since waitlock used
tryTakeTMVar, that would not block it, and it would think it had the lock,
filling the TMVar. In the meantime, the first call could decide it had to
lock and go on to possibly cause trouble.
|
|
I had 2 MVars both involved in the same lock, and it seemed intractable to
avoid deadlocks with them. STM makes it easy.
At this point, the concurrent process stuff seems to work pretty well, but
I'm not 100% sure it's not got some bugs.
|
|
|
|
|
|
|
|
This interface will fix the current deadlock when a process is running
and the thread that ran it wants to output to the console.
The locking and buffering is not implemented yet.
|
|
|
|
|
|
|
|
|
|
|
|
Found a reasonable clean way to make Utility.Process use
execProcessConcurrent, while still allowing copying updates to it from
git-annex.
|
|
|
|
Seems better to keep handle encoding issues out of that module.
|
|
privDataByteString.
|
|
|
|
|
|
Before it gets into released API...
|
|
|
|
|
|
Propellor.Property.Cmd, so they are available for use in constricting your own Properties when using propellor as a library.
Several imports of Utility.SafeCommand now redundant.
|
|
|
|
|
|
|
|
|
|
No behavior change
|