mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
toosl: fix v init
- terminate newly created files with newlines, add a test (#10480)
* vcreate: Add test for `v init`. * vcreate: Init git properly with no dir arg. `v init` would fail to create a .gitignore file. When not providing a dir arg, passing "" to create_git_repo would result in: ``` V panic: failed to create gitignore: failed to open file "/.gitignore" ``` * vcreate: Terminate files with newline. Fixes #10478.
This commit is contained in:
parent
e31be9f5c4
commit
30fac1f877
@ -50,6 +50,7 @@ fn vmod_content(c Create) string {
|
|||||||
" license: '$c.license'",
|
" license: '$c.license'",
|
||||||
' dependencies: []',
|
' dependencies: []',
|
||||||
'}',
|
'}',
|
||||||
|
'',
|
||||||
].join('\n')
|
].join('\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,6 +60,7 @@ fn main_content() string {
|
|||||||
'fn main() {',
|
'fn main() {',
|
||||||
" println('Hello World!')",
|
" println('Hello World!')",
|
||||||
'}',
|
'}',
|
||||||
|
'',
|
||||||
].join('\n')
|
].join('\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +74,7 @@ fn gen_gitignore(name string) string {
|
|||||||
'*.so',
|
'*.so',
|
||||||
'*.dylib',
|
'*.dylib',
|
||||||
'*.dll',
|
'*.dll',
|
||||||
|
'',
|
||||||
].join('\n')
|
].join('\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,7 +163,7 @@ fn init_project() {
|
|||||||
c.description = ''
|
c.description = ''
|
||||||
c.write_vmod(false)
|
c.write_vmod(false)
|
||||||
c.write_main(false)
|
c.write_main(false)
|
||||||
c.create_git_repo('')
|
c.create_git_repo('.')
|
||||||
|
|
||||||
println("Change your module's description in `v.mod`")
|
println("Change your module's description in `v.mod`")
|
||||||
}
|
}
|
||||||
|
47
cmd/tools/vcreate_test.v
Normal file
47
cmd/tools/vcreate_test.v
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
const test_path = 'vcreate_test'
|
||||||
|
|
||||||
|
fn test_v_init() ? {
|
||||||
|
dir := os.join_path(os.temp_dir(), test_path)
|
||||||
|
os.rmdir_all(dir) or {}
|
||||||
|
os.mkdir(dir) ?
|
||||||
|
defer {
|
||||||
|
os.rmdir_all(dir) or {}
|
||||||
|
}
|
||||||
|
os.chdir(dir)
|
||||||
|
|
||||||
|
vexe := os.getenv('VEXE')
|
||||||
|
os.execute_or_panic('$vexe init')
|
||||||
|
|
||||||
|
assert os.read_file('vcreate_test.v') ? == [
|
||||||
|
'module main\n',
|
||||||
|
'fn main() {',
|
||||||
|
" println('Hello World!')",
|
||||||
|
'}',
|
||||||
|
'',
|
||||||
|
].join('\n')
|
||||||
|
|
||||||
|
assert os.read_file('v.mod') ? == [
|
||||||
|
'Module {',
|
||||||
|
" name: 'vcreate_test'",
|
||||||
|
" description: ''",
|
||||||
|
" version: ''",
|
||||||
|
" license: ''",
|
||||||
|
' dependencies: []',
|
||||||
|
'}',
|
||||||
|
'',
|
||||||
|
].join('\n')
|
||||||
|
|
||||||
|
assert os.read_file('.gitignore') ? == [
|
||||||
|
'# Binaries for programs and plugins',
|
||||||
|
'main',
|
||||||
|
'vcreate_test',
|
||||||
|
'*.exe',
|
||||||
|
'*.exe~',
|
||||||
|
'*.so',
|
||||||
|
'*.dylib',
|
||||||
|
'*.dll',
|
||||||
|
'',
|
||||||
|
].join('\n')
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user