61 lines
1.4 KiB
Markdown
61 lines
1.4 KiB
Markdown
Can it be built on Windows?
|
|
|
|
short answer: not yet
|
|
|
|
First, you need to get some unix utilities for windows. Git of course.
|
|
Also rsync, and a `cp` command that understands at least `cp -p`, and
|
|
`uuid`, and `xargs` and `sha1sum`. Note that some of these could be
|
|
replaced with haskell libraries to some degree.
|
|
|
|
There are probably still some places where it assumes / as a path
|
|
separator, although I fixed probably almost all by now.
|
|
|
|
Then windows versions of these functions could be found,
|
|
which are all the ones that need POSIX, I think. A fair amount of this,
|
|
the stuff to do with signals and users, could be empty stubs in windows.
|
|
The file manipulation, particularly symlinks, would probably be the main
|
|
challenge.
|
|
|
|
<pre>
|
|
addSignal
|
|
blockSignals
|
|
changeWorkingDirectory
|
|
createLink
|
|
createSymbolicLink
|
|
emptySignalSet
|
|
executeFile
|
|
fileMode
|
|
fileSize
|
|
forkProcess
|
|
getAnyProcessStatus
|
|
getEffectiveUserID
|
|
getEnvDefault
|
|
getFileStatus
|
|
getProcessID
|
|
getProcessStatus
|
|
getSignalMask
|
|
getSymbolicLinkStatus
|
|
getUserEntryForID
|
|
getUserEntryForName
|
|
groupWriteMode
|
|
homeDirectory
|
|
installHandler
|
|
intersectFileModes
|
|
isRegularFile
|
|
isSymbolicLink
|
|
modificationTime
|
|
otherWriteMode
|
|
ownerWriteMode
|
|
readSymbolicLink
|
|
setEnv
|
|
setFileMode
|
|
setSignalMask
|
|
sigCHLD
|
|
sigINT
|
|
unionFileModes
|
|
</pre>
|
|
|
|
A good starting point is
|
|
<http://hackage.haskell.org/package/unix-compat-0.3.0.1>. However, note
|
|
that its implementations of stuff like `createSymbolicLink` are stubs.
|
|
--[[Joey]]
|