// Copyright (c) 2019-2020 Alexander Medvednikov. All rights reserved. // Use of this source code is governed by an MIT license // that can be found in the LICENSE file. module main import ( os ) struct Create { mut: name string description string } fn cerror(e string){ eprintln('\nerror: $e') } fn (c Create)write_vmod() { mut vmod := os.create('${c.name}/v.mod') or { cerror(err) exit(1) } vmod_content := [ '#V Project#\n', 'Module {', ' name: \'${c.name}\',', ' description: \'${c.description}\',', ' dependencies: []', '}' ] vmod.write(vmod_content.join('\n')) } fn (c Create)write_main() { mut main := os.create('${c.name}/${c.name}.v') or { cerror(err) exit(2) } main_content := [ 'module main\n', 'fn main() {', ' println(\'Hello World !\')', '}' ] main.write(main_content.join('\n')) } fn main() { mut c := Create{} print('Input your project name: ') c.name = os.get_line() if (os.is_dir(c.name)) { cerror('${c.name} folder already exists') exit(3) } print('Input your project description: ') c.description = os.get_line() println('Initialising ...') os.mkdir(c.name) or { panic(err) } c.write_vmod() c.write_main() println('Complete !') }