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

tools: prevent v init from overwriting an already existing src/main.v file (fix #17362) (#17363)

This commit is contained in:
Sanath Kumar U 2023-02-20 16:24:38 +05:30 committed by GitHub
parent cb976c7e17
commit 269462425a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 11 deletions

View File

@ -133,10 +133,11 @@ fn init_project() {
c.write_vmod(false)
println('Change the description of your project in `v.mod`')
}
c.files << ProjectFiles{
path: 'src/main.v'
content: hello_world_content()
if !os.exists('src/main.v') {
c.files << ProjectFiles{
path: 'src/main.v'
content: hello_world_content()
}
}
c.create_files_and_directories()
c.write_gitattributes(false)

View File

@ -7,19 +7,30 @@ const test_path = os.join_path(os.vtmp_dir(), 'v', 'test_vcreate')
fn init_and_check() ! {
os.chdir(test_path)!
// if main file already exist we should not tamper it
mut main_last_modified_time := i64(0)
is_main_file_preexisting := os.exists('src/main.v')
if is_main_file_preexisting == true {
main_last_modified_time = os.file_last_mod_unix('src/main.v')
}
os.execute_or_exit('${os.quoted_path(@VEXE)} init')
x := os.execute_or_exit('${os.quoted_path(@VEXE)} run .')
assert x.exit_code == 0
assert x.output.trim_space() == 'Hello World!'
assert os.read_file('src/main.v')! == [
'module main\n',
'fn main() {',
" println('Hello World!')",
'}',
'',
].join_lines()
if is_main_file_preexisting == true {
assert main_last_modified_time == os.file_last_mod_unix('src/main.v')
} else {
assert os.read_file('src/main.v')! == [
'module main\n',
'fn main() {',
" println('Hello World!')",
'}',
'',
].join_lines()
}
assert os.read_file('v.mod')! == [
'Module {',