mirror of
https://github.com/fluencelabs/lalrpop
synced 2025-03-28 06:01:02 +00:00
Unset read only on generated rust file before removing it to fix build failure on Windows (#53)
This commit is contained in:
parent
20b2ee8e56
commit
51e2dabdc0
@ -33,10 +33,11 @@ fn process_dir<P:AsRef<Path>>(root_dir: P, force_build: bool) -> io::Result<()>
|
|||||||
for lalrpop_file in lalrpop_files {
|
for lalrpop_file in lalrpop_files {
|
||||||
let rs_file = lalrpop_file.with_extension("rs");
|
let rs_file = lalrpop_file.with_extension("rs");
|
||||||
if force_build || try!(needs_rebuild(&lalrpop_file, &rs_file)) {
|
if force_build || try!(needs_rebuild(&lalrpop_file, &rs_file)) {
|
||||||
|
try!(make_read_only(&rs_file, false));
|
||||||
try!(remove_old_file(&rs_file));
|
try!(remove_old_file(&rs_file));
|
||||||
let grammar = try!(parse_and_normalize_grammar(lalrpop_file));
|
let grammar = try!(parse_and_normalize_grammar(lalrpop_file));
|
||||||
try!(emit_recursive_ascent(&rs_file, &grammar));
|
try!(emit_recursive_ascent(&rs_file, &grammar));
|
||||||
try!(make_read_only(&rs_file));
|
try!(make_read_only(&rs_file, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -99,10 +100,10 @@ fn needs_rebuild(lalrpop_file: &Path,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn make_read_only(rs_file: &Path) -> io::Result<()> {
|
fn make_read_only(rs_file: &Path, ro: bool) -> io::Result<()> {
|
||||||
let rs_metadata = try!(fs::metadata(&rs_file));
|
let rs_metadata = try!(fs::metadata(&rs_file));
|
||||||
let mut rs_permissions = rs_metadata.permissions();
|
let mut rs_permissions = rs_metadata.permissions();
|
||||||
rs_permissions.set_readonly(true);
|
rs_permissions.set_readonly(ro);
|
||||||
fs::set_permissions(&rs_file, rs_permissions)
|
fs::set_permissions(&rs_file, rs_permissions)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user