Compare commits

...

2 Commits

Author SHA1 Message Date
Mahmoud-Emad
d7e4e8ec56 refactor: Change timestamp types to i64
- Update `created_at` type from u32 to i64
- Update `updated_at` type from u32 to i64
2025-12-02 15:40:16 +02:00
46e0e56e61 ... 2025-12-02 10:17:45 +01:00
32 changed files with 65 additions and 65 deletions

View File

@@ -90,7 +90,7 @@ fn do() ! {
herocmds.cmd_docusaurus(mut cmd)
herocmds.cmd_web(mut cmd)
herocmds.cmd_sshagent(mut cmd)
herocmds.cmd_doctree(mut cmd)
herocmds.cmd_atlas(mut cmd)
cmd.setup()
cmd.parse(os.args)

View File

@@ -1,19 +1,19 @@
module herocmds
import incubaid.herolib.ui.console
import incubaid.herolib.data.doctree
import incubaid.herolib.data.atlas
import incubaid.herolib.core.playcmds
import incubaid.herolib.develop.gittools
import incubaid.herolib.web.docusaurus
import os
import cli { Command, Flag }
pub fn cmd_doctree(mut cmdroot Command) Command {
pub fn cmd_atlas(mut cmdroot Command) Command {
mut cmd_run := Command{
name: 'doctree'
description: 'Scan and export doctree collections.'
name: 'atlas'
description: 'Scan and export atlas collections.'
required_args: 0
execute: cmd_doctree_execute
execute: cmd_atlas_execute
}
cmd_run.add_flag(Flag{
@@ -29,7 +29,7 @@ pub fn cmd_doctree(mut cmdroot Command) Command {
required: false
name: 'url'
abbrev: 'u'
description: 'Git URL where doctree source is.'
description: 'Git URL where atlas source is.'
})
cmd_run.add_flag(Flag{
@@ -37,7 +37,7 @@ pub fn cmd_doctree(mut cmdroot Command) Command {
required: false
name: 'path'
abbrev: 'p'
description: 'Path where doctree collections are located.'
description: 'Path where atlas collections are located.'
})
cmd_run.add_flag(Flag{
@@ -45,7 +45,7 @@ pub fn cmd_doctree(mut cmdroot Command) Command {
required: false
name: 'name'
abbrev: 'n'
description: 'DocTree instance name (default: "default").'
description: 'Atlas instance name (default: "default").'
})
cmd_run.add_flag(Flag{
@@ -112,7 +112,7 @@ pub fn cmd_doctree(mut cmdroot Command) Command {
return cmdroot
}
fn cmd_doctree_execute(cmd Command) ! {
fn cmd_atlas_execute(cmd Command) ! {
// ---------- FLAGS ----------
mut reset := cmd.flags.get_bool('reset') or { false }
mut update := cmd.flags.get_bool('update') or { false }
@@ -138,27 +138,27 @@ fn cmd_doctree_execute(cmd Command) ! {
path = os.getwd()
}
doctree_path := gittools.path(
atlas_path := gittools.path(
git_url: url
path: path
git_reset: reset
git_pull: update
)!
console.print_header('Running DocTree for: ${doctree_path.path}')
console.print_header('Running Atlas for: ${atlas_path.path}')
// Run HeroScript if exists
playcmds.run(
heroscript_path: doctree_path.path
heroscript_path: atlas_path.path
reset: reset
emptycheck: false
)!
// Create or get doctree instance
mut a := if doctree.exists(name) {
doctree.get(name)!
// Create or get atlas instance
mut a := if atlas.exists(name) {
atlas.get(name)!
} else {
doctree.new(name: name)!
atlas.new(name: name)!
}
// Default behavior: scan and export if no flags specified
@@ -170,13 +170,13 @@ fn cmd_doctree_execute(cmd Command) ! {
// Execute operations
if scan {
console.print_header('Scanning collections...')
a.scan(path: doctree_path.path)!
a.scan(path: atlas_path.path)!
console.print_green(' Scan complete: ${a.collections.len} collection(s) found')
}
if export {
if destination == '' {
destination = '${doctree_path.path}/output'
destination = '${atlas_path.path}/output'
}
console.print_header('Exporting collections to: ${destination}')
@@ -203,14 +203,14 @@ fn cmd_doctree_execute(cmd Command) ! {
// Run dev server if -dev flag is set
if dev {
console.print_header('Starting development server...')
console.print_item('DocTree export directory: ${destination}')
console.print_item('Looking for docusaurus configuration in: ${doctree_path.path}')
console.print_item('Atlas export directory: ${destination}')
console.print_item('Looking for docusaurus configuration in: ${atlas_path.path}')
// Run the docusaurus dev server using the exported doctree content
// This will look for a .heroscript file in the doctree_path that configures docusaurus
// with use_doctree:true and doctree_export_dir pointing to the destination
// Run the docusaurus dev server using the exported atlas content
// This will look for a .heroscript file in the atlas_path that configures docusaurus
// with use_atlas:true and atlas_export_dir pointing to the destination
playcmds.run(
heroscript_path: doctree_path.path
heroscript_path: atlas_path.path
reset: reset
)!

View File

@@ -114,7 +114,7 @@ fn cmd_docusaurus_execute(cmd Command) ! {
// ---------- FLAGS ----------
mut open_ := cmd.flags.get_bool('open') or { false }
mut buildpublish := cmd.flags.get_bool('buildpublish') or { false }
_ := cmd.flags.get_bool('builddevpublish') or { false }
mut builddevpublish := cmd.flags.get_bool('builddevpublish') or { false }
mut dev := cmd.flags.get_bool('dev') or { false }
mut reset := cmd.flags.get_bool('reset') or { false }
mut update := cmd.flags.get_bool('update') or { false }

View File

@@ -1,9 +1,9 @@
module playcmds
import incubaid.herolib.core.playbook { PlayBook }
import incubaid.herolib.data.doctree
import incubaid.herolib.data.atlas
import incubaid.herolib.biz.bizmodel
import incubaid.herolib.threefold.incatokens
import incubaid.herolib.mycelium.incatokens
import incubaid.herolib.web.site
import incubaid.herolib.virt.hetznermanager
import incubaid.herolib.virt.heropods
@@ -71,7 +71,7 @@ pub fn run(args_ PlayArgs) ! {
site.play(mut plbook)!
incatokens.play(mut plbook)!
doctree.play(mut plbook)!
atlas.play(mut plbook)!
docusaurus.play(mut plbook)!
hetznermanager.play(mut plbook)!
hetznermanager.play2(mut plbook)!

View File

@@ -2,8 +2,8 @@ module playmacros
import incubaid.herolib.ui.console
import incubaid.herolib.core.playbook { Action, PlayBook }
import incubaid.herolib.threefold.grid4.gridsimulator
import incubaid.herolib.threefold.grid4.farmingsimulator
import incubaid.herolib.mycelium.grid4.gridsimulator
import incubaid.herolib.mycelium.grid4.farmingsimulator
import incubaid.herolib.biz.bizmodel
import incubaid.herolib.biz.spreadsheet

View File

@@ -5,8 +5,8 @@ pub mut:
id u32
name string
description string
created_at u32
updated_at u32
created_at i64
updated_at i64
securitypolicy u32
tags u32 // when we set/get we always do as []string but this can then be sorted and md5ed this gies the unique id of tags
messages []u32

View File

@@ -1,8 +1,8 @@
module deploy
import incubaid.herolib.threefold.grid3.models as grid_models
import incubaid.herolib.mycelium.grid3.models as grid_models
import incubaid.herolib.data.paramsparser
import incubaid.herolib.threefold.grid
import incubaid.herolib.mycelium.grid
import incubaid.herolib.data.encoder
import incubaid.herolib.ui.console
import rand

View File

@@ -1,7 +1,7 @@
module deployer
import incubaid.herolib.threefold.grid3.gridproxy
import incubaid.herolib.threefold.grid3.gridproxy.model as proxy_models
import incubaid.herolib.mycelium.grid3.gridproxy
import incubaid.herolib.mycelium.grid3.gridproxy.model as proxy_models
@[params]
pub struct ContractGetArgs {

View File

@@ -4,8 +4,8 @@ import os
import json
import time
import log
import incubaid.herolib.threefold.grid3.models
import incubaid.herolib.threefold.grid3.griddriver
import incubaid.herolib.mycelium.grid3.models
import incubaid.herolib.mycelium.grid3.griddriver
import incubaid.herolib.ui.console
@[heap]

View File

@@ -1,6 +1,6 @@
module deployer
import incubaid.herolib.threefold.grid3.models as grid_models
import incubaid.herolib.mycelium.grid3.models as grid_models
import incubaid.herolib.ui.console
import compress.zlib
import encoding.hex

View File

@@ -1,7 +1,7 @@
// This file should only contains any functions, helpers that related to the deployment setup.
module deployer
import incubaid.herolib.threefold.grid3.models as grid_models
import incubaid.herolib.mycelium.grid3.models as grid_models
import incubaid.herolib.ui.console
import rand

View File

@@ -1,7 +1,7 @@
module deployer
import incubaid.herolib.threefold.grid3.gridproxy
import incubaid.herolib.threefold.grid3.gridproxy.model as gridproxy_models
import incubaid.herolib.mycelium.grid3.gridproxy
import incubaid.herolib.mycelium.grid3.gridproxy.model as gridproxy_models
// TODO: put all code in relation to filtering in file filter.v
@[params]

View File

@@ -1,6 +1,6 @@
module deployer
import incubaid.herolib.threefold.grid3.models as grid_models
import incubaid.herolib.mycelium.grid3.models as grid_models
import incubaid.herolib.ui.console
import json
import rand

View File

@@ -1,7 +1,7 @@
module deployer
import json
import incubaid.herolib.threefold.grid3.models
import incubaid.herolib.mycelium.grid3.models
// TODO: decode/encode the params/result here
pub fn (mut d Deployer) rmb_deployment_changes(dst u32, contract_id u64) !string {

View File

@@ -1,8 +1,8 @@
module deployer
import incubaid.herolib.threefold.grid3.gridproxy
import incubaid.herolib.threefold.grid3.models as grid_models
import incubaid.herolib.threefold.grid3.gridproxy.model as gridproxy_models
import incubaid.herolib.mycelium.grid3.gridproxy
import incubaid.herolib.mycelium.grid3.models as grid_models
import incubaid.herolib.mycelium.grid3.gridproxy.model as gridproxy_models
import rand
import incubaid.herolib.ui.console

View File

@@ -1,6 +1,6 @@
module deployer
import incubaid.herolib.threefold.grid3.models as grid_models
import incubaid.herolib.mycelium.grid3.models as grid_models
// import incubaid.herolib.ui.console
import json

View File

@@ -4,7 +4,7 @@ import net.http
import json
import x.json2
import log
import incubaid.herolib.threefold.grid3.models
import incubaid.herolib.mycelium.grid3.models
pub struct GraphQl {
url string

View File

@@ -3,7 +3,7 @@ module deployer2
import json
import log
import incubaid.herolib.builder
import incubaid.herolib.threefold.grid3.models
import incubaid.herolib.mycelium.grid3.models
struct VMSpecs {
deployment_name string

View File

@@ -1,7 +1,7 @@
module griddriver
import os
import incubaid.herolib.threefold.grid3.models
import incubaid.herolib.mycelium.grid3.models
pub fn (mut c Client) sign_deployment(hash string) !string {
res := os.execute("griddriver sign --substrate \"${c.substrate}\" --mnemonics \"${c.mnemonic}\" --hash \"${hash}\"")

View File

@@ -5,7 +5,7 @@ Easily access Threefold grid APIs from vlang. gridproxy is v module include the
### import the client
```v
import incubaid.herolib.threefold.grid3.gridproxy
import incubaid.herolib.mycelium.grid3.gridproxy
// create a client for the testnet, with API cache disabled
// you can pass true as second arg to enable cache

View File

@@ -3,7 +3,7 @@ module gridproxy
// client library for threefold gridproxy API.
import json
import math
import incubaid.herolib.threefold.grid3.gridproxy.model { Bill, Contract, ContractFilter, ContractIterator, Farm, FarmFilter, FarmIterator, GridStat, Node, NodeFilter, NodeIterator, NodeStats, Node_, StatFilter, Twin, TwinFilter, TwinIterator }
import incubaid.herolib.mycelium.grid3.gridproxy.model { Bill, Contract, ContractFilter, ContractIterator, Farm, FarmFilter, FarmIterator, GridStat, Node, NodeFilter, NodeIterator, NodeStats, Node_, StatFilter, Twin, TwinFilter, TwinIterator }
import incubaid.herolib.ui.console
/*

View File

@@ -1,7 +1,7 @@
module gridproxy
import incubaid.herolib.core.httpconnection
import incubaid.herolib.threefold.grid3.gridproxy.model
import incubaid.herolib.mycelium.grid3.gridproxy.model
// import incubaid.herolib.installers.threefold.griddriver
@[heap]

View File

@@ -1,6 +1,6 @@
module gridproxy
import incubaid.herolib.threefold.grid3.gridproxy.model { Contract, ContractFilter, Farm, FarmFilter, Node, NodeFilter, ResourceFilter, Twin }
import incubaid.herolib.mycelium.grid3.gridproxy.model { Contract, ContractFilter, Farm, FarmFilter, Node, NodeFilter, ResourceFilter, Twin }
// fetch specific twin information by twin id.
//

View File

@@ -1,6 +1,6 @@
module gridproxy
import incubaid.herolib.threefold.grid3.gridproxy.model
import incubaid.herolib.mycelium.grid3.gridproxy.model
import time
const cache = false

View File

@@ -2,7 +2,7 @@ module datamodelsimulator
import json
import incubaid.herolib.core.pathlib
import incubaid.herolib.threefold.grid4.datamodel { Node }
import incubaid.herolib.mycelium.grid4.datamodel { Node }
// load the cloudboxes from a path
pub fn load(path string) ![]Node {

View File

@@ -1,6 +1,6 @@
module datamodelsimulator
import incubaid.herolib.threefold.grid4.datamodel { NodeCapacity }
import incubaid.herolib.mycelium.grid4.datamodel { NodeCapacity }
import time
// NodeTotalSim represents the aggregated data for a node simulation, including hardware specs, pricing, and location.

View File

@@ -1,6 +1,6 @@
module datamodel
import incubaid.herolib.threefold.grid4.datamodel { Node }
import incubaid.herolib.mycelium.grid4.datamodel { Node }
pub struct NodeSim {
Node

View File

@@ -1,6 +1,6 @@
module datamodelsimulator
import incubaid.herolib.threefold.grid4.datamodel { Node }
import incubaid.herolib.mycelium.grid4.datamodel { Node }
import incubaid.herolib.core.playbook { PlayBook }
// this play script should never be called from hero directly its called by gridsimulator

View File

@@ -6,7 +6,7 @@ import incubaid.herolib.develop.gittools
import incubaid.herolib.core.texttools
import incubaid.herolib.core.playbook
import incubaid.herolib.ui.console
import incubaid.herolib.threefold.grid4.datamodel
import incubaid.herolib.mycelium.grid4.datamodel
@[heap]
pub struct Simulator {

View File

@@ -2,7 +2,7 @@ module farmingsimulator
import incubaid.herolib.ui.console
import incubaid.herolib.core.playbook { PlayBook }
// import incubaid.herolib.threefold.grid4.farmingsimulator
// import incubaid.herolib.mycelium.grid4.farmingsimulator
pub fn play(mut plbook PlayBook) ! {
// mut sheet_name := ''

View File

@@ -6,7 +6,7 @@ import incubaid.herolib.develop.gittools
import incubaid.herolib.core.texttools
import incubaid.herolib.core.playbook
import incubaid.herolib.ui.console
import incubaid.herolib.threefold.grid4.datamodel
import incubaid.herolib.mycelium.grid4.datamodel
__global (
grid_simulators shared map[string]&Simulator

View File

@@ -1,7 +1,7 @@
module gridsimulator
import incubaid.herolib.core.playbook { PlayBook }
import incubaid.herolib.threefold.grid4.datamodel
import incubaid.herolib.mycelium.grid4.datamodel
pub fn play(mut plbook PlayBook) ! {
// first make sure we find a run action to know the name