1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

vrepl: simplify and cleanup vrepl (#15807)

This commit is contained in:
yuyi 2022-09-18 23:07:16 +08:00 committed by GitHub
parent 57d583d821
commit 0ff74dae63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,13 +31,12 @@ mut:
eval_func_lines []string // same line of the `VSTARTUP` file, but used to test fn type eval_func_lines []string // same line of the `VSTARTUP` file, but used to test fn type
} }
const is_stdin_a_pipe = (os.is_atty(0) == 0) const (
is_stdin_a_pipe = os.is_atty(0) == 0
const vexe = os.getenv('VEXE') vexe = os.getenv('VEXE')
vstartup = os.getenv('VSTARTUP')
const vstartup = os.getenv('VSTARTUP') repl_folder = os.join_path(os.temp_dir(), 'v', 'repl')
)
const repl_folder = os.join_path(os.temp_dir(), 'v', 'repl')
enum FnType { enum FnType {
@none @none
@ -293,14 +292,13 @@ fn run_repl(workdir string, vrepl_prefix string) int {
print('\n') print('\n')
print_output(result.output) print_output(result.output)
} }
file := os.join_path(workdir, '.${vrepl_prefix}vrepl.v')
temp_file := os.join_path(workdir, '.${vrepl_prefix}vrepl_temp.v') temp_file := os.join_path(workdir, '.${vrepl_prefix}vrepl_temp.v')
mut prompt := '>>> ' mut prompt := '>>> '
defer { defer {
if !is_stdin_a_pipe { if !is_stdin_a_pipe {
println('') println('')
} }
cleanup_files([file, temp_file]) cleanup_files(temp_file)
} }
mut r := new_repl(workdir) mut r := new_repl(workdir)
for { for {
@ -517,11 +515,6 @@ fn convert_output(os_result string) string {
return content return content
} }
content += endline_if_missed(sline[idx + 1..]) content += endline_if_missed(sline[idx + 1..])
} else if line.contains('.vrepl.v:') {
// Ensure that .vrepl.v: is at the start, ignore the path
// This is needed to have stable .repl tests.
idx := line.index('.vrepl.v:') or { panic(err) }
content += endline_if_missed(line[idx..])
} else { } else {
content += endline_if_missed(line) content += endline_if_missed(line)
} }
@ -570,18 +563,16 @@ fn (mut r Repl) get_one_line(prompt string) ?string {
return rline return rline
} }
fn cleanup_files(files []string) { fn cleanup_files(file string) {
for file in files { os.rm(file) or {}
os.rm(file) or {} $if windows {
$if windows { os.rm(file[..file.len - 2] + '.exe') or {}
os.rm(file[..file.len - 2] + '.exe') or {} $if msvc {
$if msvc { os.rm(file[..file.len - 2] + '.ilk') or {}
os.rm(file[..file.len - 2] + '.ilk') or {} os.rm(file[..file.len - 2] + '.pdb') or {}
os.rm(file[..file.len - 2] + '.pdb') or {}
}
} $else {
os.rm(file[..file.len - 2]) or {}
} }
} $else {
os.rm(file[..file.len - 2]) or {}
} }
} }