I've looked for a while, and it seems that there is no easy way to do
this, not even in bash, and worse with /bin/sh. So this is kind of
resorting to a simple parsing of the input, and using `eval' if it
starts with a tilde. Note the hack of not doing that when there is a
space, otherwise the `eval' thing will silently ignore it.
This hack means that it's easy to get into a mess if quotes are used
after a tilde, but that was already the case with the use of `eval' to
handle environment variables. It's not a real security issue, however,
since we're talking about a user who can just run any command anyway.
Also including a test file for the expansion functionality. If anyone
wants to improve this code, making the tests pass would reveal the
tricky issues.
[FWIW, I've asked on the #bash channel, and the only serious suggestion
was getting the paths as command-line arguments. This will, however,
defeat the point of being newbie friendly...]
Closes PR 12893.
The ActiveX part of MysterX is gone. The `ffi/com' re-imeplemtnation
provides only core COM support.
The "mysssink" DLL is still needed, and its source is still
in the tree, but it is downloaded in the same way as other
pre-built DLLs. The DLL no longer needs to be registered with
regsvr32.
(Otherwise having both installed can be confusing since the uninstaller
has the same name; also, it's good to make a reminder for people who
want the other one.)
Also, just use the platform string in the registry key uniformly.
Also add a comment about detecting Win64 if it's desirable in the
future.
Also, remove attempt for a smart use of `fmt' -- the problem is that now
"$platform" is not set, so the conditional didn't do anything. It would
be easy to get a conditional using `uname', but better to drop the whole
thing.
* The darwin build on kauai (the machine is no longer maintained, and
has no cairo installed).
* The two debian builds (also no cairo).
* Remove comment from osx64 build (which is now done on Robby's
machine).
Previously, if a dispatched build failed the files from the previous
build would still get copied. This was an intentional feature, since
only the compiled binaries of these builds are used, and usually these
would work fine (with the zo files that were built on the main machine).
Now, the build directory is deleted when starting, which means that any
failure in a remote build means that the whole build will fail. This
turns out to be better since when there are problems, the previous
behavior could be very confusing. In addition, the racket setup itself
rarely fails, so this won't make a difference.
* Use `ssh' to copy the repo tgz, so it can also create the build
directory in a single connection.
* Use "racket" in the build materials directory name (since it's used in
random machines).
* Use `chcon' to make files accessible to the web server under selinux.
* "YYYY-MM-DD HH:MM" in log time strings (leave the one on the web page
as is).
* Uniform machine+platform labels in headers on dispatched builds. The
main build machine doesn't have them.
On dispatched builds the status is printed in their own logs in a
greppable way, and these lines are removed when these logs are displayed
as part of the main log.
Turns out that bash's regexps (using `=~') changed so that quoting them
matches a literal string, and it seems dangerous to rely on parsing
unquoted regexps. One way around this is to put the regexp in a
variable, but for the two simple uses that this script had, it's easy to
avoid regexps completely.
* The installer is a command-line argument.
* Make it work in xterm too, by unsetting TERM.
* Works with version-less directories, from release installers.