aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/examples/templates
diff options
context:
space:
mode:
authorIndrajith K L2022-12-03 17:00:20 +0530
committerIndrajith K L2022-12-03 17:00:20 +0530
commitf5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch)
tree2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/examples/templates
downloadcli-tools-windows-master.tar.gz
cli-tools-windows-master.tar.bz2
cli-tools-windows-master.zip
Adds most of the toolsHEADmaster
Diffstat (limited to 'v_windows/v/examples/templates')
-rw-r--r--v_windows/v/examples/templates/data.json197
-rw-r--r--v_windows/v/examples/templates/readme.md14
-rw-r--r--v_windows/v/examples/templates/template.md16
-rw-r--r--v_windows/v/examples/templates/templates.v196
4 files changed, 423 insertions, 0 deletions
diff --git a/v_windows/v/examples/templates/data.json b/v_windows/v/examples/templates/data.json
new file mode 100644
index 0000000..a6765cf
--- /dev/null
+++ b/v_windows/v/examples/templates/data.json
@@ -0,0 +1,197 @@
+[
+ {
+ "name": "www_threefold_io",
+ "url": "https://github.com/threefoldfoundation/www_threefold_io",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "tf",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_io",
+ "domains": [
+ "www.threefold.io",
+ "www.threefold.me"
+ ],
+ "descr": "is our entry point for everyone, redirect to the detailed websites underneith."
+ },
+ {
+ "name": "www_threefold_cloud",
+ "url": "https://github.com/threefoldfoundation/www_threefold_cloud",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "cloud",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_cloud",
+ "domains": [
+ "cloud.threefold.io",
+ "cloud.threefold.me"
+ ],
+ "descr": "for people looking to deploy solutions on top of a cloud, alternative to e.g. digital ocean"
+ },
+ {
+ "name": "www_threefold_farming",
+ "url": "https://github.com/threefoldfoundation/www_threefold_farming",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "farming",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_farming",
+ "domains": [
+ "farming.threefold.io",
+ "farming.threefold.me"
+ ],
+ "descr": "crypto & minining enthusiasts, be the internet, know about farming & tokens."
+ },
+ {
+ "name": "www_threefold_twin",
+ "url": "https://github.com/threefoldfoundation/www_threefold_twin",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "twin",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_twin",
+ "domains": [
+ "twin.threefold.io",
+ "twin.threefold.me"
+ ],
+ "descr": "you digital life"
+ },
+ {
+ "name": "www_threefold_marketplace",
+ "url": "https://github.com/threefoldfoundation/www_threefold_marketplace",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "marketplace",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_marketplace",
+ "domains": [
+ "now.threefold.io",
+ "marketplace.threefold.io",
+ "now.threefold.me",
+ "marketplace.threefold.me"
+ ],
+ "descr": "apps for community builders, runs on top of evdc"
+ },
+ {
+ "name": "www_conscious_internet",
+ "url": "https://github.com/threefoldfoundation/www_conscious_internet",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "conscious_internet",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_conscious_internet",
+ "domains": [
+ "www.consciousinternet.org",
+ "eco.threefold.io",
+ "community.threefold.io",
+ "eco.threefold.me",
+ "community.threefold.me"
+ ],
+ "descr": "community around threefold, partners, friends, ..."
+ },
+ {
+ "name": "www_threefold_tech",
+ "url": "https://github.com/threefoldtech/www_threefold_tech",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "tech",
+ "path_code": "/Users/despiegk/codewww/github/threefoldtech/www_threefold_tech",
+ "domains": [
+ "www.threefold.tech"
+ ],
+ "descr": "cyberpandemic, use the tech to build your own solutions with, certification for TFGrid"
+ },
+ {
+ "name": "www_examplesite",
+ "url": "https://github.com/threefoldfoundation/www_examplesite",
+ "branch": "default",
+ "pull": false,
+ "cat": 2,
+ "alias": "example",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_examplesite",
+ "domains": [
+ "example.threefold.io"
+ ],
+ "descr": ""
+ },
+ {
+ "name": "info_threefold",
+ "url": "https://github.com/threefoldfoundation/info_foundation_archive",
+ "branch": "default",
+ "pull": false,
+ "cat": 0,
+ "alias": "threefold",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_foundation_archive",
+ "domains": [
+ "info.threefold.io"
+ ],
+ "descr": "wiki for foundation, collaborate, what if farmings, tokens"
+ },
+ {
+ "name": "info_sdk",
+ "url": "https://github.com/threefoldfoundation/info_sdk",
+ "branch": "default",
+ "pull": false,
+ "cat": 0,
+ "alias": "sdk",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_sdk",
+ "domains": [
+ "sdk.threefold.io",
+ "sdk_info.threefold.io"
+ ],
+ "descr": "for IAC, devops, how to do Infrastruture As Code, 3bot, Ansible, tfgrid-sdk, ..."
+ },
+ {
+ "name": "info_legal",
+ "url": "https://github.com/threefoldfoundation/info_legal",
+ "branch": "default",
+ "pull": false,
+ "cat": 0,
+ "alias": "legal",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_legal",
+ "domains": [
+ "legal.threefold.io",
+ "legal_info.threefold.io"
+ ],
+ "descr": ""
+ },
+ {
+ "name": "info_cloud",
+ "url": "https://github.com/threefoldfoundation/info_cloud",
+ "branch": "default",
+ "pull": false,
+ "cat": 0,
+ "alias": "cloud",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_cloud",
+ "domains": [
+ "cloud_info.threefold.io"
+ ],
+ "descr": "how to use the cloud for deploying apps: evdc, kubernetes, planetary fs, ... + marketplace solutions "
+ },
+ {
+ "name": "info_tftech",
+ "url": "https://github.com/threefoldtech/info_tftech",
+ "branch": "default",
+ "pull": false,
+ "cat": 0,
+ "alias": "tftech",
+ "path_code": "/Users/despiegk/codewww/github/threefoldtech/info_tftech",
+ "domains": [
+ "info.threefold.tech"
+ ],
+ "descr": ""
+ },
+ {
+ "name": "info_digitaltwin",
+ "url": "https://github.com/threefoldfoundation/info_digitaltwin.git",
+ "branch": "default",
+ "pull": false,
+ "cat": 0,
+ "alias": "twin",
+ "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_digitaltwin",
+ "domains": [
+ "twin_info.threefold.io"
+ ],
+ "descr": ""
+ }
+] \ No newline at end of file
diff --git a/v_windows/v/examples/templates/readme.md b/v_windows/v/examples/templates/readme.md
new file mode 100644
index 0000000..3129068
--- /dev/null
+++ b/v_windows/v/examples/templates/readme.md
@@ -0,0 +1,14 @@
+# example how to work with templates
+
+- templates support
+ - if
+ - for loops
+ - even nesting of for loops
+ - syntax checking
+ - embed the template into the binary
+
+Its a very cool way how to do also do e.g. system administration, fill in
+config files, etc...
+
+The example there is also a good demonstration of how to use json on a more
+complex object and read/write to file.
diff --git a/v_windows/v/examples/templates/template.md b/v_windows/v/examples/templates/template.md
new file mode 100644
index 0000000..7bbdc0d
--- /dev/null
+++ b/v_windows/v/examples/templates/template.md
@@ -0,0 +1,16 @@
+# WIKIs
+
+@for site in sites
+@if site.cat == .wiki
+
+## @{site.domains[0]}@port_str
+
+- [errors]("//@{site.domains[0]}@port_str/errors")
+
+### domains
+
+@for dom in site.domains
+- @dom
+@end
+@end
+@end
diff --git a/v_windows/v/examples/templates/templates.v b/v_windows/v/examples/templates/templates.v
new file mode 100644
index 0000000..65ec459
--- /dev/null
+++ b/v_windows/v/examples/templates/templates.v
@@ -0,0 +1,196 @@
+module main
+
+import os
+import json
+
+pub struct SiteConfig {
+pub mut:
+ name string
+ url string
+ branch string = 'default' // means is the default branch
+ pull bool
+ cat SiteCat
+ alias string
+ path_code string
+ domains []string
+ descr string
+}
+
+pub enum SiteCat {
+ wiki
+ data
+ web
+}
+
+fn data_get() []SiteConfig {
+ data := [SiteConfig{
+ name: 'www_threefold_io'
+ url: 'https://github.com/threefoldfoundation/www_threefold_io'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'tf'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_io'
+ domains: ['www.threefold.io', 'www.threefold.me']
+ descr: 'is our entry point for everyone, redirect to the detailed websites underneith.'
+ }, SiteConfig{
+ name: 'www_threefold_cloud'
+ url: 'https://github.com/threefoldfoundation/www_threefold_cloud'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'cloud'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_cloud'
+ domains: ['cloud.threefold.io', 'cloud.threefold.me']
+ descr: 'for people looking to deploy solutions on top of a cloud, alternative to e.g. digital ocean'
+ }, SiteConfig{
+ name: 'www_threefold_farming'
+ url: 'https://github.com/threefoldfoundation/www_threefold_farming'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'farming'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_farming'
+ domains: ['farming.threefold.io', 'farming.threefold.me']
+ descr: 'crypto & minining enthusiasts, be the internet, know about farming & tokens.'
+ }, SiteConfig{
+ name: 'www_threefold_twin'
+ url: 'https://github.com/threefoldfoundation/www_threefold_twin'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'twin'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_twin'
+ domains: ['twin.threefold.io', 'twin.threefold.me']
+ descr: 'you digital life'
+ }, SiteConfig{
+ name: 'www_threefold_marketplace'
+ url: 'https://github.com/threefoldfoundation/www_threefold_marketplace'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'marketplace'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_marketplace'
+ domains: ['now.threefold.io', 'marketplace.threefold.io', 'now.threefold.me',
+ 'marketplace.threefold.me',
+ ]
+ descr: 'apps for community builders, runs on top of evdc'
+ }, SiteConfig{
+ name: 'www_conscious_internet'
+ url: 'https://github.com/threefoldfoundation/www_conscious_internet'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'conscious_internet'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_conscious_internet'
+ domains: ['www.consciousinternet.org', 'eco.threefold.io', 'community.threefold.io',
+ 'eco.threefold.me', 'community.threefold.me']
+ descr: 'community around threefold, partners, friends, ...'
+ }, SiteConfig{
+ name: 'www_threefold_tech'
+ url: 'https://github.com/threefoldtech/www_threefold_tech'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'tech'
+ path_code: '/Users/despiegk/codewww/github/threefoldtech/www_threefold_tech'
+ domains: ['www.threefold.tech']
+ descr: 'cyberpandemic, use the tech to build your own solutions with, certification for TFGrid'
+ }, SiteConfig{
+ name: 'www_examplesite'
+ url: 'https://github.com/threefoldfoundation/www_examplesite'
+ branch: 'default'
+ pull: false
+ cat: .web
+ alias: 'example'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_examplesite'
+ domains: ['example.threefold.io']
+ descr: ''
+ }, SiteConfig{
+ name: 'info_threefold'
+ url: 'https://github.com/threefoldfoundation/info_foundation_archive'
+ branch: 'default'
+ pull: false
+ cat: .wiki
+ alias: 'threefold'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_foundation_archive'
+ domains: ['info.threefold.io']
+ descr: 'wiki for foundation, collaborate, what if farmings, tokens'
+ }, SiteConfig{
+ name: 'info_sdk'
+ url: 'https://github.com/threefoldfoundation/info_sdk'
+ branch: 'default'
+ pull: false
+ cat: .wiki
+ alias: 'sdk'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_sdk'
+ domains: ['sdk.threefold.io', 'sdk_info.threefold.io']
+ descr: 'for IAC, devops, how to do Infrastruture As Code, 3bot, Ansible, tfgrid-sdk, ...'
+ }, SiteConfig{
+ name: 'info_legal'
+ url: 'https://github.com/threefoldfoundation/info_legal'
+ branch: 'default'
+ pull: false
+ cat: .wiki
+ alias: 'legal'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_legal'
+ domains: ['legal.threefold.io', 'legal_info.threefold.io']
+ descr: ''
+ }, SiteConfig{
+ name: 'info_cloud'
+ url: 'https://github.com/threefoldfoundation/info_cloud'
+ branch: 'default'
+ pull: false
+ cat: .wiki
+ alias: 'cloud'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_cloud'
+ domains: ['cloud_info.threefold.io']
+ descr: 'how to use the cloud for deploying apps: evdc, kubernetes, planetary fs, ... + marketplace solutions '
+ }, SiteConfig{
+ name: 'info_tftech'
+ url: 'https://github.com/threefoldtech/info_tftech'
+ branch: 'default'
+ pull: false
+ cat: .wiki
+ alias: 'tftech'
+ path_code: '/Users/despiegk/codewww/github/threefoldtech/info_tftech'
+ domains: ['info.threefold.tech']
+ descr: ''
+ }, SiteConfig{
+ name: 'info_digitaltwin'
+ url: 'https://github.com/threefoldfoundation/info_digitaltwin.git'
+ branch: 'default'
+ pull: false
+ cat: .wiki
+ alias: 'twin'
+ path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_digitaltwin'
+ domains: ['twin_info.threefold.io']
+ descr: ''
+ }]
+ return data
+}
+
+fn data_dump(data []SiteConfig) {
+ a := json.encode_pretty(data)
+ os.write_file(os.resource_abs_path('data.json'), a) or { panic(err) }
+}
+
+fn data_load() []SiteConfig {
+ data := os.read_file(os.resource_abs_path('data.json')) or { panic(err) }
+ a := json.decode([]SiteConfig, data) or { panic(err) }
+ return a
+}
+
+fn filled_in_template() string {
+ port_str := '80'
+ sites := data_load()
+ return $tmpl('template.md')
+}
+
+fn main() {
+ // A NICE test how to work with the json module
+ // data := data_get()
+ // data_dump(data)
+ b := filled_in_template()
+ println(b)
+}