Skip to content

Commit

Permalink
Add walker recursive
Browse files Browse the repository at this point in the history
  • Loading branch information
Saverio976 committed Jan 29, 2024
1 parent e58f184 commit 5749bd1
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 1 deletion.
27 changes: 26 additions & 1 deletion src/main.v
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
module main

import os
import flag

fn main() {
println("Hello, World!")
mut fp := flag.new_flag_parser(os.args)
fp.application(os.args[0])
fp.version("0.0.0")
fp.description("output d2 dependency graph")
fp.skip_executable()
a_string := fp.string_opt("language", `l`, "Language to use for the folders") or {
eprintln(fp.usage())
exit(1)
}
folders := fp.finalize() or {
eprintln(err)
eprintln(fp.usage())
exit(1)
}
for folder in folders {
println('Processing ${folder} ...')
dep := process_folder(folder, a_string) or {
eprintln(err)
continue
}
}
}
22 changes: 22 additions & 0 deletions src/process_file.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module main

import os

struct DependencyGraph {
pub mut:
language string
file_path string
name []string
dependencies []string
}

fn process_file(file string, language string) !DependencyGraph {
if !os.is_file(file) {
return error("not a file ${file}")
}
dep := DependencyGraph{
language: language,
file_path: file,
}
return dep
}
22 changes: 22 additions & 0 deletions src/process_folder.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import os

fn process_folder(folder string, language string) ![]DependencyGraph {
if os.is_file(folder) {
dep := process_file(folder, language)!
return [dep]
}
mut deps := []DependencyGraph{}
for elem in os.ls(folder)! {
elem_resolved := os.join_path(folder, elem)
if os.is_dir(elem_resolved) {
deps_tmp := process_folder(elem_resolved, language)!
deps << deps_tmp
} else if os.is_file(elem_resolved) {
dep_tmp := process_file(elem_resolved, language)!
deps << [dep_tmp]
} else {
eprintln("Unprocessed ${elem_resolved}!")
}
}
return deps
}

0 comments on commit 5749bd1

Please sign in to comment.