-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use mktemp when creating temporary files. #6471
Conversation
Before this change, the Java binary shell stub created temporary files in the directory containing the binary, but that fails when the binary is stored in a read-only file system or the directory is write protected. Fixes issue bazelbuild#6289
# Create manifest file | ||
MANIFEST_FILE="${self}-${RAND_ID}.jar_manifest" | ||
MANIFEST_FILE=$(mktemp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MANIFEST_FILE=$(mktemp) | |
MANIFEST_FILE="$(mktemp -d XXXXXXXX.jar_manifest)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a bit more tolerant to weird $TMPDIR
s and the resulting temporary file is better named.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@meteorcloudy , do you know why this wasn't using mktemp
in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no specific reason to not use mktemp
. I'm fine with this change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the template you probably wanted something like /tmp/XXXXXXXX.jar_manifest
instead of XXXXXXXX.jar_manifest
; see @brown's comment below.
@@ -325,7 +324,7 @@ function create_and_run_classpath_jar() { | |||
) >$MANIFEST_FILE | |||
|
|||
# Create classpath JAR file | |||
MANIFEST_JAR_FILE="${self}-${RAND_ID}-classpath.jar" | |||
MANIFEST_JAR_FILE=$(mktemp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MANIFEST_JAR_FILE=$(mktemp) | |
MANIFEST_JAR_FILE="$(mktemp).jar" |
still LGTM |
When applying my patch, someone substituted The substitution breaks the patch. Running just "mktemp" creates a temporary file |
Before this change, the Java binary shell stub created temporary files in the
directory containing the binary, but that fails when the binary is stored in a
read-only file system or the directory is write protected.
Fixes issue #6289