-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvinit.v
More file actions
38 lines (35 loc) · 1.39 KB
/
vinit.v
File metadata and controls
38 lines (35 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// V Init script
// License: MIT
// Author: Kai Lyons
module main
import os
fn main(){
project := {
"project_name": os.input("Project Name: "),
"project_desc": os.input("Project Description: "),
"project_vers": os.input("Project Version: "),
"project_repo": os.input("Project Repo: ")
}
os.mkdir(project["project_name"]) ?
mut vmod := os.open_file("${project["project_name"]}/v.mod", "w") ?
vmod.write("Module { \n".bytes()) ?
vmod.write("\tname: \"${project["project_name"]}\"\n".bytes()) ?
vmod.write("\tdescription: \"${project["project_desc"]}\"\n".bytes()) ?
vmod.write("\tversion: \"${project["project_vers"]}\"\n".bytes()) ?
vmod.write("\trepo_url: \"${project["project_repo"]}\"\n".bytes()) ?
vmod.write("}".bytes()) ?
vmod.close()
os.create("${project["project_name"]}/LICENSE") ?
mut readme := os.open_file("${project["project_name"]}/README.md", "w") ?
readme.write("# ${project["project_name"]}\n".bytes()) ?
readme.write("${project["project_desc"]} \n \n".bytes()) ?
readme.write("version: `${project["project_vers"]}`\n".bytes()) ?
readme.close()
mut vfile := os.open_file("${project["project_name"]}/${project["project_name"]}.v", "w") ?
vfile.write("module main\n\n".bytes()) ?
vfile.write("fn main() { \n".bytes()) ?
vfile.write("\t// Insert program code here!\n".bytes()) ?
vfile.write("\tprintln(\"Hello, world!\")\n".bytes()) ?
vfile.write("}".bytes()) ?
vfile.close()
}