diff --git a/examples/biztools/bizmodel.vsh b/examples/biztools/bizmodel.vsh index cb0af49c..931ec3e9 100755 --- a/examples/biztools/bizmodel.vsh +++ b/examples/biztools/bizmodel.vsh @@ -16,4 +16,3 @@ println(model.sheet) model.sheet.pprint()! // model.sheet.export(path: '~/code/github/freeflowuniverse/starlight_template/src/content/test.csv')! // model.sheet - diff --git a/examples/biztools/bizmodel1.vsh b/examples/biztools/bizmodel1.vsh index 241071f2..f75607f6 100755 --- a/examples/biztools/bizmodel1.vsh +++ b/examples/biztools/bizmodel1.vsh @@ -3,7 +3,7 @@ import freeflowuniverse.herolib.biz.bizmodel import os -heroscript:=" +heroscript := " Next will define an OEM product in month 10, 1 Million EUR, ... cogs is a percent which is 20% at start but goes to 10% after 20 months. @@ -21,8 +21,8 @@ This time we have the cogs defined in fixed manner, the default currency is USD cogs: '10:100000,15:1000,20:120000' " -bizmodel.play(heroscript:heroscript)! +bizmodel.play(heroscript: heroscript)! -mut bm:=bizmodel.get("test")! +mut bm := bizmodel.get('test')! -bm.sheet.pprint(nr_columns:30)! \ No newline at end of file +bm.sheet.pprint(nr_columns: 30)! diff --git a/examples/biztools/bizmodel2.vsh b/examples/biztools/bizmodel2.vsh index 31a20a07..68a1c1bf 100755 --- a/examples/biztools/bizmodel2.vsh +++ b/examples/biztools/bizmodel2.vsh @@ -3,7 +3,7 @@ import freeflowuniverse.herolib.biz.bizmodel import os -heroscript:=" +heroscript := " !!bizmodel.revenue_define bizname:'test' name:'nodes' descr:'Node Sales' @@ -16,8 +16,8 @@ heroscript:=" //revenue_item_monthly_perc:'3%' " -bizmodel.play(heroscript:heroscript)! +bizmodel.play(heroscript: heroscript)! -mut bm:=bizmodel.get("test")! +mut bm := bizmodel.get('test')! -bm.sheet.pprint(nr_columns:30)! \ No newline at end of file +bm.sheet.pprint(nr_columns: 30)! diff --git a/examples/biztools/hr.vsh b/examples/biztools/hr.vsh index 2523f385..58d31b9c 100755 --- a/examples/biztools/hr.vsh +++ b/examples/biztools/hr.vsh @@ -3,7 +3,7 @@ import freeflowuniverse.herolib.biz.bizmodel import os -heroscript:=" +heroscript := " !!bizmodel.hr_params bizname:'test' avg_monthly_cost:'4000USD' avg_indexation:'5%' @@ -36,8 +36,8 @@ heroscript:=" " -bizmodel.play(heroscript:heroscript)! +bizmodel.play(heroscript: heroscript)! -mut bm:=bizmodel.get("test")! +mut bm := bizmodel.get('test')! -bm.sheet.pprint(nr_columns:20)! \ No newline at end of file +bm.sheet.pprint(nr_columns: 20)! diff --git a/examples/data/regex_example.vsh b/examples/data/regex_example.vsh index f8fd7a65..715d407c 100755 --- a/examples/data/regex_example.vsh +++ b/examples/data/regex_example.vsh @@ -1,35 +1,35 @@ #!/usr/bin/env -S v -n -w -gc none -cg -cc tcc -d use_openssl -enable-globals run fn extract_image_markdown(s string) !(string, string) { - start := s.index('![') or { return error('Missing ![') } - alt_start := start + 2 - alt_end := s.index_after(']', alt_start) or { return error('Missing ]') } - if s.len <= alt_end + 1 || s[alt_end + 1] != `(` { - return error('Missing opening ( after ]') - } - url_start := alt_end + 2 - url_end := s.index_after(')', url_start) or { return error('Missing closing )') } + start := s.index('![') or { return error('Missing ![') } + alt_start := start + 2 + alt_end := s.index_after(']', alt_start) or { return error('Missing ]') } + if s.len <= alt_end + 1 || s[alt_end + 1] != `(` { + return error('Missing opening ( after ]') + } + url_start := alt_end + 2 + url_end := s.index_after(')', url_start) or { return error('Missing closing )') } - alt := s[alt_start..alt_end] - url := s[url_start..url_end] - return alt, url + alt := s[alt_start..alt_end] + url := s[url_start..url_end] + return alt, url } fn main() { - text := 'Here is an image: ![Alt](http://example.com/image.png) and another ![Logo](https://site.org/logo.svg)' + text := 'Here is an image: ![Alt](http://example.com/image.png) and another ![Logo](https://site.org/logo.svg)' - mut i := 0 - for { - if i >= text.len { break } - if text[i..].contains('![') { - snippet := text[i..] - alt, url := extract_image_markdown(snippet) or { - break - } - println('Alt: "$alt" | URL: "$url"') - i += snippet.index_after(')', 0) or { break } + 1 - } else { - break - } - } + mut i := 0 + for { + if i >= text.len { + break + } + if text[i..].contains('![') { + snippet := text[i..] + alt, url := extract_image_markdown(snippet) or { break } + println('Alt: "${alt}" | URL: "${url}"') + i += snippet.index_after(')', 0) or { break } + 1 + } else { + break + } + } } diff --git a/lib/biz/bizmodel/factory.v b/lib/biz/bizmodel/factory.v index e95d36ec..fbdc8506 100644 --- a/lib/biz/bizmodel/factory.v +++ b/lib/biz/bizmodel/factory.v @@ -26,7 +26,9 @@ pub fn getset(name string) !&BizModel { name: name } bizmodels[bizmodel.name] = &bizmodel - bizmodel.departments["default"] = &Department{name:"default"} + bizmodel.departments['default'] = &Department{ + name: 'default' + } } return bizmodels[name] or { panic('bug') } } diff --git a/lib/biz/bizmodel/model.v b/lib/biz/bizmodel/model.v index fb583821..9d6bbede 100644 --- a/lib/biz/bizmodel/model.v +++ b/lib/biz/bizmodel/model.v @@ -35,11 +35,11 @@ pub: pub struct Department { pub: - name string - description string - page string - title string - order int + name string + description string + page string + title string + order int avg_monthly_cost string = '6000USD' avg_indexation string = '2%' } diff --git a/lib/biz/bizmodel/play.v b/lib/biz/bizmodel/play.v index db076272..30f6031c 100644 --- a/lib/biz/bizmodel/play.v +++ b/lib/biz/bizmodel/play.v @@ -1,12 +1,12 @@ module bizmodel import arrays -import freeflowuniverse.herolib.core.playbook { PlayBook, Action } +import freeflowuniverse.herolib.core.playbook { Action, PlayBook } import freeflowuniverse.herolib.ui.console const action_priorities = { 0: ['department_define', 'costcenter_define'] - 1: ['revenue_define','funding_define','cost_define'] + 1: ['revenue_define', 'funding_define', 'cost_define'] 2: ['employee_define'] 3: ['sheet_wiki', 'graph_bar_row', 'graph_pie_row', 'graph_line_row', 'row_overview'] } @@ -24,6 +24,7 @@ pub fn play(args PlayArgs) ! { mut plbook := args.plbook or { playbook.new(text: args.heroscript, path: args.heroscript_path)! } + // group actions by which bizmodel they belong to actions_by_biz := arrays.group_by[string, &Action](plbook.actions_find(actor: 'bizmodel')!, fn (a &Action) string { @@ -40,13 +41,21 @@ pub fn play(args PlayArgs) ! { pub fn (mut m BizModel) play(mut plbook PlayBook) ! { mut actions := plbook.actions_find(actor: 'bizmodel')! - for action in actions.filter(it.name in action_priorities[0]) {m.act(*action)!} - for action in actions.filter(it.name in action_priorities[1]) {m.act(*action)!} + for action in actions.filter(it.name in action_priorities[0]) { + m.act(*action)! + } + for action in actions.filter(it.name in action_priorities[1]) { + m.act(*action)! + } m.cost_total()! m.revenue_total()! m.funding_total()! - for action in actions.filter(it.name in action_priorities[2]) {m.act(*action)!} - for action in actions.filter(it.name in action_priorities[3]) {m.act(*action)!} + for action in actions.filter(it.name in action_priorities[2]) { + m.act(*action)! + } + for action in actions.filter(it.name in action_priorities[3]) { + m.act(*action)! + } } diff --git a/lib/biz/bizmodel/play_department.v b/lib/biz/bizmodel/play_department.v index 65f93653..3bb46bbd 100644 --- a/lib/biz/bizmodel/play_department.v +++ b/lib/biz/bizmodel/play_department.v @@ -2,27 +2,26 @@ module bizmodel import freeflowuniverse.herolib.core.playbook { Action } - -// !!bizmodel.department_define bizname:'test' +// !!bizmodel.department_define bizname:'test' // name:'engineering' // descr:'Software Development Department' // title:'Engineering Division' // avg_monthly_cost:'6000USD' avg_indexation:'5%' fn (mut m BizModel) department_define_action(action Action) !Action { bizname := action.params.get_default('bizname', '')! - mut name := action.params.get('name') or {return error('department name is required')} + mut name := action.params.get('name') or { return error('department name is required') } mut descr := action.params.get_default('descr', '')! if descr.len == 0 { descr = action.params.get_default('description', '')! } department := Department{ - name: name - description: descr - title: action.params.get_default('title', '')! - page: action.params.get_default('page', '')! - avg_monthly_cost: action.params.get_default('avg_monthly_cost', "6000USD")! - avg_indexation: action.params.get_default('avg_indexation', "2%")! + name: name + description: descr + title: action.params.get_default('title', '')! + page: action.params.get_default('page', '')! + avg_monthly_cost: action.params.get_default('avg_monthly_cost', '6000USD')! + avg_indexation: action.params.get_default('avg_indexation', '2%')! } m.departments[name] = &department return action diff --git a/lib/biz/bizmodel/play_hr.v b/lib/biz/bizmodel/play_hr.v index 52b2123d..58e29653 100644 --- a/lib/biz/bizmodel/play_hr.v +++ b/lib/biz/bizmodel/play_hr.v @@ -7,7 +7,7 @@ import freeflowuniverse.herolib.data.currency import math // populate the params for hr -// !!bizmodel.department_define bizname:'test' +// !!bizmodel.department_define bizname:'test' // descr:'Junior Engineer' // nrpeople:'1:5,60:30' // cost:'4000USD' @@ -16,7 +16,9 @@ import math // cost_percent_revenue e.g. 4%, will make sure the cost will be at least 4% of revenue fn (mut m BizModel) employee_define_action(action Action) !Action { // bizname := action.params.get_default('bizname', '')! - mut name := action.params.get('name') or { return error('employee name is required in ${action.name}, now \n${action}') } + mut name := action.params.get('name') or { + return error('employee name is required in ${action.name}, now \n${action}') + } mut descr := action.params.get_default('descr', '')! if descr.len == 0 { descr = action.params.get('description')! @@ -34,7 +36,8 @@ fn (mut m BizModel) employee_define_action(action Action) !Action { page := action.params.get_default('page', '')! - cost_percent_revenue := action.params.get_percentage_default('cost_percent_revenue','0%')! + cost_percent_revenue := action.params.get_percentage_default('cost_percent_revenue', + '0%')! nrpeople := action.params.get_default('nrpeople', '1')! cost_center := action.params.get_default('costcenter', '')! @@ -64,15 +67,15 @@ fn (mut m BizModel) employee_define_action(action Action) !Action { aggregatetype: .avg )! costpeople_row = costpeople_row.action(action: .multiply, rows: [nrpeople_row])! - - //lets make sure nr of people filled in properly as well as cost + + // lets make sure nr of people filled in properly as well as cost if cost_percent_revenue > 0 { mut revtotal := m.sheet.row_get('revenue_total')! // println(revtotal) for x in 0 .. nrpeople_row.cells.len { - mut curcost:= -costpeople_row.cells[x].val - mut curpeople:= nrpeople_row.cells[x].val - mut currev:= revtotal.cells[x].val + mut curcost := -costpeople_row.cells[x].val + mut curpeople := nrpeople_row.cells[x].val + mut currev := revtotal.cells[x].val // println("currev: ${currev}, curcost: ${curcost}, curpeople: ${curpeople}, costpercent_revenue: ${cost_percent_revenue}") if currev * cost_percent_revenue > curcost { costpeople_row.cells[x].val = -currev * cost_percent_revenue diff --git a/lib/biz/bizmodel/play_product_revenue.v b/lib/biz/bizmodel/play_product_revenue.v index 260ab297..03803537 100644 --- a/lib/biz/bizmodel/play_product_revenue.v +++ b/lib/biz/bizmodel/play_product_revenue.v @@ -5,7 +5,6 @@ import freeflowuniverse.herolib.core.texttools // see lib/biz/bizmodel/docs/revenue.md fn (mut m BizModel) revenue_action(action Action) !Action { - mut r := get_action_descr(action)! mut product := Product{ @@ -24,11 +23,11 @@ fn (mut m BizModel) revenue_action(action Action) !Action { tags: 'name:${r.name}' descr: 'nr of items sold/month for ${r.name}' aggregatetype: .avg - extrapolate: true + extrapolate: true )! if nr_sold.max() > 0 { - //don't process if nr sold + // don't process if nr sold return action } @@ -78,12 +77,12 @@ fn (mut m BizModel) revenue_action(action Action) !Action { } mut margin := revenue.action( - name: '${r.name}_margin' - descr: 'Margin for ${r.name}' - action: .substract - rows: [cogs] - tags: 'name:${r.name} margin' + name: '${r.name}_margin' + descr: 'Margin for ${r.name}' + action: .substract + rows: [cogs] + tags: 'name:${r.name} margin' )! return action -} \ No newline at end of file +} diff --git a/lib/biz/bizmodel/play_product_revenue_item.v b/lib/biz/bizmodel/play_product_revenue_item.v index 943cdadc..48ab0bcc 100644 --- a/lib/biz/bizmodel/play_product_revenue_item.v +++ b/lib/biz/bizmodel/play_product_revenue_item.v @@ -5,7 +5,6 @@ import freeflowuniverse.herolib.core.texttools // see lib/biz/bizmodel/docs/revenue.md fn (mut m BizModel) revenue_item_action(action Action) !Action { - mut r := get_action_descr(action)! mut product := m.products[r.name] @@ -15,12 +14,12 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { tags: 'name:${r.name}' descr: 'nr of items sold/month for ${r.name}' aggregatetype: .avg - extrapolate: true + extrapolate: true )! if nr_sold.max() > 0 { product.has_items = true - }else{ + } else { return action } @@ -40,23 +39,21 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { extrapolate: true )! - mut revenue_item_monthly_perc_temp := revenue_item_setup_param.action( - name: '${r.name}_revenue_item_monthly_perc_temp' - descr: 'Monthly sales as percentage from Setup Revenue for ${r.name}' - action: .multiply - val: action.params.get_float_default('revenue_item_monthly_perc', 0.0)! - tags: 'name:${r.name}' - )! + name: '${r.name}_revenue_item_monthly_perc_temp' + descr: 'Monthly sales as percentage from Setup Revenue for ${r.name}' + action: .multiply + val: action.params.get_float_default('revenue_item_monthly_perc', 0.0)! + tags: 'name:${r.name}' + )! mut revenue_item_monthly := revenue_item_monthly_param.action( - name: '${r.name}_revenue_item_monthly' - descr: 'Item Revenue monthly for ${r.name}' - action: .add - rows: [revenue_item_monthly_perc_temp] - tags: 'name:${r.name}' - )! - + name: '${r.name}_revenue_item_monthly' + descr: 'Item Revenue monthly for ${r.name}' + action: .add + rows: [revenue_item_monthly_perc_temp] + tags: 'name:${r.name}' + )! revenue_item_monthly_perc_temp.delete() @@ -76,42 +73,40 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { extrapolate: true )! - mut cogs_item_setup_rev_perc_temp := revenue_item_setup_param.action( - name: '${r.name}_cogs_item_setup_rev_perc_temp' - descr: 'Setup cogs as percentage from Setup for ${r.name}' - action: .multiply - val: action.params.get_float_default('cogs_item_setup_rev_perc', 0.0)! - tags: 'name:${r.name}' - )! + name: '${r.name}_cogs_item_setup_rev_perc_temp' + descr: 'Setup cogs as percentage from Setup for ${r.name}' + action: .multiply + val: action.params.get_float_default('cogs_item_setup_rev_perc', 0.0)! + tags: 'name:${r.name}' + )! mut cogs_item_monthly_rev_perc_temp := revenue_item_monthly_param.action( - name: '${r.name}_cogs_item_monthly_rev_perc_temp' - descr: 'Monthly cogs as percentage from Monthly for ${r.name}' - action: .multiply - val: action.params.get_float_default('cogs_item_monthly_rev_perc', 0.0)! - tags: 'name:${r.name}' - )! + name: '${r.name}_cogs_item_monthly_rev_perc_temp' + descr: 'Monthly cogs as percentage from Monthly for ${r.name}' + action: .multiply + val: action.params.get_float_default('cogs_item_monthly_rev_perc', 0.0)! + tags: 'name:${r.name}' + )! mut cogs_item_setup1 := cogs_item_setup_param.action( - name: '${r.name}_cogs_item_setup1' - descr: 'Item COGS setup for ${r.name}' - action: .add - rows: [cogs_item_setup_rev_perc_temp] - tags: 'name:${r.name}' - )! + name: '${r.name}_cogs_item_setup1' + descr: 'Item COGS setup for ${r.name}' + action: .add + rows: [cogs_item_setup_rev_perc_temp] + tags: 'name:${r.name}' + )! mut cogs_item_monthly := cogs_item_monthly_param.action( - name: '${r.name}_cogs_item_monthly' - descr: 'Item COGS monthly for ${r.name}' - action: .add - rows: [cogs_item_monthly_rev_perc_temp] - tags: 'name:${r.name}' - )! - - cogs_item_setup_rev_perc_temp.delete() - cogs_item_monthly_rev_perc_temp.delete() + name: '${r.name}_cogs_item_monthly' + descr: 'Item COGS monthly for ${r.name}' + action: .add + rows: [cogs_item_monthly_rev_perc_temp] + tags: 'name:${r.name}' + )! + cogs_item_setup_rev_perc_temp.delete() + cogs_item_monthly_rev_perc_temp.delete() //////////////////////////////////////////////////////////////// // CALCULATE THE TOTAL (multiply with nr sold) @@ -121,19 +116,18 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { descr: 'Setup sales for ${r.name} total' action: .multiply rows: [nr_sold] - tags: 'name:${r.name} rev' + tags: 'name:${r.name} rev' delaymonths: action.params.get_int_default('revenue_item_setup_delay', 0)! )! - mut revenue_monthly_total := revenue_item_monthly.action( name: '${r.name}_revenue_monthly_total' descr: 'Monthly sales for ${r.name} total' action: .multiply rows: [nr_sold] - tags: 'name:${r.name}' - delaymonths: action.params.get_int_default('revenue_item_monthly_delay', 0)! - )! + tags: 'name:${r.name}' + delaymonths: action.params.get_int_default('revenue_item_monthly_delay', 0)! + )! mut cogs_setup := cogs_item_setup1.action( name: '${r.name}_cogs_setup' @@ -144,7 +138,6 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { delaymonths: action.params.get_int_default('cogs_item_delay', 0)! )! - mut cogs_monthly_total := cogs_item_monthly.action( name: '${r.name}_cogs_monthly_total' descr: 'Monthly COGS for ${r.name} total' @@ -156,12 +149,11 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { // DEAL WITH RECURRING - mut revenue_monthly_recurring := revenue_monthly_total.recurring( name: '${r.name}_revenue_monthly' descr: 'Revenue monthly recurring for ${r.name}' nrmonths: product.nr_months_recurring - tags: 'name:${r.name} rev' + tags: 'name:${r.name} rev' )! revenue_monthly_total.delete() @@ -170,48 +162,44 @@ fn (mut m BizModel) revenue_item_action(action Action) !Action { name: '${r.name}_cogs_monthly' descr: 'COGS monthly recurring for ${r.name}' nrmonths: product.nr_months_recurring - tags: 'name:${r.name} cogs' + tags: 'name:${r.name} cogs' )! - cogs_monthly_total.delete() + cogs_monthly_total.delete() _ := nr_sold.recurring( name: '${r.name}_nr_active' descr: 'Nr products active because of recurring for ${r.name}' nrmonths: product.nr_months_recurring aggregatetype: .max - delaymonths: action.params.get_int_default('revenue_item_monthly_delay', 0)! - + delaymonths: action.params.get_int_default('revenue_item_monthly_delay', 0)! )! - //DEAL WITH MARGIN + // DEAL WITH MARGIN mut margin_setup := revenue_setup.action( - name: '${r.name}_margin_setup' - descr: 'Setup margin for ${r.name}' - action: .substract - rows: [cogs_setup] - tags: 'name:${r.name}' + name: '${r.name}_margin_setup' + descr: 'Setup margin for ${r.name}' + action: .substract + rows: [cogs_setup] + tags: 'name:${r.name}' )! - mut margin_monthly := revenue_monthly_recurring.action( - name: '${r.name}_margin_monthly' - descr: 'Monthly margin for ${r.name}' - action: .substract - rows: [cogs_monthly_recurring] - tags: 'name:${r.name}' + name: '${r.name}_margin_monthly' + descr: 'Monthly margin for ${r.name}' + action: .substract + rows: [cogs_monthly_recurring] + tags: 'name:${r.name}' )! mut margin := margin_setup.action( - name: '${r.name}_margin' - descr: 'Margin for ${r.name}' - action: .add - rows: [margin_monthly] - tags: 'name:${r.name} margin' + name: '${r.name}_margin' + descr: 'Margin for ${r.name}' + action: .add + rows: [margin_monthly] + tags: 'name:${r.name} margin' )! - - return action } diff --git a/lib/biz/bizmodel/play_product_revenue_total.v b/lib/biz/bizmodel/play_product_revenue_total.v index 5e850464..f77410cb 100644 --- a/lib/biz/bizmodel/play_product_revenue_total.v +++ b/lib/biz/bizmodel/play_product_revenue_total.v @@ -1,16 +1,27 @@ module bizmodel -import freeflowuniverse.herolib.core.playbook { Action } +import freeflowuniverse.herolib.core.playbook // revenue_total calculates and aggregates the total revenue and cost of goods sold (COGS) for the business model fn (mut sim BizModel) revenue_total() ! { + mut sheet := sim.sheet - mut sheet:= sim.sheet - - mut revenue_total := sheet.group2row(name:"revenue_total", include:['rev'], tags:"total", descr:'total revenue.')! - mut cogs_total := sheet.group2row(name:"cogs_total", include:['cogs'], tags:"total", descr:'total cogs.')! - mut margin_total := sheet.group2row(name:"margin_total", include:['margin'], tags:"total", descr:'total margin.')! - - + mut revenue_total := sheet.group2row( + name: 'revenue_total' + include: ['rev'] + tags: 'total' + descr: 'total revenue.' + )! + mut cogs_total := sheet.group2row( + name: 'cogs_total' + include: ['cogs'] + tags: 'total' + descr: 'total cogs.' + )! + mut margin_total := sheet.group2row( + name: 'margin_total' + include: ['margin'] + tags: 'total' + descr: 'total margin.' + )! } - diff --git a/lib/biz/bizmodel/play_tools.v b/lib/biz/bizmodel/play_tools.v index fe5eb07e..6a764163 100644 --- a/lib/biz/bizmodel/play_tools.v +++ b/lib/biz/bizmodel/play_tools.v @@ -1,10 +1,9 @@ - module bizmodel import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.playbook { Action } -pub struct RowDescrFields{ +pub struct RowDescrFields { pub mut: name string title string @@ -12,11 +11,10 @@ pub mut: } fn get_action_descr(action Action) !RowDescrFields { + mut r := RowDescrFields{} - mut r:=RowDescrFields{} - - r.name= action.params.get_default('name', '')! - r.description= action.params.get_default('descr', '')! + r.name = action.params.get_default('name', '')! + r.description = action.params.get_default('descr', '')! if r.description.len == 0 { r.description = action.params.get_default('description', '')! } @@ -33,5 +31,4 @@ fn get_action_descr(action Action) !RowDescrFields { r.description = r.description.replace('_', ' ').replace('-', ' ') return r - -} \ No newline at end of file +} diff --git a/lib/biz/spreadsheet/row_actions.v b/lib/biz/spreadsheet/row_actions.v index 58ced7c7..e0f42c0e 100644 --- a/lib/biz/spreadsheet/row_actions.v +++ b/lib/biz/spreadsheet/row_actions.v @@ -142,8 +142,6 @@ pub fn (mut r Row) action(args_ RowActionArgs) !&Row { return row_result } - - pub fn (mut r Row) delay(monthdelay int) ! { mut todelay := []f64{} for x in 0 .. r.sheet.nrcol { diff --git a/lib/biz/spreadsheet/sheet_pprint.v b/lib/biz/spreadsheet/sheet_pprint.v index f1a3d79b..26739407 100644 --- a/lib/biz/spreadsheet/sheet_pprint.v +++ b/lib/biz/spreadsheet/sheet_pprint.v @@ -19,13 +19,14 @@ fn pad_right(s string, length int) string { @[params] pub struct PPrintArgs { pub mut: - group_months int = 1 //e.g. if 2 then will group by 2 months - nr_columns int = 0 //number of columns to show in the table, 0 is all - description bool //show description in the table - aggrtype bool = true //show aggregate type in the table - tags bool = true //show tags in the table - subgroup bool //show subgroup in the table + group_months int = 1 // e.g. if 2 then will group by 2 months + nr_columns int = 0 // number of columns to show in the table, 0 is all + description bool // show description in the table + aggrtype bool = true // show aggregate type in the table + tags bool = true // show tags in the table + subgroup bool // show subgroup in the table } + // calculate_column_widths calculates the maximum width for each column fn calculate_column_widths(rows [][]string) []int { if rows.len == 0 { @@ -119,7 +120,7 @@ pub fn (mut s Sheet) pprint(args PPrintArgs) ! { data_start_index++ } - //check if row is empty + // check if row is empty // println(row_data) for i := data_start_index; i < row_data.len; i++ { cell_val := row_data[i] diff --git a/lib/builder/executor_local.v b/lib/builder/executor_local.v index 5e50f1c4..669ef2b7 100644 --- a/lib/builder/executor_local.v +++ b/lib/builder/executor_local.v @@ -1,7 +1,7 @@ module builder import freeflowuniverse.herolib.osal.core as osal -import freeflowuniverse.herolib.osal.core as osal.rsync +import freeflowuniverse.herolib.osal.core.rsync // import freeflowuniverse.herolib.core.pathlib import os diff --git a/lib/builder/executor_ssh.v b/lib/builder/executor_ssh.v index 56d10775..41afb32b 100644 --- a/lib/builder/executor_ssh.v +++ b/lib/builder/executor_ssh.v @@ -3,7 +3,7 @@ module builder import os import rand import freeflowuniverse.herolib.osal.core as osal -import freeflowuniverse.herolib.osal.core as osal.rsync +import freeflowuniverse.herolib.osal.core.rsync import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.data.ipaddress import freeflowuniverse.herolib.ui.console diff --git a/lib/builder/portforward_lib.v b/lib/builder/portforward_lib.v index 1518faf9..f43d9283 100644 --- a/lib/builder/portforward_lib.v +++ b/lib/builder/portforward_lib.v @@ -1,6 +1,6 @@ module builder -import freeflowuniverse.herolib.osal.core as osal.screen +import freeflowuniverse.herolib.osal.core.screen import freeflowuniverse.herolib.data.ipaddress import freeflowuniverse.herolib.ui.console diff --git a/lib/clients/mycelium/mycelium_check.v b/lib/clients/mycelium/mycelium_check.v index 7f5395fe..2efa9212 100644 --- a/lib/clients/mycelium/mycelium_check.v +++ b/lib/clients/mycelium/mycelium_check.v @@ -5,9 +5,7 @@ import freeflowuniverse.herolib.core import freeflowuniverse.herolib.installers.lang.rust import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools -import freeflowuniverse.herolib.osal.core as osal.screen import freeflowuniverse.herolib.ui -import freeflowuniverse.herolib.osal.core as osal.startupmanager import os import time import json diff --git a/lib/clients/rclone/readme.md b/lib/clients/rclone/readme.md index 123d3116..b336e4e5 100644 --- a/lib/clients/rclone/readme.md +++ b/lib/clients/rclone/readme.md @@ -6,7 +6,7 @@ Rclone is this incredible swiss army knive to deal with S3 storage servers. ## Example ```golang -import freeflowuniverse.herolib.osal.core as osal.rclone +import freeflowuniverse.herolib.osal.core.rclone fn main() { do() or { panic(err) } diff --git a/lib/clients/rclone/readme.v.md b/lib/clients/rclone/readme.v.md index a97fe292..c8cafe8d 100644 --- a/lib/clients/rclone/readme.v.md +++ b/lib/clients/rclone/readme.v.md @@ -17,7 +17,7 @@ RCloneClient must be installed on your system. Visit https://rclone.org/install/ ## Usage ```v -import freeflowuniverse.herolib.osal.core as osal.rclone +import freeflowuniverse.herolib.osal.core.rclone fn main() { // Create a new RCloneClient instance diff --git a/lib/code/generator/installer_client_OLD/templates/objname_actions.vtemplate b/lib/code/generator/installer_client_OLD/templates/objname_actions.vtemplate index 9cf39664..9ba42e96 100644 --- a/lib/code/generator/installer_client_OLD/templates/objname_actions.vtemplate +++ b/lib/code/generator/installer_client_OLD/templates/objname_actions.vtemplate @@ -9,8 +9,8 @@ import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.base @if model.startupmanager -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit @end @if model.build diff --git a/lib/code/generator/installer_client_OLD/templates/objname_factory_.vtemplate b/lib/code/generator/installer_client_OLD/templates/objname_factory_.vtemplate index 16dd8f62..ca895bbe 100644 --- a/lib/code/generator/installer_client_OLD/templates/objname_factory_.vtemplate +++ b/lib/code/generator/installer_client_OLD/templates/objname_factory_.vtemplate @@ -10,8 +10,8 @@ import freeflowuniverse.herolib.data.encoderhero @end @if model.cat == .installer -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time @end diff --git a/lib/core/generator/generic/templates/objname_actions.vtemplate b/lib/core/generator/generic/templates/objname_actions.vtemplate index a2e9d84f..7794f462 100644 --- a/lib/core/generator/generic/templates/objname_actions.vtemplate +++ b/lib/core/generator/generic/templates/objname_actions.vtemplate @@ -6,8 +6,8 @@ import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib @if args.startupmanager -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit @end import freeflowuniverse.herolib.installers.ulist diff --git a/lib/core/generator/generic/templates/objname_factory_.vtemplate b/lib/core/generator/generic/templates/objname_factory_.vtemplate index c25b1829..35c78b65 100644 --- a/lib/core/generator/generic/templates/objname_factory_.vtemplate +++ b/lib/core/generator/generic/templates/objname_factory_.vtemplate @@ -7,8 +7,8 @@ import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console @if args.cat == .installer -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit @if args.startupmanager import time @end diff --git a/lib/core/generator/installer_client_OLD/templates/objname_actions.vtemplate b/lib/core/generator/installer_client_OLD/templates/objname_actions.vtemplate index 9cf39664..9ba42e96 100644 --- a/lib/core/generator/installer_client_OLD/templates/objname_actions.vtemplate +++ b/lib/core/generator/installer_client_OLD/templates/objname_actions.vtemplate @@ -9,8 +9,8 @@ import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.base @if model.startupmanager -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit @end @if model.build diff --git a/lib/core/generator/installer_client_OLD/templates/objname_factory_.vtemplate b/lib/core/generator/installer_client_OLD/templates/objname_factory_.vtemplate index 16dd8f62..ca895bbe 100644 --- a/lib/core/generator/installer_client_OLD/templates/objname_factory_.vtemplate +++ b/lib/core/generator/installer_client_OLD/templates/objname_factory_.vtemplate @@ -10,8 +10,8 @@ import freeflowuniverse.herolib.data.encoderhero @end @if model.cat == .installer -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time @end diff --git a/lib/core/herocmds/sshagent.v b/lib/core/herocmds/sshagent.v index d5711699..7f185dab 100644 --- a/lib/core/herocmds/sshagent.v +++ b/lib/core/herocmds/sshagent.v @@ -1,6 +1,6 @@ module herocmds -import freeflowuniverse.herolib.osal.core as osal.sshagent +import freeflowuniverse.herolib.osal.core.sshagent import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.ui import cli { Command, Flag } diff --git a/lib/core/playbook/filter_sort.v b/lib/core/playbook/filter_sort.v index 4547c165..eba55019 100644 --- a/lib/core/playbook/filter_sort.v +++ b/lib/core/playbook/filter_sort.v @@ -102,7 +102,6 @@ pub fn (mut plbook PlayBook) exists(args FindArgs) bool { return res.len > 0 } - pub fn (mut plbook PlayBook) find_one(args FindArgs) !&Action { mut res := plbook.find(args)! if res.len == 0 { diff --git a/lib/core/playcmds/play_ssh.v b/lib/core/playcmds/play_ssh.v index 8acdcdf1..dc0664c2 100644 --- a/lib/core/playcmds/play_ssh.v +++ b/lib/core/playcmds/play_ssh.v @@ -1,6 +1,6 @@ module playcmds -import freeflowuniverse.herolib.osal.core as osal.sshagent +import freeflowuniverse.herolib.osal.core.sshagent import freeflowuniverse.herolib.core.playbook pub fn play_ssh(mut plbook playbook.PlayBook) ! { diff --git a/lib/core/playmacros/playmacros.v b/lib/core/playmacros/playmacros.v index a8e58358..9e0c91d2 100644 --- a/lib/core/playmacros/playmacros.v +++ b/lib/core/playmacros/playmacros.v @@ -11,7 +11,7 @@ pub fn play_actions(mut plbook playbook.PlayBook) ! { console.print_green('play actions (simulators)') farmingsimulator.play(mut plbook)! gridsimulator.play(mut plbook)! - bizmodel.play(plbook:*plbook)! + bizmodel.play(plbook: *plbook)! } pub fn play_macro(action playbook.Action) !string { diff --git a/lib/data/dedupestor/dedupestor.v b/lib/data/dedupestor/dedupestor.v index 7f7d80b3..558c042b 100644 --- a/lib/data/dedupestor/dedupestor.v +++ b/lib/data/dedupestor/dedupestor.v @@ -7,4 +7,4 @@ pub const max_value_size = 1024 * 1024 // 1MB // hash_data calculates the blake160 hash of the given data and returns it as a hex string. pub fn hash_data(data []u8) string { return blake2b.sum160(data).hex() -} \ No newline at end of file +} diff --git a/lib/data/doctree/list.v b/lib/data/doctree/list.v index cdb44ee9..c26bcb74 100644 --- a/lib/data/doctree/list.v +++ b/lib/data/doctree/list.v @@ -62,4 +62,4 @@ pub fn (mut t Tree) print_pages() { } } } -} \ No newline at end of file +} diff --git a/lib/data/doctree/play.v b/lib/data/doctree/play.v index aff97627..d2db92e3 100644 --- a/lib/data/doctree/play.v +++ b/lib/data/doctree/play.v @@ -36,7 +36,6 @@ pub fn play(args_ PlayArgs) ! { doctree.scan(path: path, git_url: git_url, git_reset: git_reset, git_pull: git_pull)! tree_set(doctree) - } export_actions := plbook.find(filter: 'doctree.export')! @@ -69,6 +68,4 @@ pub fn play(args_ PlayArgs) ! { // println(tree_list()) // println(tree_get("main")!) // panic("sd") - - } diff --git a/lib/data/doctree/tree.v b/lib/data/doctree/tree.v index 002f6b66..292847e6 100644 --- a/lib/data/doctree/tree.v +++ b/lib/data/doctree/tree.v @@ -79,7 +79,6 @@ pub fn tree_list() []string { } } - // tree_set stores tree in global map pub fn tree_set(tree Tree) { lock doctrees { diff --git a/lib/data/markdown/tools/min_header.v b/lib/data/markdown/tools/min_header.v index c37fe9d2..666e95f5 100644 --- a/lib/data/markdown/tools/min_header.v +++ b/lib/data/markdown/tools/min_header.v @@ -1,6 +1,5 @@ module tools - pub fn min_header(text string, minlevel int) string { mut nrhash := 100 mut out := []string{} diff --git a/lib/data/markdown/tools/min_header_test.v b/lib/data/markdown/tools/min_header_test.v index 04d4a73c..9116b913 100644 --- a/lib/data/markdown/tools/min_header_test.v +++ b/lib/data/markdown/tools/min_header_test.v @@ -4,83 +4,83 @@ import os import freeflowuniverse.herolib.ui.console fn test_markdown_min_header_basic() { - txt := " + txt := ' # Header 1 ## Header 2 ### Header 3 -" - expected := " +' + expected := ' ## Header 1 ### Header 2 #### Header 3 -" +' result := min_header(txt, 2) assert result == expected } fn test_markdown_min_header_no_change() { - txt := " + txt := ' ## Header 2 ### Header 3 -" - expected := " +' + expected := ' ## Header 2 ### Header 3 -" +' result := min_header(txt, 2) assert result == expected } fn test_markdown_min_header_multiple_levels() { - txt := " + txt := ' # Title Some txt here. ## Subtitle More txt. ### Sub-subtitle -" - expected := " +' + expected := ' ### Title Some txt here. #### Subtitle More txt. ##### Sub-subtitle -" +' result := min_header(txt, 3) assert result == expected } fn test_markdown_min_header_no_headers() { - txt := " + txt := ' This is some plain txt. No headers here. -" - expected := " +' + expected := ' This is some plain txt. No headers here. -" +' result := min_header(txt, 1) assert result == expected } fn test_markdown_min_header_empty_input() { - txt := "" - expected := "" + txt := '' + expected := '' result := min_header(txt, 1) assert result == expected } fn test_markdown_min_header_with_txt_before_header() { - txt := " + txt := ' Some intro txt # Header 1 ## Header 2 -" - expected := " +' + expected := ' Some intro txt ## Header 1 ### Header 2 -" +' result := min_header(txt, 2) assert result == expected -} \ No newline at end of file +} diff --git a/lib/data/markdown/tools/page.v b/lib/data/markdown/tools/page.v index 757b3594..21ccab64 100644 --- a/lib/data/markdown/tools/page.v +++ b/lib/data/markdown/tools/page.v @@ -21,7 +21,7 @@ pub fn extract_title(page string) string { } } } - return "" + return '' } // set_titles renumbers markdown titles in a page string up to a specified maximum level. @@ -73,7 +73,7 @@ pub fn set_titles(page string, maxnr int) string { current_numbers[i] = 0 } - mut new_prefix := "" + mut new_prefix := '' if autonumber { for i := 0; i < numbering_hash_count; i++ { if i > 0 && current_numbers[i] == 0 && current_numbers[i - 1] > 0 { @@ -103,22 +103,21 @@ pub fn set_titles(page string, maxnr int) string { original_title_text = original_title_text[skip_chars..].trim_space() // Construct the new line - mut new_line := "" - for _ in 0..display_hash_count { + mut new_line := '' + for _ in 0 .. display_hash_count { new_line += '#' } - if autonumber { - new_line += " ${new_prefix} ${original_title_text}" + new_line += ' ${new_prefix} ${original_title_text}' } else { - new_line += " ${original_title_text}" + new_line += ' ${original_title_text}' } result_lines << new_line - }else { + } else { result_lines << line } } return result_lines.join_lines() + '\n' -} \ No newline at end of file +} diff --git a/lib/data/markdown/tools/page_test.v b/lib/data/markdown/tools/page_test.v index c53e2620..9d5c4af6 100644 --- a/lib/data/markdown/tools/page_test.v +++ b/lib/data/markdown/tools/page_test.v @@ -1,44 +1,43 @@ module tools - fn test_extract_title() { // Test case 1: Single H1 title - page1 := "# My Awesome Document" - assert extract_title(page1) == "My Awesome Document" + page1 := '# My Awesome Document' + assert extract_title(page1) == 'My Awesome Document' // Test case 2: Multiple titles, H1 first - page2 := " + page2 := ' # Main Title Some text here. ## Subtitle 1 More text. ### Sub-subtitle 1.1 -" - assert extract_title(page2) == "Main Title" +' + assert extract_title(page2) == 'Main Title' // Test case 3: No titles - page3 := " + page3 := ' This is a plain document. No markdown titles here. -" - assert extract_title(page3) == "" +' + assert extract_title(page3) == '' // Test case 4: Title with leading/trailing spaces - page4 := " # Another Title " - assert extract_title(page4) == "Another Title" + page4 := ' # Another Title ' + assert extract_title(page4) == 'Another Title' // Test case 5: Title with only hashes and spaces - page5 := "### " - assert extract_title(page5) == "" + page5 := '### ' + assert extract_title(page5) == '' // Test case 6: Title with content immediately after hashes - page6 := "##TitleWithoutSpace" - assert extract_title(page6) == "TitleWithoutSpace" + page6 := '##TitleWithoutSpace' + assert extract_title(page6) == 'TitleWithoutSpace' } fn test_set_titles() { // Test case 1: Default maxnr (3) - page1 := " + page1 := ' # First Section Some content. ## Subsection A @@ -48,8 +47,8 @@ Even more content. ## Subsection B ### Sub-subsection B.1 #### Sub-subsection B.1.1 (should not be numbered) -" - expected1 := " +' + expected1 := ' # 1. First Section Some content. ## 1.1. Subsection A @@ -59,35 +58,35 @@ Even more content. ## 1.2. Subsection B ### 1.2.1. Sub-subsection B.1 #### Sub-subsection B.1.1 (should not be numbered) -" +' assert set_titles(page1, 3) == expected1 // Test case 2: maxnr = 2 - page2 := " + page2 := ' # Top Level ## Second Level ### Third Level (should not be numbered) -" - expected2 := " +' + expected2 := ' # 1. Top Level ## 1.1. Second Level ### Third Level (should not be numbered) -" +' assert set_titles(page2, 2) == expected2 // Test case 3: No titles - page3 := " + page3 := ' Plain text document. No titles to renumber. -" - expected3 := " +' + expected3 := ' Plain text document. No titles to renumber. -" +' assert set_titles(page3, 3) == expected3 // Test case 4: Mixed content and reset of numbering - page4 := " + page4 := ' # Chapter One Text. ## Section 1.1 @@ -98,8 +97,8 @@ Text. Text. ## Section 2.1 Text. -" - expected4 := " +' + expected4 := ' # 1. Chapter One Text. ## 1.1. Section 1.1 @@ -110,55 +109,55 @@ Text. Text. ## 2.1. Section 2.1 Text. -" +' assert set_titles(page4, 3) == expected4 // Test case 5: Titles with existing numbers (should be overwritten) - page5 := " + page5 := ' # 5. Old Chapter ## 1.2. Old Section -" - expected5 := " +' + expected5 := ' # 1. Old Chapter ## 1.1. Old Section -" +' assert set_titles(page5, 3) == expected5 // Test case 6: First heading is H2, should be treated as H1 - page6 := " + page6 := ' ## Core Architectural Principles Some text. ### Sub-principle 1 ### Sub-principle 2 ## Core Architectural Principles 2 #### Sub-principle 44 -" - expected6 := " +' + expected6 := ' # 1. Core Architectural Principles Some text. ## 1.1. Sub-principle 1 ## 1.2. Sub-principle 2 # 2. Core Architectural Principles 2 ### 2.1.1. Sub-principle 44 -" +' assert set_titles(page6, 3) == expected6 // Test case 7: maxnr = 0, no numbering but still shift headings - page7 := " + page7 := ' ## Core Architectural Principles Some text. ### Sub-principle 1 ### Sub-principle 2 ## Core Architectural Principles 2 #### Sub-principle 44 -" - expected7 := " +' + expected7 := ' # Core Architectural Principles Some text. ## Sub-principle 1 ## Sub-principle 2 # Core Architectural Principles 2 ### Sub-principle 44 -" +' assert set_titles(page7, 0) == expected7 -} \ No newline at end of file +} diff --git a/lib/data/paramsparser/params_get_kwargs.v b/lib/data/paramsparser/params_get_kwargs.v index 18757301..71513e15 100644 --- a/lib/data/paramsparser/params_get_kwargs.v +++ b/lib/data/paramsparser/params_get_kwargs.v @@ -51,12 +51,12 @@ pub fn (params &Params) get_int(key string) !int { pub fn (params &Params) get_float(key string) !f64 { mut valuestr := params.get(key)! - if valuestr.contains("%"){ + if valuestr.contains('%') { valuestr = valuestr.replace('%', '') - mut vs:=strconv.atof64(valuestr) or { + mut vs := strconv.atof64(valuestr) or { return error('Parameter ${key} = ${valuestr} is not a valid 64-bit float') } - vs=vs/100 + vs = vs / 100 return vs } return strconv.atof64(valuestr) or { diff --git a/lib/develop/gittools/repository_utils.v b/lib/develop/gittools/repository_utils.v index 278e6d14..fab7f778 100644 --- a/lib/develop/gittools/repository_utils.v +++ b/lib/develop/gittools/repository_utils.v @@ -1,6 +1,6 @@ module gittools -import freeflowuniverse.herolib.osal.core as osal.sshagent +import freeflowuniverse.herolib.osal.core.sshagent import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.develop.vscode diff --git a/lib/installers/base/redis.v b/lib/installers/base/redis.v index 26ac1b68..49c560b8 100644 --- a/lib/installers/base/redis.v +++ b/lib/installers/base/redis.v @@ -3,7 +3,7 @@ module base import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import freeflowuniverse.herolib.core import time import os diff --git a/lib/installers/db/cometbft/cometbft_actions.v b/lib/installers/db/cometbft/cometbft_actions.v index 9052956c..ee0a7cd8 100644 --- a/lib/installers/db/cometbft/cometbft_actions.v +++ b/lib/installers/db/cometbft/cometbft_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/db/cometbft/cometbft_factory_.v b/lib/installers/db/cometbft/cometbft_factory_.v index d04eb5de..ae23c4fb 100644 --- a/lib/installers/db/cometbft/cometbft_factory_.v +++ b/lib/installers/db/cometbft/cometbft_factory_.v @@ -3,8 +3,8 @@ module cometbft import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/db/meilisearch_installer/meilisearch_installer_actions.v b/lib/installers/db/meilisearch_installer/meilisearch_installer_actions.v index 76722ecb..78fa51c2 100644 --- a/lib/installers/db/meilisearch_installer/meilisearch_installer_actions.v +++ b/lib/installers/db/meilisearch_installer/meilisearch_installer_actions.v @@ -2,7 +2,7 @@ module meilisearch_installer import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.core.httpconnection import freeflowuniverse.herolib.core.texttools diff --git a/lib/installers/db/meilisearch_installer/meilisearch_installer_factory_.v b/lib/installers/db/meilisearch_installer/meilisearch_installer_factory_.v index 2fa85644..87f54672 100644 --- a/lib/installers/db/meilisearch_installer/meilisearch_installer_factory_.v +++ b/lib/installers/db/meilisearch_installer/meilisearch_installer_factory_.v @@ -3,8 +3,8 @@ module meilisearch_installer import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/db/postgresql/postgresql_actions.v b/lib/installers/db/postgresql/postgresql_actions.v index af02ca98..5c083058 100644 --- a/lib/installers/db/postgresql/postgresql_actions.v +++ b/lib/installers/db/postgresql/postgresql_actions.v @@ -3,7 +3,7 @@ module postgresql import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.installers.virt.podman as podman_installer -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import os diff --git a/lib/installers/db/postgresql/postgresql_factory_.v b/lib/installers/db/postgresql/postgresql_factory_.v index 5d1be0dc..8342b611 100644 --- a/lib/installers/db/postgresql/postgresql_factory_.v +++ b/lib/installers/db/postgresql/postgresql_factory_.v @@ -3,8 +3,8 @@ module postgresql import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/db/qdrant_installer/qdrant_installer_actions.v b/lib/installers/db/qdrant_installer/qdrant_installer_actions.v index 0b7aa9cb..b1588766 100644 --- a/lib/installers/db/qdrant_installer/qdrant_installer_actions.v +++ b/lib/installers/db/qdrant_installer/qdrant_installer_actions.v @@ -1,7 +1,7 @@ module qdrant_installer import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import os diff --git a/lib/installers/db/qdrant_installer/qdrant_installer_factory_.v b/lib/installers/db/qdrant_installer/qdrant_installer_factory_.v index 54cfad5c..01f6181f 100644 --- a/lib/installers/db/qdrant_installer/qdrant_installer_factory_.v +++ b/lib/installers/db/qdrant_installer/qdrant_installer_factory_.v @@ -3,8 +3,8 @@ module qdrant_installer import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/db/zerodb/zerodb_actions.v b/lib/installers/db/zerodb/zerodb_actions.v index b44bc078..6ef59ace 100644 --- a/lib/installers/db/zerodb/zerodb_actions.v +++ b/lib/installers/db/zerodb/zerodb_actions.v @@ -3,7 +3,7 @@ module zerodb import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.develop.gittools import freeflowuniverse.herolib.installers.base diff --git a/lib/installers/db/zerodb/zerodb_factory_.v b/lib/installers/db/zerodb/zerodb_factory_.v index effaba16..3f47780d 100644 --- a/lib/installers/db/zerodb/zerodb_factory_.v +++ b/lib/installers/db/zerodb/zerodb_factory_.v @@ -3,8 +3,8 @@ module zerodb import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/db/zerofs/zerofs_actions.v b/lib/installers/db/zerofs/zerofs_actions.v index a383119e..60fba8f9 100644 --- a/lib/installers/db/zerofs/zerofs_actions.v +++ b/lib/installers/db/zerofs/zerofs_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/db/zerofs/zerofs_factory_.v b/lib/installers/db/zerofs/zerofs_factory_.v index 8c48c7b8..e4e28fd3 100644 --- a/lib/installers/db/zerofs/zerofs_factory_.v +++ b/lib/installers/db/zerofs/zerofs_factory_.v @@ -2,8 +2,8 @@ module zerofs import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/infra/coredns/coredns_actions.v b/lib/installers/infra/coredns/coredns_actions.v index 64621589..7139506a 100644 --- a/lib/installers/infra/coredns/coredns_actions.v +++ b/lib/installers/infra/coredns/coredns_actions.v @@ -6,7 +6,7 @@ import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core import freeflowuniverse.herolib.develop.gittools -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.core.httpconnection import freeflowuniverse.herolib.installers.lang.golang diff --git a/lib/installers/infra/coredns/coredns_factory_.v b/lib/installers/infra/coredns/coredns_factory_.v index ee163beb..dc47297d 100644 --- a/lib/installers/infra/coredns/coredns_factory_.v +++ b/lib/installers/infra/coredns/coredns_factory_.v @@ -3,8 +3,8 @@ module coredns import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/infra/dify/dify_actions.v b/lib/installers/infra/dify/dify_actions.v index 10a84d3f..c83a00a6 100644 --- a/lib/installers/infra/dify/dify_actions.v +++ b/lib/installers/infra/dify/dify_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/infra/dify/dify_factory_.v b/lib/installers/infra/dify/dify_factory_.v index 890edef6..4919ae92 100644 --- a/lib/installers/infra/dify/dify_factory_.v +++ b/lib/installers/infra/dify/dify_factory_.v @@ -3,8 +3,8 @@ module dify import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/infra/gitea/gitea_actions.v b/lib/installers/infra/gitea/gitea_actions.v index 9edc96e6..bbbaa352 100644 --- a/lib/installers/infra/gitea/gitea_actions.v +++ b/lib/installers/infra/gitea/gitea_actions.v @@ -5,7 +5,7 @@ import freeflowuniverse.herolib.core import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.installers.ulist -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import os fn installed() !bool { diff --git a/lib/installers/infra/gitea/gitea_factory_.v b/lib/installers/infra/gitea/gitea_factory_.v index b0549480..750e2188 100644 --- a/lib/installers/infra/gitea/gitea_factory_.v +++ b/lib/installers/infra/gitea/gitea_factory_.v @@ -3,8 +3,8 @@ module gitea import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/infra/livekit/livekit_actions.v b/lib/installers/infra/livekit/livekit_actions.v index a06e6dec..d4f022c6 100644 --- a/lib/installers/infra/livekit/livekit_actions.v +++ b/lib/installers/infra/livekit/livekit_actions.v @@ -1,7 +1,7 @@ module livekit import freeflowuniverse.herolib.osal.core as osal -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.installers.ulist diff --git a/lib/installers/infra/livekit/livekit_factory_.v b/lib/installers/infra/livekit/livekit_factory_.v index d09304a0..1044bc8e 100644 --- a/lib/installers/infra/livekit/livekit_factory_.v +++ b/lib/installers/infra/livekit/livekit_factory_.v @@ -3,8 +3,8 @@ module livekit import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/infra/screen/screen_factory_.v b/lib/installers/infra/screen/screen_factory_.v index 3b0bf55d..2f847741 100644 --- a/lib/installers/infra/screen/screen_factory_.v +++ b/lib/installers/infra/screen/screen_factory_.v @@ -2,8 +2,8 @@ module screen import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( screen_global map[string]&Screen diff --git a/lib/installers/infra/zinit_installer/zinit_installer_actions.v b/lib/installers/infra/zinit_installer/zinit_installer_actions.v index 5474ed07..4330d2af 100644 --- a/lib/installers/infra/zinit_installer/zinit_installer_actions.v +++ b/lib/installers/infra/zinit_installer/zinit_installer_actions.v @@ -5,8 +5,8 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.develop.gittools import freeflowuniverse.herolib.core -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit as zinit_module +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit as zinit_module import freeflowuniverse.herolib.installers.ulist import os diff --git a/lib/installers/infra/zinit_installer/zinit_installer_factory_.v b/lib/installers/infra/zinit_installer/zinit_installer_factory_.v index 9b45738b..065fa607 100644 --- a/lib/installers/infra/zinit_installer/zinit_installer_factory_.v +++ b/lib/installers/infra/zinit_installer/zinit_installer_factory_.v @@ -2,8 +2,8 @@ module zinit_installer import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/lang/golang/golang_factory_.v b/lib/installers/lang/golang/golang_factory_.v index e61e12e3..15bf1a37 100644 --- a/lib/installers/lang/golang/golang_factory_.v +++ b/lib/installers/lang/golang/golang_factory_.v @@ -2,8 +2,8 @@ module golang import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( golang_global map[string]&GolangInstaller diff --git a/lib/installers/lang/nodejs/nodejs_factory_.v b/lib/installers/lang/nodejs/nodejs_factory_.v index 2239cb6d..129f85bc 100644 --- a/lib/installers/lang/nodejs/nodejs_factory_.v +++ b/lib/installers/lang/nodejs/nodejs_factory_.v @@ -2,8 +2,8 @@ module nodejs import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( nodejs_global map[string]&NodeJS diff --git a/lib/installers/lang/python/python_factory_.v b/lib/installers/lang/python/python_factory_.v index 552b3eb9..9a5dcac5 100644 --- a/lib/installers/lang/python/python_factory_.v +++ b/lib/installers/lang/python/python_factory_.v @@ -2,8 +2,8 @@ module python import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( python_global map[string]&Python diff --git a/lib/installers/lang/rust/rust_factory_.v b/lib/installers/lang/rust/rust_factory_.v index 818bfa70..651b3e68 100644 --- a/lib/installers/lang/rust/rust_factory_.v +++ b/lib/installers/lang/rust/rust_factory_.v @@ -2,8 +2,8 @@ module rust import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( rust_global map[string]&RustInstaller diff --git a/lib/installers/net/mycelium_installer/mycelium_installer_actions.v b/lib/installers/net/mycelium_installer/mycelium_installer_actions.v index 7d3f3934..b161d656 100644 --- a/lib/installers/net/mycelium_installer/mycelium_installer_actions.v +++ b/lib/installers/net/mycelium_installer/mycelium_installer_actions.v @@ -8,7 +8,7 @@ import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.installers.infra.zinit_installer import freeflowuniverse.herolib.clients.mycelium import freeflowuniverse.herolib.develop.gittools -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.rust import os diff --git a/lib/installers/net/mycelium_installer/mycelium_installer_factory_.v b/lib/installers/net/mycelium_installer/mycelium_installer_factory_.v index 452ecf59..535c629c 100644 --- a/lib/installers/net/mycelium_installer/mycelium_installer_factory_.v +++ b/lib/installers/net/mycelium_installer/mycelium_installer_factory_.v @@ -3,8 +3,8 @@ module mycelium_installer import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/net/mycelium_installer/mycelium_installer_model.v b/lib/installers/net/mycelium_installer/mycelium_installer_model.v index 921894d9..04e12bc9 100644 --- a/lib/installers/net/mycelium_installer/mycelium_installer_model.v +++ b/lib/installers/net/mycelium_installer/mycelium_installer_model.v @@ -1,7 +1,7 @@ module mycelium_installer import freeflowuniverse.herolib.data.encoderhero -import freeflowuniverse.herolib.osal.core as osal.tun +import freeflowuniverse.herolib.osal.core.tun pub const version = '0.6.1' const singleton = true diff --git a/lib/installers/net/wireguard_installer/wireguard_installer_factory_.v b/lib/installers/net/wireguard_installer/wireguard_installer_factory_.v index 31b99193..8072f552 100644 --- a/lib/installers/net/wireguard_installer/wireguard_installer_factory_.v +++ b/lib/installers/net/wireguard_installer/wireguard_installer_factory_.v @@ -2,8 +2,8 @@ module wireguard_installer import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( wireguard_installer_global map[string]&WireGuard diff --git a/lib/installers/net/yggdrasil/ygg.v b/lib/installers/net/yggdrasil/ygg.v index 65670052..b13d2dc8 100644 --- a/lib/installers/net/yggdrasil/ygg.v +++ b/lib/installers/net/yggdrasil/ygg.v @@ -3,7 +3,7 @@ module yggdrasil import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.screen +import freeflowuniverse.herolib.osal.core.screen import freeflowuniverse.herolib.ui import freeflowuniverse.herolib.develop.gittools import os diff --git a/lib/installers/net/yggdrasil/yggdrasil_actions.v b/lib/installers/net/yggdrasil/yggdrasil_actions.v index 7c346526..3ed08abb 100644 --- a/lib/installers/net/yggdrasil/yggdrasil_actions.v +++ b/lib/installers/net/yggdrasil/yggdrasil_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/net/yggdrasil/yggdrasil_factory_.v b/lib/installers/net/yggdrasil/yggdrasil_factory_.v index 077773cc..dfb066cf 100644 --- a/lib/installers/net/yggdrasil/yggdrasil_factory_.v +++ b/lib/installers/net/yggdrasil/yggdrasil_factory_.v @@ -2,8 +2,8 @@ module yggdrasil import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/actrunner/actrunner_actions.v b/lib/installers/sysadmintools/actrunner/actrunner_actions.v index 1c248475..27a197b0 100644 --- a/lib/installers/sysadmintools/actrunner/actrunner_actions.v +++ b/lib/installers/sysadmintools/actrunner/actrunner_actions.v @@ -2,7 +2,7 @@ module actrunner import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.core diff --git a/lib/installers/sysadmintools/actrunner/actrunner_factory_.v b/lib/installers/sysadmintools/actrunner/actrunner_factory_.v index ed65a4fb..b01a5fb5 100644 --- a/lib/installers/sysadmintools/actrunner/actrunner_factory_.v +++ b/lib/installers/sysadmintools/actrunner/actrunner_factory_.v @@ -2,8 +2,8 @@ module actrunner import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/b2/b2_factory_.v b/lib/installers/sysadmintools/b2/b2_factory_.v index 4afb613f..ad0a9cf0 100644 --- a/lib/installers/sysadmintools/b2/b2_factory_.v +++ b/lib/installers/sysadmintools/b2/b2_factory_.v @@ -2,8 +2,8 @@ module b2 import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( b2_global map[string]&BackBase diff --git a/lib/installers/sysadmintools/daguserver/daguserver_actions.v b/lib/installers/sysadmintools/daguserver/daguserver_actions.v index ae64f87a..1b835340 100644 --- a/lib/installers/sysadmintools/daguserver/daguserver_actions.v +++ b/lib/installers/sysadmintools/daguserver/daguserver_actions.v @@ -7,7 +7,7 @@ import freeflowuniverse.herolib.core import freeflowuniverse.herolib.core.httpconnection import freeflowuniverse.herolib.installers.ulist // import freeflowuniverse.herolib.develop.gittools -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import os fn startupcmd() ![]zinit.ZProcessNewArgs { diff --git a/lib/installers/sysadmintools/daguserver/daguserver_factory_.v b/lib/installers/sysadmintools/daguserver/daguserver_factory_.v index 309be2ee..1d036521 100644 --- a/lib/installers/sysadmintools/daguserver/daguserver_factory_.v +++ b/lib/installers/sysadmintools/daguserver/daguserver_factory_.v @@ -3,8 +3,8 @@ module daguserver import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/fungistor/fungistor_actions.v b/lib/installers/sysadmintools/fungistor/fungistor_actions.v index 4fac17bb..9751e412 100644 --- a/lib/installers/sysadmintools/fungistor/fungistor_actions.v +++ b/lib/installers/sysadmintools/fungistor/fungistor_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/sysadmintools/fungistor/fungistor_factory_.v b/lib/installers/sysadmintools/fungistor/fungistor_factory_.v index 1700d202..63377e69 100644 --- a/lib/installers/sysadmintools/fungistor/fungistor_factory_.v +++ b/lib/installers/sysadmintools/fungistor/fungistor_factory_.v @@ -2,8 +2,8 @@ module fungistor import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/garage_s3/garage_s3_actions.v b/lib/installers/sysadmintools/garage_s3/garage_s3_actions.v index 1562ef49..b072b572 100644 --- a/lib/installers/sysadmintools/garage_s3/garage_s3_actions.v +++ b/lib/installers/sysadmintools/garage_s3/garage_s3_actions.v @@ -4,7 +4,7 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.core.httpconnection import os diff --git a/lib/installers/sysadmintools/garage_s3/garage_s3_factory_.v b/lib/installers/sysadmintools/garage_s3/garage_s3_factory_.v index 0dbe3e99..9e770d3a 100644 --- a/lib/installers/sysadmintools/garage_s3/garage_s3_factory_.v +++ b/lib/installers/sysadmintools/garage_s3/garage_s3_factory_.v @@ -3,8 +3,8 @@ module garage_s3 import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/grafana/grafana.v b/lib/installers/sysadmintools/grafana/grafana.v index 0e89b666..c7344e09 100644 --- a/lib/installers/sysadmintools/grafana/grafana.v +++ b/lib/installers/sysadmintools/grafana/grafana.v @@ -6,7 +6,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/grafana/grafana_actions.v b/lib/installers/sysadmintools/grafana/grafana_actions.v index e1539456..30b1d297 100644 --- a/lib/installers/sysadmintools/grafana/grafana_actions.v +++ b/lib/installers/sysadmintools/grafana/grafana_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/sysadmintools/grafana/grafana_factory_.v b/lib/installers/sysadmintools/grafana/grafana_factory_.v index 6aedabc2..14b23a2a 100644 --- a/lib/installers/sysadmintools/grafana/grafana_factory_.v +++ b/lib/installers/sysadmintools/grafana/grafana_factory_.v @@ -2,8 +2,8 @@ module grafana import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/prometheus/alertmanager_installer.v b/lib/installers/sysadmintools/prometheus/alertmanager_installer.v index a89f2bcf..60ce52ec 100644 --- a/lib/installers/sysadmintools/prometheus/alertmanager_installer.v +++ b/lib/installers/sysadmintools/prometheus/alertmanager_installer.v @@ -6,7 +6,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/prometheus/blackbox_exporter.v b/lib/installers/sysadmintools/prometheus/blackbox_exporter.v index 48c0fcc3..48f801e6 100644 --- a/lib/installers/sysadmintools/prometheus/blackbox_exporter.v +++ b/lib/installers/sysadmintools/prometheus/blackbox_exporter.v @@ -5,7 +5,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/prometheus/node_exporter.v b/lib/installers/sysadmintools/prometheus/node_exporter.v index e0226b05..148daab0 100644 --- a/lib/installers/sysadmintools/prometheus/node_exporter.v +++ b/lib/installers/sysadmintools/prometheus/node_exporter.v @@ -6,7 +6,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/prometheus/prom2json.v b/lib/installers/sysadmintools/prometheus/prom2json.v index 0f4db297..d9a7a85a 100644 --- a/lib/installers/sysadmintools/prometheus/prom2json.v +++ b/lib/installers/sysadmintools/prometheus/prom2json.v @@ -6,7 +6,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/prometheus/prometheus_actions.v b/lib/installers/sysadmintools/prometheus/prometheus_actions.v index 7065e2a0..381ba7f7 100644 --- a/lib/installers/sysadmintools/prometheus/prometheus_actions.v +++ b/lib/installers/sysadmintools/prometheus/prometheus_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/sysadmintools/prometheus/prometheus_factory_.v b/lib/installers/sysadmintools/prometheus/prometheus_factory_.v index 56642955..3cc0dc65 100644 --- a/lib/installers/sysadmintools/prometheus/prometheus_factory_.v +++ b/lib/installers/sysadmintools/prometheus/prometheus_factory_.v @@ -2,8 +2,8 @@ module prometheus import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/prometheus/prometheus_installer.v b/lib/installers/sysadmintools/prometheus/prometheus_installer.v index 6c331615..a43bb245 100644 --- a/lib/installers/sysadmintools/prometheus/prometheus_installer.v +++ b/lib/installers/sysadmintools/prometheus/prometheus_installer.v @@ -5,7 +5,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/prometheus/prometheus_installer_factory.v b/lib/installers/sysadmintools/prometheus/prometheus_installer_factory.v index b4c35a5f..2a49463f 100644 --- a/lib/installers/sysadmintools/prometheus/prometheus_installer_factory.v +++ b/lib/installers/sysadmintools/prometheus/prometheus_installer_factory.v @@ -5,7 +5,7 @@ import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.httpconnection -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager import os import time diff --git a/lib/installers/sysadmintools/rclone/rclone_factory_.v b/lib/installers/sysadmintools/rclone/rclone_factory_.v index 6b684916..25e95b30 100644 --- a/lib/installers/sysadmintools/rclone/rclone_factory_.v +++ b/lib/installers/sysadmintools/rclone/rclone_factory_.v @@ -3,8 +3,8 @@ module rclone import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( rclone_global map[string]&RClone diff --git a/lib/installers/sysadmintools/restic/restic_actions.v b/lib/installers/sysadmintools/restic/restic_actions.v index a1e7f2d2..a09bbc2a 100644 --- a/lib/installers/sysadmintools/restic/restic_actions.v +++ b/lib/installers/sysadmintools/restic/restic_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/sysadmintools/restic/restic_factory_.v b/lib/installers/sysadmintools/restic/restic_factory_.v index 85bc523d..e5d08fec 100644 --- a/lib/installers/sysadmintools/restic/restic_factory_.v +++ b/lib/installers/sysadmintools/restic/restic_factory_.v @@ -2,8 +2,8 @@ module restic import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/s3/s3_actions.v b/lib/installers/sysadmintools/s3/s3_actions.v index 6a5927d0..17a1bd71 100644 --- a/lib/installers/sysadmintools/s3/s3_actions.v +++ b/lib/installers/sysadmintools/s3/s3_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/sysadmintools/s3/s3_factory_.v b/lib/installers/sysadmintools/s3/s3_factory_.v index 4524eb0a..b0ee5b0a 100644 --- a/lib/installers/sysadmintools/s3/s3_factory_.v +++ b/lib/installers/sysadmintools/s3/s3_factory_.v @@ -2,8 +2,8 @@ module s3 import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/sysadmintools/s3/server.v b/lib/installers/sysadmintools/s3/server.v index 0b073133..197fcc85 100644 --- a/lib/installers/sysadmintools/s3/server.v +++ b/lib/installers/sysadmintools/s3/server.v @@ -1,7 +1,7 @@ module s3 import freeflowuniverse.herolib.osal.core as osal -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.data.dbfs import freeflowuniverse.herolib.core.texttools import json diff --git a/lib/installers/threefold/griddriver/griddriver_factory_.v b/lib/installers/threefold/griddriver/griddriver_factory_.v index 0bba93b1..c069e46c 100644 --- a/lib/installers/threefold/griddriver/griddriver_factory_.v +++ b/lib/installers/threefold/griddriver/griddriver_factory_.v @@ -2,8 +2,8 @@ module griddriver import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( griddriver_global map[string]&GridDriverInstaller diff --git a/lib/installers/virt/cloudhypervisor/cloudhypervisor_factory_.v b/lib/installers/virt/cloudhypervisor/cloudhypervisor_factory_.v index fe8dcdde..28addbce 100644 --- a/lib/installers/virt/cloudhypervisor/cloudhypervisor_factory_.v +++ b/lib/installers/virt/cloudhypervisor/cloudhypervisor_factory_.v @@ -2,8 +2,8 @@ module cloudhypervisor import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( cloudhypervisor_global map[string]&CloudHypervisor diff --git a/lib/installers/virt/docker/docker_actions.v b/lib/installers/virt/docker/docker_actions.v index 1390c3ad..31b68d24 100644 --- a/lib/installers/virt/docker/docker_actions.v +++ b/lib/installers/virt/docker/docker_actions.v @@ -3,7 +3,7 @@ module docker import freeflowuniverse.herolib.core import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist fn startupcmd() ![]zinit.ZProcessNewArgs { diff --git a/lib/installers/virt/docker/docker_factory_.v b/lib/installers/virt/docker/docker_factory_.v index 66f7c83a..1d9e3525 100644 --- a/lib/installers/virt/docker/docker_factory_.v +++ b/lib/installers/virt/docker/docker_factory_.v @@ -2,8 +2,8 @@ module docker import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/virt/pacman/pacman_factory_.v b/lib/installers/virt/pacman/pacman_factory_.v index 9add9f38..957fa730 100644 --- a/lib/installers/virt/pacman/pacman_factory_.v +++ b/lib/installers/virt/pacman/pacman_factory_.v @@ -2,8 +2,8 @@ module pacman import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( pacman_global map[string]&PacmanInstaller diff --git a/lib/installers/virt/podman/podman_factory_.v b/lib/installers/virt/podman/podman_factory_.v index fc507492..e684f7b7 100644 --- a/lib/installers/virt/podman/podman_factory_.v +++ b/lib/installers/virt/podman/podman_factory_.v @@ -2,8 +2,8 @@ module podman import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( podman_global map[string]&PodmanInstaller diff --git a/lib/installers/virt/youki/youki_factory_.v b/lib/installers/virt/youki/youki_factory_.v index b0f72736..094485a3 100644 --- a/lib/installers/virt/youki/youki_factory_.v +++ b/lib/installers/virt/youki/youki_factory_.v @@ -2,8 +2,8 @@ module youki import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( youki_global map[string]&YoukiInstaller diff --git a/lib/installers/web/bun/bun_factory_.v b/lib/installers/web/bun/bun_factory_.v index d6854df4..aeba862c 100644 --- a/lib/installers/web/bun/bun_factory_.v +++ b/lib/installers/web/bun/bun_factory_.v @@ -2,8 +2,8 @@ module bun import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( bun_global map[string]&Bun diff --git a/lib/installers/web/imagemagick/imagemagick_actions.v b/lib/installers/web/imagemagick/imagemagick_actions.v index d708105a..4e3180a7 100644 --- a/lib/installers/web/imagemagick/imagemagick_actions.v +++ b/lib/installers/web/imagemagick/imagemagick_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/web/imagemagick/imagemagick_factory_.v b/lib/installers/web/imagemagick/imagemagick_factory_.v index 01be716e..5fe3f7ca 100644 --- a/lib/installers/web/imagemagick/imagemagick_factory_.v +++ b/lib/installers/web/imagemagick/imagemagick_factory_.v @@ -2,8 +2,8 @@ module imagemagick import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/web/lighttpd/installer.v b/lib/installers/web/lighttpd/installer.v index 2f71aa47..d7737c5b 100644 --- a/lib/installers/web/lighttpd/installer.v +++ b/lib/installers/web/lighttpd/installer.v @@ -5,9 +5,9 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.installers.infra.zinit -import freeflowuniverse.herolib.osal.core as osal.zinit as zinitmgmt +import freeflowuniverse.herolib.osal.core.zinit as zinitmgmt import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.screen +import freeflowuniverse.herolib.osal.core.screen import os // install lighttpd will return true if it was already installed diff --git a/lib/installers/web/lighttpd/lighttpd_actions.v b/lib/installers/web/lighttpd/lighttpd_actions.v index 9db59407..fb0b0b00 100644 --- a/lib/installers/web/lighttpd/lighttpd_actions.v +++ b/lib/installers/web/lighttpd/lighttpd_actions.v @@ -4,8 +4,8 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core.pathlib -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import freeflowuniverse.herolib.installers.lang.golang import freeflowuniverse.herolib.installers.lang.rust diff --git a/lib/installers/web/lighttpd/lighttpd_factory_.v b/lib/installers/web/lighttpd/lighttpd_factory_.v index 2e7063eb..20b37fe1 100644 --- a/lib/installers/web/lighttpd/lighttpd_factory_.v +++ b/lib/installers/web/lighttpd/lighttpd_factory_.v @@ -2,8 +2,8 @@ module lighttpd import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/web/tailwind/tailwind_factory_.v b/lib/installers/web/tailwind/tailwind_factory_.v index 2526748c..c10b2071 100644 --- a/lib/installers/web/tailwind/tailwind_factory_.v +++ b/lib/installers/web/tailwind/tailwind_factory_.v @@ -2,8 +2,8 @@ module tailwind import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( tailwind_global map[string]&Tailwind diff --git a/lib/installers/web/tailwind4/tailwind_factory_.v b/lib/installers/web/tailwind4/tailwind_factory_.v index 595e15e0..28f4085a 100644 --- a/lib/installers/web/tailwind4/tailwind_factory_.v +++ b/lib/installers/web/tailwind4/tailwind_factory_.v @@ -2,8 +2,8 @@ module tailwind4 import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( tailwind_global map[string]&Tailwind diff --git a/lib/installers/web/traefik/traefik_actions.v b/lib/installers/web/traefik/traefik_actions.v index ad08331a..ca17a864 100644 --- a/lib/installers/web/traefik/traefik_actions.v +++ b/lib/installers/web/traefik/traefik_actions.v @@ -4,7 +4,7 @@ import freeflowuniverse.herolib.osal.core as osal import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.core -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit import freeflowuniverse.herolib.installers.ulist import os diff --git a/lib/installers/web/traefik/traefik_factory_.v b/lib/installers/web/traefik/traefik_factory_.v index f89e10cd..db24812f 100644 --- a/lib/installers/web/traefik/traefik_factory_.v +++ b/lib/installers/web/traefik/traefik_factory_.v @@ -3,8 +3,8 @@ module traefik import freeflowuniverse.herolib.core.base import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit import time __global ( diff --git a/lib/installers/web/zola/zola_factory_.v b/lib/installers/web/zola/zola_factory_.v index 2267af79..efa8000d 100644 --- a/lib/installers/web/zola/zola_factory_.v +++ b/lib/installers/web/zola/zola_factory_.v @@ -2,8 +2,8 @@ module zola import freeflowuniverse.herolib.core.playbook import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.startupmanager -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.startupmanager +import freeflowuniverse.herolib.osal.core.zinit __global ( zola_global map[string]&ZolaInstaller diff --git a/lib/osal/coredns/README.md b/lib/osal/coredns/README.md index 259d28be..da8178f5 100644 --- a/lib/osal/coredns/README.md +++ b/lib/osal/coredns/README.md @@ -3,7 +3,7 @@ This module provides functionality for managing DNS records in Redis for use with CoreDNS. It supports various DNS record types and provides a simple interface for adding and managing DNS records. ```v -import freeflowuniverse.herolib.osal.core as osal.coredns +import freeflowuniverse.herolib.osal.core.coredns // Create a new DNS record set mut rs := coredns.new_dns_record_set() diff --git a/lib/osal/hostsfile/README.md b/lib/osal/hostsfile/README.md index c9458cb0..ad2bb9b1 100644 --- a/lib/osal/hostsfile/README.md +++ b/lib/osal/hostsfile/README.md @@ -19,7 +19,7 @@ Create a file `example.vsh`: ```v #!/usr/bin/env -S v -n -w -gc none -cc tcc -d use_openssl -enable-globals run -import freeflowuniverse.herolib.osal.core as osal.hostsfile +import freeflowuniverse.herolib.osal.core.hostsfile import os // Create a new instance by reading the hosts file diff --git a/lib/osal/notifier/readme.md b/lib/osal/notifier/readme.md index a103459c..2e993791 100644 --- a/lib/osal/notifier/readme.md +++ b/lib/osal/notifier/readme.md @@ -16,7 +16,7 @@ A file system notification system for V that provides real-time monitoring of fi ## Usage Example ```v -import freeflowuniverse.herolib.osal.core as osal.notifier +import freeflowuniverse.herolib.osal.core.notifier // Define callback function for file events fn on_file_change(event notifier.NotifyEvent, path string) { diff --git a/lib/osal/screen/readme.md b/lib/osal/screen/readme.md index a56b6e89..75296f63 100644 --- a/lib/osal/screen/readme.md +++ b/lib/osal/screen/readme.md @@ -9,7 +9,7 @@ Create a file `screen_example.vsh`: ```v #!/usr/bin/env -S v run -import freeflowuniverse.herolib.osal.core as osal.screen +import freeflowuniverse.herolib.osal.core.screen // Create a new screen factory mut sf := screen.new()! diff --git a/lib/osal/sshagent/readme.md b/lib/osal/sshagent/readme.md index fcffd0e8..1b3ce972 100644 --- a/lib/osal/sshagent/readme.md +++ b/lib/osal/sshagent/readme.md @@ -1,7 +1,7 @@ ## ssh agent ```v -import freeflowuniverse.herolib.osal.core as osal.sshagent +import freeflowuniverse.herolib.osal.core.sshagent mut agent := sshagent.new()! diff --git a/lib/osal/startupmanager/readme.md b/lib/osal/startupmanager/readme.md index 5b85c594..c32ef742 100644 --- a/lib/osal/startupmanager/readme.md +++ b/lib/osal/startupmanager/readme.md @@ -1,7 +1,7 @@ # startup manager ```go -import freeflowuniverse.herolib.osal.core as osal.startupmanager +import freeflowuniverse.herolib.osal.core.startupmanager mut sm:=startupmanager.get()! diff --git a/lib/osal/startupmanager/startupmanager.v b/lib/osal/startupmanager/startupmanager.v index 6ff55c8e..3939ec0d 100644 --- a/lib/osal/startupmanager/startupmanager.v +++ b/lib/osal/startupmanager/startupmanager.v @@ -1,9 +1,9 @@ module startupmanager import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.screen -import freeflowuniverse.herolib.osal.core as osal.systemd -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.screen +import freeflowuniverse.herolib.osal.core.systemd +import freeflowuniverse.herolib.osal.core.zinit // // TODO: check if using this interface would simplify things // pub interface StartupManagerI { diff --git a/lib/osal/startupmanager/startupmanager_test.v b/lib/osal/startupmanager/startupmanager_test.v index 613646f4..dbad9cc7 100644 --- a/lib/osal/startupmanager/startupmanager_test.v +++ b/lib/osal/startupmanager/startupmanager_test.v @@ -1,8 +1,8 @@ module startupmanager import freeflowuniverse.herolib.ui.console -import freeflowuniverse.herolib.osal.core as osal.screen -import freeflowuniverse.herolib.osal.core as osal.systemd +import freeflowuniverse.herolib.osal.core.screen +import freeflowuniverse.herolib.osal.core.systemd import os import time diff --git a/lib/osal/traefik/README.md b/lib/osal/traefik/README.md index c552cb2a..f7d1e69f 100644 --- a/lib/osal/traefik/README.md +++ b/lib/osal/traefik/README.md @@ -14,7 +14,7 @@ The module allows you to: ## Usage Example ```v -import freeflowuniverse.herolib.osal.core as osal.traefik +import freeflowuniverse.herolib.osal.core.traefik fn main() ! { // Create a new Traefik configuration diff --git a/lib/osal/tun/readme.md b/lib/osal/tun/readme.md index f317b8bc..008966f6 100644 --- a/lib/osal/tun/readme.md +++ b/lib/osal/tun/readme.md @@ -20,7 +20,7 @@ Returns the name of an available TUN interface: #!/usr/bin/env -S v -n -w -gc none -cc tcc -d use_openssl -enable-globals run -import freeflowuniverse.herolib.osal.core as osal.tun +import freeflowuniverse.herolib.osal.core.tun // Check if TUN is available diff --git a/lib/osal/zinit/readme.md b/lib/osal/zinit/readme.md index 5fdd4c01..2a6a1876 100644 --- a/lib/osal/zinit/readme.md +++ b/lib/osal/zinit/readme.md @@ -22,7 +22,7 @@ Zinit is a process manager that allows you to manage services on a system. This ### Basic Usage ```v -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit fn main() { // Create a new Zinit client with the default socket path @@ -47,7 +47,7 @@ fn main() { ### Creating a New Service ```v -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit fn main() { mut zinit_client := zinit.new_stateless()! @@ -77,7 +77,7 @@ fn main() { ### Getting Service Statistics ```v -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit fn main() { mut zinit_client := zinit.new_stateless()! @@ -98,7 +98,7 @@ fn main() { ### Retrieving Logs ```v -import freeflowuniverse.herolib.osal.core as osal.zinit +import freeflowuniverse.herolib.osal.core.zinit fn main() { mut zinit_client := zinit.new_stateless()! diff --git a/lib/threefold/grid3/tfrobot/deploy.v b/lib/threefold/grid3/tfrobot/deploy.v index 20dedaea..d23143ef 100644 --- a/lib/threefold/grid3/tfrobot/deploy.v +++ b/lib/threefold/grid3/tfrobot/deploy.v @@ -6,7 +6,7 @@ import os import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.osal.core as osal -import freeflowuniverse.herolib.osal.core as osal.sshagent +import freeflowuniverse.herolib.osal.core.sshagent const tfrobot_dir = '${os.home_dir()}/hero/tfrobot' // path to tfrobot dir in fs diff --git a/lib/web/doctreeclient/client.v b/lib/web/doctreeclient/client.v index c519a8da..a5606d66 100644 --- a/lib/web/doctreeclient/client.v +++ b/lib/web/doctreeclient/client.v @@ -4,7 +4,6 @@ import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.core.texttools import os - // List of recognized image file extensions const image_extensions = ['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.bmp', '.tiff', '.ico'] @@ -71,11 +70,11 @@ pub fn (mut c DocTreeClient) get_image_path(collection_name string, image_name s rel_path := c.redis.hget('doctree:${fixed_collection_name}', fixed_image_name) or { return error('${DocTreeError.image_not_found}: Image "${image_name}" not found in collection "${collection_name}"') } - + if rel_path == '' { return error('${DocTreeError.image_not_found}: Image "${image_name}" found in collection "${collection_name}" but its path is empty in Redis.') } - + // console.print_debug('get_image_path: rel_path for "${image_name}": "${rel_path}"') // Combine the collection path with the relative path @@ -257,7 +256,7 @@ pub fn (mut c DocTreeClient) list_images(collection_name string) ![]string { pub fn (mut c DocTreeClient) list_pages_map() !map[string][]string { mut result := map[string][]string{} collections := c.list_collections()! - + for col_name in collections { mut page_names := c.list_pages(col_name)! page_names.sort() @@ -301,7 +300,7 @@ pub fn (mut c DocTreeClient) get_page_paths(collection_name string, page_name st page_content := c.get_page_content(collection_name, page_name)! // Extract image names from the page content - image_names := extract_image_links(page_content,true)! + image_names := extract_image_links(page_content, true)! // println(image_names) mut image_paths := []string{} @@ -346,5 +345,3 @@ pub fn (mut c DocTreeClient) copy_images(collection_name string, page_name strin // console.print_debug('Copy Image file "${image_file_name}" copied.') } } - - diff --git a/lib/web/doctreeclient/extract_links.v b/lib/web/doctreeclient/extract_links.v index df851032..835c8adb 100644 --- a/lib/web/doctreeclient/extract_links.v +++ b/lib/web/doctreeclient/extract_links.v @@ -9,43 +9,43 @@ pub fn extract_image_links(s string, exclude_http bool) ![]string { if current_pos >= s.len { break } - + // Find the start of an image markdown link start_index := s.index_after('![', current_pos) or { -1 } if start_index == -1 { break // No more image links found } - + // Find the closing bracket for alt text alt_end_index := s.index_after(']', start_index) or { -1 } if alt_end_index == -1 { break } - + // Check for opening parenthesis for URL if alt_end_index + 1 >= s.len || s[alt_end_index + 1] != `(` { current_pos = alt_end_index + 1 // Move past this invalid sequence continue } - + // Find the closing parenthesis for URL url_start_index := alt_end_index + 2 url_end_index := s.index_after(')', url_start_index) or { -1 } if url_end_index == -1 { break } - + // Extract the URL url := s[url_start_index..url_end_index] if exclude_http && (url.starts_with('http://') || url.starts_with('https://')) { current_pos = url_end_index + 1 continue } - + // Extract only the base name of the image from the URL image_base_name := os.base(url) result << image_base_name - + // Move current_pos past the found link to continue searching current_pos = url_end_index + 1 } diff --git a/lib/web/doctreeclient/extract_links_test.v b/lib/web/doctreeclient/extract_links_test.v index 933da2cc..bcbf2d36 100644 --- a/lib/web/doctreeclient/extract_links_test.v +++ b/lib/web/doctreeclient/extract_links_test.v @@ -4,93 +4,104 @@ import os fn test_extract_image_links() { // Test case 1: Basic case with one image link - mut result := extract_image_links('Some text ![Alt Text](https://example.com/image1.png) more text',false)! + mut result := extract_image_links('Some text ![Alt Text](https://example.com/image1.png) more text', + false)! assert result.len == 1 assert result[0] == 'https://example.com/image1.png' // Test case 2: Multiple image links - result = extract_image_links('![Img1](https://example.com/img1.jpg) Text ![Img2](https://example.com/img2.gif)',false)! + result = extract_image_links('![Img1](https://example.com/img1.jpg) Text ![Img2](https://example.com/img2.gif)', + false)! assert result.len == 2 assert result[0] == 'https://example.com/img1.jpg' assert result[1] == 'https://example.com/img2.gif' // Test case 3: No image links - result = extract_image_links('Just some plain text without images.',false)! + result = extract_image_links('Just some plain text without images.', false)! assert result.len == 0 // Test case 4: Mixed content with other markdown - result = extract_image_links('A link [Link](https://example.com) and an image ![Photo](https://example.com/photo.jpeg).',false)! + result = extract_image_links('A link [Link](https://example.com) and an image ![Photo](https://example.com/photo.jpeg).', + false)! assert result.len == 1 assert result[0] == 'https://example.com/photo.jpeg' // Test case 5: Invalid image link (missing parenthesis) - result = extract_image_links('Invalid ![Broken Link]https://example.com/broken.png',false)! + result = extract_image_links('Invalid ![Broken Link]https://example.com/broken.png', + false)! assert result.len == 0 // Test case 6: Empty string - result = extract_image_links('',false)! + result = extract_image_links('', false)! assert result.len == 0 // Test case 7: Image link at the beginning of the string - result = extract_image_links('![Start](https://example.com/start.png) Some text.',false)! + result = extract_image_links('![Start](https://example.com/start.png) Some text.', + false)! assert result.len == 1 assert result[0] == 'https://example.com/start.png' // Test case 8: Image link at the end of the string - result = extract_image_links('Some text ![End](https://example.com/end.png)',false)! + result = extract_image_links('Some text ![End](https://example.com/end.png)', false)! assert result.len == 1 assert result[0] == 'https://example.com/end.png' // Test case 9: Image link with spaces in URL (should not happen in valid markdown, but good to test robustness) - result = extract_image_links('![Space](https://example.com/image with spaces.png)',false)! + result = extract_image_links('![Space](https://example.com/image with spaces.png)', + false)! assert result.len == 1 assert result[0] == 'https://example.com/image with spaces.png' // Test case 10: Image link with special characters in URL - result = extract_image_links('![Special](https://example.com/path/to/image?id=1&name=test.png)',false)! + result = extract_image_links('![Special](https://example.com/path/to/image?id=1&name=test.png)', + false)! assert result.len == 1 assert result[0] == 'https://example.com/path/to/image?id=1&name=test.png' // Test case 11: Multiple image links without spaces in between - result = extract_image_links('![A](https://a.com)![B](https://b.com)![C](https://c.com)',false)! + result = extract_image_links('![A](https://a.com)![B](https://b.com)![C](https://c.com)', + false)! assert result.len == 3 assert result[0] == 'https://a.com' assert result[1] == 'https://b.com' assert result[2] == 'https://c.com' // Test case 12: Image link with empty alt text - result = extract_image_links('![](https://example.com/noalt.png)',false)! + result = extract_image_links('![](https://example.com/noalt.png)', false)! assert result.len == 1 assert result[0] == 'https://example.com/noalt.png' // Test case 13: Image link with empty URL (invalid markdown, but test behavior) - result = extract_image_links('![Empty URL]()',false)! + result = extract_image_links('![Empty URL]()', false)! assert result.len == 1 assert result[0] == '' // Expecting an empty string for the URL // Test case 14: Image link with only alt text and no URL part - result = extract_image_links('![Only Alt Text]',false)! + result = extract_image_links('![Only Alt Text]', false)! assert result.len == 0 // Test case 15: Image link with only URL part and no alt text - result = extract_image_links('()',false)! + result = extract_image_links('()', false)! assert result.len == 0 // --- Test cases for exclude_http = true --- // Test case 16: Exclude http links, only relative link - result = extract_image_links('Some text ![Relative](image.png) ![Absolute](https://example.com/image.png)', true)! + result = extract_image_links('Some text ![Relative](image.png) ![Absolute](https://example.com/image.png)', + true)! assert result.len == 1 assert result[0] == 'image.png' // Test case 17: Exclude http links, multiple relative links - result = extract_image_links('![Rel1](img1.jpg) ![Abs1](http://example.com/img.jpg) ![Rel2](/path/to/img2.gif)', true)! + result = extract_image_links('![Rel1](img1.jpg) ![Abs1](http://example.com/img.jpg) ![Rel2](/path/to/img2.gif)', + true)! assert result.len == 2 assert result[0] == 'img1.jpg' assert result[1] == '/path/to/img2.gif' // Test case 18: Exclude http links, all absolute links - result = extract_image_links('![Abs1](https://example.com/img1.png) ![Abs2](http://example.com/img2.png)', true)! + result = extract_image_links('![Abs1](https://example.com/img1.png) ![Abs2](http://example.com/img2.png)', + true)! assert result.len == 0 // Test case 19: Exclude http links, no links at all @@ -98,7 +109,8 @@ fn test_extract_image_links() { assert result.len == 0 // Test case 20: Exclude http links, mixed absolute and relative, with other markdown - result = extract_image_links('A link [Link](https://example.com) and an image ![Photo](https://example.com/photo.jpeg) and another ![Local](local.png).', true)! + result = extract_image_links('A link [Link](https://example.com) and an image ![Photo](https://example.com/photo.jpeg) and another ![Local](local.png).', + true)! assert result.len == 1 assert result[0] == 'local.png' @@ -112,7 +124,8 @@ fn test_extract_image_links() { assert result[0] == '' // Test case 23: Exclude http links, image with data URI (should not be excluded) - result = extract_image_links('![Data URI](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=)', true)! + result = extract_image_links('![Data URI](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=)', + true)! assert result.len == 1 assert result[0] == 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=' } diff --git a/lib/web/docusaurus/dsite.v b/lib/web/docusaurus/dsite.v index fee7a9ac..c4dc2569 100644 --- a/lib/web/docusaurus/dsite.v +++ b/lib/web/docusaurus/dsite.v @@ -1,6 +1,6 @@ module docusaurus -import freeflowuniverse.herolib.osal.core as osal.screen +import freeflowuniverse.herolib.osal.core.screen import os import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.web.siteconfig diff --git a/lib/web/docusaurus/dsite_generate.v b/lib/web/docusaurus/dsite_generate.v index 37e2f9ee..720303b9 100644 --- a/lib/web/docusaurus/dsite_generate.v +++ b/lib/web/docusaurus/dsite_generate.v @@ -14,7 +14,6 @@ pub fn (mut site DocSite) generate() ! { console.print_header(' site generate: ${site.name} on ${site.factory.path_build.path}') console.print_header(' site source on ${site.path_src.path}') - // lets make sure we remove the cfg dir so we rebuild cfg_path := os.join_path(site.factory.path_build.path, 'cfg') osal.rm(cfg_path)! @@ -50,23 +49,26 @@ pub fn (mut site DocSite) generate() ! { mut aa := site.path_src.dir_get('docs')! aa.copy(dest: '${site.factory.path_build.path}/docs', delete: true)! - - //now we need to process the pages, call the sitegen module, which will look for statements like + // now we need to process the pages, call the sitegen module, which will look for statements like // !!site.page sitename:'atest' // path:"crazy/sub.md" position:1 - // src:"marketplace_specs:tft_tfp_marketplace" + // src:"marketplace_specs:tft_tfp_marketplace" // title:"Just a Page" // description:"A description not filled in" - // draft:1 hide_title:1 + // draft:1 hide_title:1 - configpath:="${site.path_src.path}/cfg" - sitegen.play(heroscript_path: configpath, dest:'${site.factory.path_build.path}/docs', flat:true, sitename:site.name)! + configpath := '${site.path_src.path}/cfg' + sitegen.play( + heroscript_path: configpath + dest: '${site.factory.path_build.path}/docs' + flat: true + sitename: site.name + )! site.process_imports()! } pub fn (mut site DocSite) process_imports() ! { - mut gs := gittools.new()! for item in site.siteconfig.imports { mypath := gs.get_path( diff --git a/lib/web/docusaurus/dsite_get.v b/lib/web/docusaurus/dsite_get.v index 95cf0ae7..8bc7d1e0 100644 --- a/lib/web/docusaurus/dsite_get.v +++ b/lib/web/docusaurus/dsite_get.v @@ -35,7 +35,6 @@ pub fn (mut f DocusaurusFactory) get(args_ DSiteGetArgs) !&DocSite { console.print_header(' Docusaurus: ${args_.name}') mut args := args_ - mut path := gittools.path( path: args.path git_url: args.git_url @@ -96,7 +95,7 @@ pub fn (mut f DocusaurusFactory) get(args_ DSiteGetArgs) !&DocSite { reset: args.update )! - //the play will automatically do an export on ~/hero/var/doctree/main if no export specified in the heroscript + // the play will automatically do an export on ~/hero/var/doctree/main if no export specified in the heroscript mut mysiteconfig := *siteconfig.new(configpath)! diff --git a/lib/web/docusaurus/play.v b/lib/web/docusaurus/play.v index 656f581f..dc8b4432 100644 --- a/lib/web/docusaurus/play.v +++ b/lib/web/docusaurus/play.v @@ -37,8 +37,6 @@ pub fn play(args_ PlayArgs) ! { )! } - - actions := plbook.find(filter: 'docusaurus.add')! for action in actions { mut p := action.params @@ -48,24 +46,22 @@ pub fn play(args_ PlayArgs) ! { git_reset := p.get_default_false('git_reset') git_pull := p.get_default_false('git_pull') - mut site := ds.get( - name: name - nameshort: p.get_default('nameshort', name)! - path: path - git_url: git_url - git_reset: git_reset - git_root: p.get_default('git_root', '')! - git_pull: git_pull - path_publish: p.get_default('path_publish', '')! - production: p.get_default_false('production') + name: name + nameshort: p.get_default('nameshort', name)! + path: path + git_url: git_url + git_reset: git_reset + git_root: p.get_default('git_root', '')! + git_pull: git_pull + path_publish: p.get_default('path_publish', '')! + production: p.get_default_false('production') // watch_changes: p.get_default_true('watch_changes') - update: p.get_default_false('update') - open: p.get_default_false('open') - init: p.get_default_false('init') + update: p.get_default_false('update') + open: p.get_default_false('open') + init: p.get_default_false('init') )! - if plbook.exists_once(filter: 'docusaurus.dev') { site.dev()! } diff --git a/lib/web/docusaurus/watcher.v b/lib/web/docusaurus/watcher.v index f94fab0d..bd4d29a6 100644 --- a/lib/web/docusaurus/watcher.v +++ b/lib/web/docusaurus/watcher.v @@ -1,6 +1,6 @@ module docusaurus -import freeflowuniverse.herolib.osal.core as osal.notifier +import freeflowuniverse.herolib.osal.core.notifier import os fn watch_docs(docs_path string, path_src string, path_build string) ! { diff --git a/lib/web/sitegen/factory.v b/lib/web/sitegen/factory.v index 353d53ad..df7e5dcd 100644 --- a/lib/web/sitegen/factory.v +++ b/lib/web/sitegen/factory.v @@ -6,10 +6,10 @@ import os pub struct SiteFactory { pub mut: - sites map[string]&Site - path pathlib.Path + sites map[string]&Site + path pathlib.Path client &doctreeclient.DocTreeClient - flat bool // if flat then won't use sitenames as subdir's + flat bool // if flat then won't use sitenames as subdir's } @[params] @@ -19,8 +19,6 @@ pub mut: flat bool // if flat then won't use sitenames as subdir's } - - // new creates a new siteconfig and stores it in redis, or gets an existing one pub fn new(args SiteFactoryArgs) !SiteFactory { mut path := args.path @@ -28,26 +26,22 @@ pub fn new(args SiteFactoryArgs) !SiteFactory { path = '${os.home_dir()}/hero/var/sitegen' } mut factory := SiteFactory{ - path: pathlib.get_dir(path: path, create: true)! + path: pathlib.get_dir(path: path, create: true)! client: doctreeclient.new()! - flat:args.flat + flat: args.flat } return factory } - pub fn (mut f SiteFactory) site_get(name string) !&Site { - - - - mut s := f.sites[name] or { - mut mypath:=f.path + mut s := f.sites[name] or { + mut mypath := f.path if !f.flat { - mypath=f.path.dir_get_new(name)! + mypath = f.path.dir_get_new(name)! } - mut mysite:=&Site{ - path: mypath - name: name + mut mysite := &Site{ + path: mypath + name: name client: f.client } mysite diff --git a/lib/web/sitegen/play.v b/lib/web/sitegen/play.v index 5eaf1635..13c1916a 100644 --- a/lib/web/sitegen/play.v +++ b/lib/web/sitegen/play.v @@ -7,107 +7,108 @@ import os @[params] pub struct PlayArgs { pub mut: - heroscript string + heroscript string heroscript_path string - plbook ?PlayBook - dest string - flat bool //if flat then won't use sitenames as subdir's - sitename string + plbook ?PlayBook + dest string + flat bool // if flat then won't use sitenames as subdir's + sitename string } - pub fn play(args_ PlayArgs) ! { - mut args := args_ - mut plbook := args.plbook or { playbook.new(text: args.heroscript,path:args.heroscript_path)! } + mut plbook := args.plbook or { + playbook.new(text: args.heroscript, path: args.heroscript_path)! + } - if args.dest==""{ + if args.dest == '' { args.dest = '${os.home_dir()}/hero/var/sitegen' } - mut doctreename:="main" - if plbook.exists(filter: 'site.doctree'){ - if plbook.exists_once(filter: 'site.doctree'){ - mut action:=plbook.action_get(actor:'site',name:'doctree')! - mut p := action.params - doctreename = p.get('name') or {return error("need to specify name in site.doctree")} - }else{ + mut doctreename := 'main' + if plbook.exists(filter: 'site.doctree') { + if plbook.exists_once(filter: 'site.doctree') { + mut action := plbook.action_get(actor: 'site', name: 'doctree')! + mut p := action.params + doctreename = p.get('name') or { return error('need to specify name in site.doctree') } + } else { return error("can't have more than one site.doctree") } } - // !!site.page name:"atest" path:"crazy/sub" position:1 - // src:"marketplace_specs:tft_tfp_marketplace" + // src:"marketplace_specs:tft_tfp_marketplace" // title:"Just a Page" // description:"A description not filled in" - // draft:1 hide_title:1 + // draft:1 hide_title:1 - mut factory:=new(path:args.dest,flat:args.flat)! + mut factory := new(path: args.dest, flat: args.flat)! - //LETS FIRST DO THE CATEGORIES + // LETS FIRST DO THE CATEGORIES category_actions := plbook.find(filter: 'site.page_category')! mut section := Section{} for action in category_actions { // println(action) - mut p := action.params - sitename := p.get_default('sitename',args.sitename)! + mut p := action.params + sitename := p.get_default('sitename', args.sitename)! section.position = p.get_int_default('position', 20)! - section.label = p.get('label' ) or { return error("need to specify label in site.page_category") } - section.path = p.get('path') or { return error("need to specify path in site.page_category") } + section.label = p.get('label') or { + return error('need to specify label in site.page_category') + } + section.path = p.get('path') or { + return error('need to specify path in site.page_category') + } mut site := factory.site_get(sitename)! site.section_add(section)! - } - + } page_actions := plbook.find(filter: 'site.page')! - mut mypage:=Page{src:"",path:""} - mut position_next:=1 + mut mypage := Page{ + src: '' + path: '' + } + mut position_next := 1 mut position := 0 - mut path:="" + mut path := '' for action in page_actions { // println(action) - mut p := action.params - sitename := p.get_default('sitename',args.sitename)! - pathnew := p.get_default('path', "")! - if pathnew!=""{ + mut p := action.params + sitename := p.get_default('sitename', args.sitename)! + pathnew := p.get_default('path', '')! + if pathnew != '' { mypage.path = path - if pathnew.ends_with(".md"){ - //means we fully specified the name + if pathnew.ends_with('.md') { + // means we fully specified the name mypage.path = pathnew - }else{ - //only remember path if no .md file specified - path = pathnew - if ! path.ends_with("/"){ - path+="/" + } else { + // only remember path if no .md file specified + path = pathnew + if !path.ends_with('/') { + path += '/' } - println(" -- NEW PATH: ${path}") + println(' -- NEW PATH: ${path}') mypage.path = path - } - }else{ + } + } else { mypage.path = path - } + } position = p.get_int_default('position', 0)! - if position==0{ - position = position_next - position_next +=1 - }else{ - if position > position_next{ + if position == 0 { + position = position_next + position_next += 1 + } else { + if position > position_next { position_next = position + 1 } } mypage.position = position - mypage.src = p.get('src') or { return error("need to specify src in site.page") } - mypage.title = p.get_default('title', "")! + mypage.src = p.get('src') or { return error('need to specify src in site.page') } + mypage.title = p.get_default('title', '')! mypage.description = p.get_default('description', '')! mypage.draft = p.get_default_false('draft') mypage.hide_title = p.get_default_false('hide_title') - mypage.title_nr= p.get_int_default('title_nr', 0)! + mypage.title_nr = p.get_int_default('title_nr', 0)! mut site := factory.site_get(sitename)! site.page_add(mypage)! - } - - - - -} \ No newline at end of file + } +} diff --git a/lib/web/sitegen/site.v b/lib/web/sitegen/site.v index ffefb765..47dea236 100644 --- a/lib/web/sitegen/site.v +++ b/lib/web/sitegen/site.v @@ -4,31 +4,31 @@ import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.web.doctreeclient import freeflowuniverse.herolib.data.markdown.tools as markdowntools import freeflowuniverse.herolib.ui.console + pub struct Site { pub mut: - name string - path pathlib.Path + name string + path pathlib.Path client &doctreeclient.DocTreeClient } - @[params] pub struct Page { pub mut: - title string - description string - draft bool - position int - hide_title bool - src string @[required] - path string @[required] - title_nr int + title string + description string + draft bool + position int + hide_title bool + src string @[required] + path string @[required] + title_nr int } pub fn (mut site Site) page_add(args_ Page) ! { - mut args:= args_ + mut args := args_ - mut content:=["---"] + mut content := ['---'] mut parts := args.src.split(':') if parts.len != 2 { @@ -41,89 +41,85 @@ pub fn (mut site Site) page_add(args_ Page) ! { return error("Couldn't find page '${page_name}' in collection '${collection_name}' using doctreeclient. Available pages:\n${site.client.list_markdown()!}\nError: ${err}") } - if args.description.len==0 { - descnew:=markdowntools.extract_title(page_content) - if descnew!=""{ + if args.description.len == 0 { + descnew := markdowntools.extract_title(page_content) + if descnew != '' { args.description = descnew - }else{ + } else { args.description = page_name } } - if args.title.len==0 { - descnew:=markdowntools.extract_title(page_content) - if descnew!=""{ + if args.title.len == 0 { + descnew := markdowntools.extract_title(page_content) + if descnew != '' { args.title = descnew - }else{ + } else { args.title = page_name } - } - content<< "title: '${args.title}'" + } + content << "title: '${args.title}'" - if args.description.len>0 { - content<< "description: '${args.description}'" + if args.description.len > 0 { + content << "description: '${args.description}'" } if args.hide_title { - content<< "hide_title: ${args.hide_title}" + content << 'hide_title: ${args.hide_title}' } - if args.draft{ - content<< "draft: ${args.draft}" + if args.draft { + content << 'draft: ${args.draft}' } - if args.position>0{ - content<< "sidebar_position: ${args.position}" + if args.position > 0 { + content << 'sidebar_position: ${args.position}' } - - content<< "---" - mut c:=content.join("\n") + content << '---' + + mut c := content.join('\n') if args.title_nr > 0 { // Set the title number in the page content page_content = markdowntools.set_titles(page_content, args.title_nr) } - c+="\n${page_content}\n" + c += '\n${page_content}\n' - if args.path.ends_with("/"){ - //means is dir + if args.path.ends_with('/') { + // means is dir args.path += page_name } - if ! args.path.ends_with(".md"){ - args.path += ".md" + if !args.path.ends_with('.md') { + args.path += '.md' } - mut pagepath:= "${site.path.path}/${args.path}" - mut pagefile:= pathlib.get_file(path:pagepath,create:true)! + mut pagepath := '${site.path.path}/${args.path}' + mut pagefile := pathlib.get_file(path: pagepath, create: true)! pagefile.write(c)! - console.print_debug("Copy images in collection '${collection_name}' to ${pagefile.path_dir()}") + console.print_debug("Copy images in collection '${collection_name}' to ${pagefile.path_dir()}") - site.client.copy_images(collection_name, page_name, pagefile.path_dir()) or { + site.client.copy_images(collection_name, page_name, pagefile.path_dir()) or { return error("Couldn't copy images for '${page_name}' in collection '${collection_name}' using doctreeclient. Available pages:\n${site.client.list_markdown()!}\nError: ${err}") } - } - - @[params] pub struct Section { pub mut: position int - path string - label string + path string + label string } - pub fn (mut site Site) section_add(args_ Section) ! { - mut args:= args_ + mut args := args_ - mut c:='{ + mut c := '{ "label": "${args.label}", "position": ${args.position}, "link": { @@ -131,10 +127,8 @@ pub fn (mut site Site) section_add(args_ Section) ! { } }' - mut category_path:= "${site.path.path}/${args.path}/_category_.json" - mut catfile:= pathlib.get_file(path:category_path,create:true)! + mut category_path := '${site.path.path}/${args.path}/_category_.json' + mut catfile := pathlib.get_file(path: category_path, create: true)! catfile.write(c)! - } - diff --git a/lib/web/sitegen/site_test.v b/lib/web/sitegen/site_test.v index 2543c32f..9545570e 100644 --- a/lib/web/sitegen/site_test.v +++ b/lib/web/sitegen/site_test.v @@ -7,88 +7,97 @@ import freeflowuniverse.herolib.data.doctree fn test_page_add() ! { // Setup a dummy doctree.Tree and pathlib.Path // Setup a temporary directory for site output - mut site_output_dir := pathlib.get_dir(path: os.join_path(os.temp_dir(), 'sitegen_test_output'), create: true)! + mut site_output_dir := pathlib.get_dir( + path: os.join_path(os.temp_dir(), 'sitegen_test_output') + create: true + )! site_output_dir.delete()! // Clean up previous test runs // Setup a temporary directory for doctree source content - mut doctree_source_dir := pathlib.get_dir(path: os.join_path(os.temp_dir(), 'doctree_test_source'), create: true)! + mut doctree_source_dir := pathlib.get_dir( + path: os.join_path(os.temp_dir(), 'doctree_test_source') + create: true + )! doctree_source_dir.delete()! // Clean up previous test runs // Create a collection directory and a .collection file - mut collection_dir_path := os.join_path(doctree_source_dir.path, "my_collection") + mut collection_dir_path := os.join_path(doctree_source_dir.path, 'my_collection') os.mkdir_all(collection_dir_path)! - os.write_file(os.join_path(collection_dir_path, ".collection"), "")! + os.write_file(os.join_path(collection_dir_path, '.collection'), '')! // Write a dummy markdown file to the collection directory - mut dummy_md_file_path := os.join_path(collection_dir_path, "dummy_page.md") - os.write_file(dummy_md_file_path, "# My Dummy Page\n\nThis is some content for the dummy page.")! + mut dummy_md_file_path := os.join_path(collection_dir_path, 'dummy_page.md') + os.write_file(dummy_md_file_path, '# My Dummy Page\n\nThis is some content for the dummy page.')! // Initialize doctree.Tree and scan the source directory - mut tree := doctree.new(name: "test_tree")! + mut tree := doctree.new(name: 'test_tree')! tree.scan(path: doctree_source_dir.path)! - + // Debug prints - println("Tree collections after scan: ${tree.collections.keys()}") - if "my_collection" in tree.collections { - println("my_collection exists in tree.collections") - println("Pages in my_collection: ${tree.collections["my_collection"].pages.keys()}") + println('Tree collections after scan: ${tree.collections.keys()}') + if 'my_collection' in tree.collections { + println('my_collection exists in tree.collections') + println('Pages in my_collection: ${tree.collections['my_collection'].pages.keys()}') } else { - println("my_collection DOES NOT exist in tree.collections") + println('my_collection DOES NOT exist in tree.collections') } // The dummy page path in doctree will be collection_name:page_name - mut dummy_page_doctree_path := "my_collection:dummy_page" - println("Dummy page doctree path: ${dummy_page_doctree_path}") + mut dummy_page_doctree_path := 'my_collection:dummy_page' + println('Dummy page doctree path: ${dummy_page_doctree_path}') mut site := Site{ - name: "TestSite" + name: 'TestSite' path: site_output_dir tree: tree // Pass the pointer directly } // Test Case 1: Basic page addition mut page1 := Page{ - title: "Test Page 1" - description: "A simple test page." - src: dummy_page_doctree_path - path: "pages/test_page_1.md" + title: 'Test Page 1' + description: 'A simple test page.' + src: dummy_page_doctree_path + path: 'pages/test_page_1.md' } site.page_add(page1)! mut expected_content_page1 := "---\ntitle: 'Test Page 1'\ndescription: 'A simple test page.'\n---\n# My Dummy Page\n\nThis is some content for the dummy page.\n" - mut output_file_page1 := pathlib.get_file(path: os.join_path(site_output_dir.path, "pages/test_page_1.md"))! + mut output_file_page1 := pathlib.get_file(path: os.join_path(site_output_dir.path, + 'pages/test_page_1.md'))! assert output_file_page1.exists() assert output_file_page1.read()! == expected_content_page1 // Test Case 2: Page with draft, no description, hide_title, and position mut page2 := Page{ - title: "Test Page 2" - draft: true - position: 5 + title: 'Test Page 2' + draft: true + position: 5 hide_title: true - src: dummy_page_doctree_path - path: "articles/test_page_2.md" + src: dummy_page_doctree_path + path: 'articles/test_page_2.md' } site.page_add(page2)! mut expected_content_page2 := "---\ntitle: 'Test Page 2'\nhide_title: true\ndraft: true\nsidebar_position: 5\n---\n# My Dummy Page\n\nThis is some content for the dummy page.\n" - mut output_file_page2 := pathlib.get_file(path: os.join_path(site_output_dir.path, "articles/test_page_2.md"))! + mut output_file_page2 := pathlib.get_file(path: os.join_path(site_output_dir.path, + 'articles/test_page_2.md'))! assert output_file_page2.exists() assert output_file_page2.read()! == expected_content_page2 // Test Case 3: Page with no title (should use filename) mut page3 := Page{ - src: dummy_page_doctree_path - path: "blog/my_blog_post.md" + src: dummy_page_doctree_path + path: 'blog/my_blog_post.md' } site.page_add(page3)! mut expected_content_page3 := "---\ntitle: 'my_blog_post.md'\n---\n# My Dummy Page\n\nThis is some content for the dummy page.\n" - mut output_file_page3 := pathlib.get_file(path: os.join_path(site_output_dir.path, "blog/my_blog_post.md"))! + mut output_file_page3 := pathlib.get_file(path: os.join_path(site_output_dir.path, + 'blog/my_blog_post.md'))! assert output_file_page3.exists() assert output_file_page3.read()! == expected_content_page3 // Clean up site_output_dir.delete()! doctree_source_dir.delete()! -} \ No newline at end of file +} diff --git a/lib/web/starlight/site.v b/lib/web/starlight/site.v index 38c98885..ef84721c 100644 --- a/lib/web/starlight/site.v +++ b/lib/web/starlight/site.v @@ -1,6 +1,6 @@ module starlight -import freeflowuniverse.herolib.osal.core as osal.screen +import freeflowuniverse.herolib.osal.core.screen import os import freeflowuniverse.herolib.core.pathlib import freeflowuniverse.herolib.osal.core as osal diff --git a/lib/web/starlight/watcher.v b/lib/web/starlight/watcher.v index b104885c..a73bd4c4 100644 --- a/lib/web/starlight/watcher.v +++ b/lib/web/starlight/watcher.v @@ -1,6 +1,6 @@ module starlight -import freeflowuniverse.herolib.osal.core as osal.notifier +import freeflowuniverse.herolib.osal.core.notifier import os fn watch_docs(docs_path string, path_src string, path_build string) ! {