Add the templates for npm
All checks were successful
Build and Deploy on Tag / build-crosslang-shell-and-cpkg (push) Successful in 37s
All checks were successful
Build and Deploy on Tag / build-crosslang-shell-and-cpkg (push) Successful in 37s
This commit is contained in:
@@ -59,6 +59,10 @@ jobs:
|
|||||||
crosslang upload-package --token="${{ secrets.CPKG_KEY }}" --host="https://cpkg.tesseslanguage.com/"
|
crosslang upload-package --token="${{ secrets.CPKG_KEY }}" --host="https://cpkg.tesseslanguage.com/"
|
||||||
cd ../webapp
|
cd ../webapp
|
||||||
crosslang upload-package --token="${{ secrets.CPKG_KEY }}" --host="https://cpkg.tesseslanguage.com/"
|
crosslang upload-package --token="${{ secrets.CPKG_KEY }}" --host="https://cpkg.tesseslanguage.com/"
|
||||||
|
cd ../npmweb
|
||||||
|
crosslang upload-package --token="${{ secrets.CPKG_KEY }}" --host="https://cpkg.tesseslanguage.com/"
|
||||||
|
cd ../npmwebapp
|
||||||
|
crosslang upload-package --token="${{ secrets.CPKG_KEY }}" --host="https://cpkg.tesseslanguage.com/"
|
||||||
- name: "Publish artifacts"
|
- name: "Publish artifacts"
|
||||||
uses: akkuman/gitea-release-action@v1
|
uses: akkuman/gitea-release-action@v1
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
## v0.0.2
|
||||||
|
Add the templates for npm
|
||||||
|
|
||||||
## v0.0.1
|
## v0.0.1
|
||||||
Make CPKG more complete
|
Make CPKG more complete
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
FROM git.tesses.org/tesses50/crosslang:latest
|
FROM git.tesses.org/tesses50/crosslang:latest
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ./Tesses.CrossLang.PackageServer/bin/Tesses.CrossLang.PackageServer-1.0.0.0-prod.crvm /app/Tesses.CrossLang.PackageServer-1.0.0.0-prod.crvm
|
COPY ./Tesses.CrossLang.PackageServer/bin/Tesses.CrossLang.PackageServer-1.0.0.0-dev.crvm /app/Tesses.CrossLang.PackageServer-1.0.0.0-dev.crvm
|
||||||
|
|
||||||
EXPOSE 4206
|
EXPOSE 4206
|
||||||
ENTRYPOINT ["crossvm","Tesses.CrossLang.PackageServer-1.0.0.0-prod.crvm","/data"]
|
ENTRYPOINT ["crossvm","Tesses.CrossLang.PackageServer-1.0.0.0-dev.crvm","/data"]
|
||||||
5
Templates/compiletool/.gitignore
vendored
Normal file
5
Templates/compiletool/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Template.CompileTool",
|
"name": "Tesses.CrossLang.Template.CompileTool",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name": "compiletool",
|
"short_name": "compiletool",
|
||||||
|
|||||||
5
Templates/console/.gitignore
vendored
Normal file
5
Templates/console/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Template.Console",
|
"name": "Tesses.CrossLang.Template.Console",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name": "console",
|
"short_name": "console",
|
||||||
|
|||||||
5
Templates/emptyweb/.gitignore
vendored
Normal file
5
Templates/emptyweb/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Template.EmptyWebsite",
|
"name": "Tesses.CrossLang.Template.EmptyWebsite",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name": "emptyweb",
|
"short_name": "emptyweb",
|
||||||
|
|||||||
5
Templates/lib/.gitignore
vendored
Normal file
5
Templates/lib/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Template.Library",
|
"name": "Tesses.CrossLang.Template.Library",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name": "lib",
|
"short_name": "lib",
|
||||||
|
|||||||
8
Templates/npmweb/.crossarchiveignore
Normal file
8
Templates/npmweb/.crossarchiveignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
npm/node_modules
|
||||||
|
npm/package-lock.json
|
||||||
|
npm/dist
|
||||||
|
thumbs.db
|
||||||
8
Templates/npmweb/.gitignore
vendored
Normal file
8
Templates/npmweb/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
npm/node_modules
|
||||||
|
npm/package-lock.json
|
||||||
|
npm/dist
|
||||||
|
thumbs.db
|
||||||
41
Templates/npmweb/cross.json
Normal file
41
Templates/npmweb/cross.json
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https:\/\/crosslang.tesseslanguage.com\/\/schema\/cross-json-schema.json",
|
||||||
|
"info": {
|
||||||
|
"template_ignored_files": [
|
||||||
|
".DS_Store",
|
||||||
|
"bin",
|
||||||
|
"obj",
|
||||||
|
"publish",
|
||||||
|
"npm/node_modules",
|
||||||
|
"npm/package-lock.json",
|
||||||
|
"npm/dist",
|
||||||
|
"thumbs.db"
|
||||||
|
],
|
||||||
|
"short_name_pretty": "NPM WebSite",
|
||||||
|
"maintainer": "Mike Nolan",
|
||||||
|
"type": "template",
|
||||||
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
|
"license": "MIT",
|
||||||
|
"short_name": "npmweb",
|
||||||
|
"description": "A NPM Website Template with BeerCSS and HTMX",
|
||||||
|
"template_info": {
|
||||||
|
"type": "console"
|
||||||
|
},
|
||||||
|
"template_prebuild": [
|
||||||
|
{
|
||||||
|
"workdir": "npm",
|
||||||
|
"commands": [
|
||||||
|
["npm","install"],
|
||||||
|
["npm","run","publish"]
|
||||||
|
],
|
||||||
|
"res": [
|
||||||
|
"npm/dist"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Tesses.CrossLang.Template.NPMWebsite",
|
||||||
|
"version": "1.0.0.0-dev"
|
||||||
|
|
||||||
|
}
|
||||||
12
Templates/npmweb/npm/package.json
Normal file
12
Templates/npmweb/npm/package.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"beercss": "^4.0.21",
|
||||||
|
"htmx.org": "^2.0.10"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"esbuild": "^0.28.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"publish": "esbuild --minify --sourcemap --define:'process.env.NODE_ENV=\"production\"' --bundle --outdir=dist web.mjs --loader:.svg=file --loader:.woff2=file"
|
||||||
|
}
|
||||||
|
}
|
||||||
78
Templates/npmweb/npm/web.css
Normal file
78
Templates/npmweb/npm/web.css
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
:root,
|
||||||
|
body.light {
|
||||||
|
--primary:#855400;
|
||||||
|
--on-primary:#ffffff;
|
||||||
|
--primary-container:#ffddb7;
|
||||||
|
--on-primary-container:#2a1700;
|
||||||
|
--secondary:#705b41;
|
||||||
|
--on-secondary:#ffffff;
|
||||||
|
--secondary-container:#fcdebc;
|
||||||
|
--on-secondary-container:#281805;
|
||||||
|
--tertiary:#53643e;
|
||||||
|
--on-tertiary:#ffffff;
|
||||||
|
--tertiary-container:#d6e9b9;
|
||||||
|
--on-tertiary-container:#121f03;
|
||||||
|
--error:#ba1a1a;
|
||||||
|
--on-error:#ffffff;
|
||||||
|
--error-container:#ffdad6;
|
||||||
|
--on-error-container:#410002;
|
||||||
|
--background:#fffbff;
|
||||||
|
--on-background:#1f1b16;
|
||||||
|
--surface:#fff8f4;
|
||||||
|
--on-surface:#1f1b16;
|
||||||
|
--surface-variant:#f0e0d0;
|
||||||
|
--on-surface-variant:#504539;
|
||||||
|
--outline:#827568;
|
||||||
|
--outline-variant:#d4c4b5;
|
||||||
|
--shadow:#000000;
|
||||||
|
--scrim:#000000;
|
||||||
|
--inverse-surface:#352f2a;
|
||||||
|
--inverse-on-surface:#f9efe7;
|
||||||
|
--inverse-primary:#ffb95c;
|
||||||
|
--surface-dim:#e2d8d1;
|
||||||
|
--surface-bright:#fff8f4;
|
||||||
|
--surface-container-lowest:#ffffff;
|
||||||
|
--surface-container-low:#fcf2ea;
|
||||||
|
--surface-container:#f6ece4;
|
||||||
|
--surface-container-high:#f0e6de;
|
||||||
|
--surface-container-highest:#ebe1d9;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.dark {
|
||||||
|
--primary:#ffb95c;
|
||||||
|
--on-primary:#462a00;
|
||||||
|
--primary-container:#653e00;
|
||||||
|
--on-primary-container:#ffddb7;
|
||||||
|
--secondary:#dfc2a2;
|
||||||
|
--on-secondary:#3f2d17;
|
||||||
|
--secondary-container:#57432b;
|
||||||
|
--on-secondary-container:#fcdebc;
|
||||||
|
--tertiary:#bacd9f;
|
||||||
|
--on-tertiary:#263514;
|
||||||
|
--tertiary-container:#3c4c28;
|
||||||
|
--on-tertiary-container:#d6e9b9;
|
||||||
|
--error:#ffb4ab;
|
||||||
|
--on-error:#690005;
|
||||||
|
--error-container:#93000a;
|
||||||
|
--on-error-container:#ffb4ab;
|
||||||
|
--background:#1f1b16;
|
||||||
|
--on-background:#ebe1d9;
|
||||||
|
--surface:#17130e;
|
||||||
|
--on-surface:#ebe1d9;
|
||||||
|
--surface-variant:#504539;
|
||||||
|
--on-surface-variant:#d4c4b5;
|
||||||
|
--outline:#9c8e80;
|
||||||
|
--outline-variant:#504539;
|
||||||
|
--shadow:#000000;
|
||||||
|
--scrim:#000000;
|
||||||
|
--inverse-surface:#ebe1d9;
|
||||||
|
--inverse-on-surface:#352f2a;
|
||||||
|
--inverse-primary:#855400;
|
||||||
|
--surface-dim:#17130e;
|
||||||
|
--surface-bright:#3e3833;
|
||||||
|
--surface-container-lowest:#110e09;
|
||||||
|
--surface-container-low:#1f1b16;
|
||||||
|
--surface-container:#231f1a;
|
||||||
|
--surface-container-high:#2e2924;
|
||||||
|
--surface-container-highest:#39342f;
|
||||||
|
}
|
||||||
3
Templates/npmweb/npm/web.mjs
Normal file
3
Templates/npmweb/npm/web.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import 'beercss'
|
||||||
|
import 'htmx.org'
|
||||||
|
import './web.css'
|
||||||
78
Templates/npmweb/src/components/shell.tcross
Normal file
78
Templates/npmweb/src/components/shell.tcross
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
func Components.Shell(title,pages,body)
|
||||||
|
{
|
||||||
|
<return>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="/dist/web.css">
|
||||||
|
<title>%PROJECT_NAME% - {title}</title>
|
||||||
|
<script src="/dist/web.js" defer></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<dialog class="left" id="leftpane">
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<img class="circle large" src="/tytd-128.png">
|
||||||
|
<h6 class="max">%PROJECT_NAME%</h6>
|
||||||
|
<button hx-on:click="ui('#leftpane')" class="transparent circle large">
|
||||||
|
<i>close</i>
|
||||||
|
</button>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<div class="space"></div>
|
||||||
|
<ul class="list">
|
||||||
|
<each(var item : pages)>
|
||||||
|
<if(item.active)>
|
||||||
|
<true>
|
||||||
|
<li class="wave round primary" hx-target="body" hx-push-url="true" hx-get={item.link}>
|
||||||
|
<i>{item.icon}</i>
|
||||||
|
<span class="max">{item.text}</span>
|
||||||
|
<b></b>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</true>
|
||||||
|
<false>
|
||||||
|
<li class="wave round" hx-target="body" hx-push-url="true" hx-get={item.route}>
|
||||||
|
<i>{item.icon}</i>
|
||||||
|
<span class="max">{item.text}</span>
|
||||||
|
<b></b>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</false>
|
||||||
|
</if>
|
||||||
|
</each>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</dialog>
|
||||||
|
<header class="fixed primary-container">
|
||||||
|
<nav>
|
||||||
|
<button hx-on:click="ui('#leftpane')" class="circle transparent">
|
||||||
|
<i>menu</i>
|
||||||
|
</button>
|
||||||
|
<button hx-target="body" hx-push-url="true" hx-get="/" class="circle transparent">
|
||||||
|
<i>home</i>
|
||||||
|
</button>
|
||||||
|
<div class="max"></div>
|
||||||
|
<div>
|
||||||
|
<button class="circle transparent">
|
||||||
|
<i>more_vert</i>
|
||||||
|
</button>
|
||||||
|
<menu class="left no-wrap">
|
||||||
|
<li><a href="https://beercss.com/">BeerCSS</a></li>
|
||||||
|
</menu>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="small-padding">
|
||||||
|
<h5>%PROJECT_NAME%</h5>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main class="responsive">
|
||||||
|
<raw(body)>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</return>
|
||||||
|
}
|
||||||
33
Templates/npmweb/src/pages/about.tcross
Normal file
33
Templates/npmweb/src/pages/about.tcross
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
|
||||||
|
func Pages.About(ctx)
|
||||||
|
{
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("About Me",pages,<section>
|
||||||
|
<h1>About Me</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
30
Templates/npmweb/src/pages/counter.tcross
Normal file
30
Templates/npmweb/src/pages/counter.tcross
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
var counter = 0;
|
||||||
|
|
||||||
|
func Pages.Counter(ctx)
|
||||||
|
{
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("Counter",pages,<section>
|
||||||
|
<button hx-get="./counter" hx-target="body" hx-push-url="true">Counter is {++counter}</button>
|
||||||
|
</section>
|
||||||
|
));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
35
Templates/npmweb/src/pages/echo.tcross
Normal file
35
Templates/npmweb/src/pages/echo.tcross
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
func Pages.Echo(ctx)
|
||||||
|
{
|
||||||
|
const text = ctx.QueryParams.TryGetFirst("text");
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("Echo",pages,<section>
|
||||||
|
<if(text != null)>
|
||||||
|
<true>
|
||||||
|
<plink(text)>
|
||||||
|
</true>
|
||||||
|
<false>
|
||||||
|
<p>No text available</p>
|
||||||
|
</false>
|
||||||
|
</if>
|
||||||
|
</section>));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
42
Templates/npmweb/src/pages/index.tcross
Normal file
42
Templates/npmweb/src/pages/index.tcross
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
func Pages.Index(ctx)
|
||||||
|
{
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("Main Page",pages,<section>
|
||||||
|
<form hx-get="./echo" hx-target="body" hx-push-url="true" action="./echo" method="GET">
|
||||||
|
<div class="row">
|
||||||
|
<div class="max">
|
||||||
|
<div class="field label border">
|
||||||
|
<input type="text" name="text">
|
||||||
|
<label>Text to echo</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="min">
|
||||||
|
<button type="submit">
|
||||||
|
Echo
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<p>1 John 4:4: You, dear children, are from God and have overcome them, because the one who is in you is greater than the one who is in the world.</p>
|
||||||
|
</section>));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
40
Templates/npmweb/src/program.tcross
Normal file
40
Templates/npmweb/src/program.tcross
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
class MyWebApp {
|
||||||
|
private fileServer;
|
||||||
|
private mountable;
|
||||||
|
private pages;
|
||||||
|
|
||||||
|
public MyWebApp()
|
||||||
|
{
|
||||||
|
this.fileServer = new FileServer(embeddir("/"), true, false);
|
||||||
|
|
||||||
|
this.mountable = new MountableServer((ctx)=>{
|
||||||
|
const page = this.pages.[ctx.Path];
|
||||||
|
if(TypeIsDefined(page)) return page(ctx);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
this.mountable.Mount("/dist/",this.fileServer);
|
||||||
|
this.pages = {
|
||||||
|
.["/"] = Pages.Index,
|
||||||
|
.["/counter"] = Pages.Counter,
|
||||||
|
.["/about"] = Pages.About,
|
||||||
|
.["/echo"] = Pages.Echo
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public Handle(ctx)
|
||||||
|
{
|
||||||
|
return this.mountable.Handle(ctx);
|
||||||
|
}
|
||||||
|
public Close()
|
||||||
|
{
|
||||||
|
this.mountable = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main(args)
|
||||||
|
{
|
||||||
|
const webApp=new MyWebApp();
|
||||||
|
Net.Http.ListenSimpleWithLoop(webApp,4206);
|
||||||
|
|
||||||
|
webApp.Close();
|
||||||
|
}
|
||||||
8
Templates/npmwebapp/.crossarchiveignore
Normal file
8
Templates/npmwebapp/.crossarchiveignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
npm/node_modules
|
||||||
|
npm/package-lock.json
|
||||||
|
npm/dist
|
||||||
|
thumbs.db
|
||||||
8
Templates/npmwebapp/.gitignore
vendored
Normal file
8
Templates/npmwebapp/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
npm/node_modules
|
||||||
|
npm/package-lock.json
|
||||||
|
npm/dist
|
||||||
|
thumbs.db
|
||||||
43
Templates/npmwebapp/cross.json
Normal file
43
Templates/npmwebapp/cross.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https:\/\/crosslang.tesseslanguage.com\/\/schema\/cross-json-schema.json",
|
||||||
|
"info": {
|
||||||
|
"template_ignored_files": [
|
||||||
|
".DS_Store",
|
||||||
|
"bin",
|
||||||
|
"obj",
|
||||||
|
"publish",
|
||||||
|
"npm/node_modules",
|
||||||
|
"npm/package-lock.json",
|
||||||
|
"npm/dist",
|
||||||
|
"thumbs.db"
|
||||||
|
],
|
||||||
|
"short_name_pretty": "NPM WebApp",
|
||||||
|
"maintainer": "Mike Nolan",
|
||||||
|
"type": "template",
|
||||||
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
|
"license": "MIT",
|
||||||
|
"short_name": "npmwebapp",
|
||||||
|
"description": "A NPM WebApp Template with BeerCSS and HTMX",
|
||||||
|
"template_info": {
|
||||||
|
"type": "webapp",
|
||||||
|
"short_name": "changeme",
|
||||||
|
"short_name_pretty": "Change Me"
|
||||||
|
},
|
||||||
|
"template_prebuild": [
|
||||||
|
{
|
||||||
|
"workdir": "npm",
|
||||||
|
"commands": [
|
||||||
|
["npm","install"],
|
||||||
|
["npm","run","publish"]
|
||||||
|
],
|
||||||
|
"res": [
|
||||||
|
"npm/dist"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Tesses.CrossLang.Template.NPMWebApp",
|
||||||
|
"version": "1.0.0.0-dev"
|
||||||
|
|
||||||
|
}
|
||||||
12
Templates/npmwebapp/npm/package.json
Normal file
12
Templates/npmwebapp/npm/package.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"beercss": "^4.0.21",
|
||||||
|
"htmx.org": "^2.0.10"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"esbuild": "^0.28.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"publish": "esbuild --minify --sourcemap --define:'process.env.NODE_ENV=\"production\"' --bundle --outdir=dist web.mjs --loader:.svg=file --loader:.woff2=file"
|
||||||
|
}
|
||||||
|
}
|
||||||
78
Templates/npmwebapp/npm/web.css
Normal file
78
Templates/npmwebapp/npm/web.css
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
:root,
|
||||||
|
body.light {
|
||||||
|
--primary:#855400;
|
||||||
|
--on-primary:#ffffff;
|
||||||
|
--primary-container:#ffddb7;
|
||||||
|
--on-primary-container:#2a1700;
|
||||||
|
--secondary:#705b41;
|
||||||
|
--on-secondary:#ffffff;
|
||||||
|
--secondary-container:#fcdebc;
|
||||||
|
--on-secondary-container:#281805;
|
||||||
|
--tertiary:#53643e;
|
||||||
|
--on-tertiary:#ffffff;
|
||||||
|
--tertiary-container:#d6e9b9;
|
||||||
|
--on-tertiary-container:#121f03;
|
||||||
|
--error:#ba1a1a;
|
||||||
|
--on-error:#ffffff;
|
||||||
|
--error-container:#ffdad6;
|
||||||
|
--on-error-container:#410002;
|
||||||
|
--background:#fffbff;
|
||||||
|
--on-background:#1f1b16;
|
||||||
|
--surface:#fff8f4;
|
||||||
|
--on-surface:#1f1b16;
|
||||||
|
--surface-variant:#f0e0d0;
|
||||||
|
--on-surface-variant:#504539;
|
||||||
|
--outline:#827568;
|
||||||
|
--outline-variant:#d4c4b5;
|
||||||
|
--shadow:#000000;
|
||||||
|
--scrim:#000000;
|
||||||
|
--inverse-surface:#352f2a;
|
||||||
|
--inverse-on-surface:#f9efe7;
|
||||||
|
--inverse-primary:#ffb95c;
|
||||||
|
--surface-dim:#e2d8d1;
|
||||||
|
--surface-bright:#fff8f4;
|
||||||
|
--surface-container-lowest:#ffffff;
|
||||||
|
--surface-container-low:#fcf2ea;
|
||||||
|
--surface-container:#f6ece4;
|
||||||
|
--surface-container-high:#f0e6de;
|
||||||
|
--surface-container-highest:#ebe1d9;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.dark {
|
||||||
|
--primary:#ffb95c;
|
||||||
|
--on-primary:#462a00;
|
||||||
|
--primary-container:#653e00;
|
||||||
|
--on-primary-container:#ffddb7;
|
||||||
|
--secondary:#dfc2a2;
|
||||||
|
--on-secondary:#3f2d17;
|
||||||
|
--secondary-container:#57432b;
|
||||||
|
--on-secondary-container:#fcdebc;
|
||||||
|
--tertiary:#bacd9f;
|
||||||
|
--on-tertiary:#263514;
|
||||||
|
--tertiary-container:#3c4c28;
|
||||||
|
--on-tertiary-container:#d6e9b9;
|
||||||
|
--error:#ffb4ab;
|
||||||
|
--on-error:#690005;
|
||||||
|
--error-container:#93000a;
|
||||||
|
--on-error-container:#ffb4ab;
|
||||||
|
--background:#1f1b16;
|
||||||
|
--on-background:#ebe1d9;
|
||||||
|
--surface:#17130e;
|
||||||
|
--on-surface:#ebe1d9;
|
||||||
|
--surface-variant:#504539;
|
||||||
|
--on-surface-variant:#d4c4b5;
|
||||||
|
--outline:#9c8e80;
|
||||||
|
--outline-variant:#504539;
|
||||||
|
--shadow:#000000;
|
||||||
|
--scrim:#000000;
|
||||||
|
--inverse-surface:#ebe1d9;
|
||||||
|
--inverse-on-surface:#352f2a;
|
||||||
|
--inverse-primary:#855400;
|
||||||
|
--surface-dim:#17130e;
|
||||||
|
--surface-bright:#3e3833;
|
||||||
|
--surface-container-lowest:#110e09;
|
||||||
|
--surface-container-low:#1f1b16;
|
||||||
|
--surface-container:#231f1a;
|
||||||
|
--surface-container-high:#2e2924;
|
||||||
|
--surface-container-highest:#39342f;
|
||||||
|
}
|
||||||
3
Templates/npmwebapp/npm/web.mjs
Normal file
3
Templates/npmwebapp/npm/web.mjs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import 'beercss'
|
||||||
|
import 'htmx.org'
|
||||||
|
import './web.css'
|
||||||
78
Templates/npmwebapp/src/components/shell.tcross
Normal file
78
Templates/npmwebapp/src/components/shell.tcross
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
func Components.Shell(title,pages,body)
|
||||||
|
{
|
||||||
|
<return>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="/dist/web.css">
|
||||||
|
<title>%PROJECT_NAME% - {title}</title>
|
||||||
|
<script src="/dist/web.js" defer></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<dialog class="left" id="leftpane">
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<img class="circle large" src="/tytd-128.png">
|
||||||
|
<h6 class="max">%PROJECT_NAME%</h6>
|
||||||
|
<button hx-on:click="ui('#leftpane')" class="transparent circle large">
|
||||||
|
<i>close</i>
|
||||||
|
</button>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<div class="space"></div>
|
||||||
|
<ul class="list">
|
||||||
|
<each(var item : pages)>
|
||||||
|
<if(item.active)>
|
||||||
|
<true>
|
||||||
|
<li class="wave round primary" hx-target="body" hx-push-url="true" hx-get={item.link}>
|
||||||
|
<i>{item.icon}</i>
|
||||||
|
<span class="max">{item.text}</span>
|
||||||
|
<b></b>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</true>
|
||||||
|
<false>
|
||||||
|
<li class="wave round" hx-target="body" hx-push-url="true" hx-get={item.route}>
|
||||||
|
<i>{item.icon}</i>
|
||||||
|
<span class="max">{item.text}</span>
|
||||||
|
<b></b>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</false>
|
||||||
|
</if>
|
||||||
|
</each>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</dialog>
|
||||||
|
<header class="fixed primary-container">
|
||||||
|
<nav>
|
||||||
|
<button hx-on:click="ui('#leftpane')" class="circle transparent">
|
||||||
|
<i>menu</i>
|
||||||
|
</button>
|
||||||
|
<button hx-target="body" hx-push-url="true" hx-get="/" class="circle transparent">
|
||||||
|
<i>home</i>
|
||||||
|
</button>
|
||||||
|
<div class="max"></div>
|
||||||
|
<div>
|
||||||
|
<button class="circle transparent">
|
||||||
|
<i>more_vert</i>
|
||||||
|
</button>
|
||||||
|
<menu class="left no-wrap">
|
||||||
|
<li><a href="https://beercss.com/">BeerCSS</a></li>
|
||||||
|
</menu>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="small-padding">
|
||||||
|
<h5>%PROJECT_NAME%</h5>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main class="responsive">
|
||||||
|
<raw(body)>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</return>
|
||||||
|
}
|
||||||
33
Templates/npmwebapp/src/pages/about.tcross
Normal file
33
Templates/npmwebapp/src/pages/about.tcross
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
|
||||||
|
func Pages.About(ctx)
|
||||||
|
{
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("About Me",pages,<section>
|
||||||
|
<h1>About Me</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
30
Templates/npmwebapp/src/pages/counter.tcross
Normal file
30
Templates/npmwebapp/src/pages/counter.tcross
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
var counter = 0;
|
||||||
|
|
||||||
|
func Pages.Counter(ctx)
|
||||||
|
{
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("Counter",pages,<section>
|
||||||
|
<button hx-get="./counter" hx-target="body" hx-push-url="true">Counter is {++counter}</button>
|
||||||
|
</section>
|
||||||
|
));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
35
Templates/npmwebapp/src/pages/echo.tcross
Normal file
35
Templates/npmwebapp/src/pages/echo.tcross
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
func Pages.Echo(ctx)
|
||||||
|
{
|
||||||
|
const text = ctx.QueryParams.TryGetFirst("text");
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("Echo",pages,<section>
|
||||||
|
<if(text != null)>
|
||||||
|
<true>
|
||||||
|
<plink(text)>
|
||||||
|
</true>
|
||||||
|
<false>
|
||||||
|
<p>No text available</p>
|
||||||
|
</false>
|
||||||
|
</if>
|
||||||
|
</section>));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
42
Templates/npmwebapp/src/pages/index.tcross
Normal file
42
Templates/npmwebapp/src/pages/index.tcross
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
func Pages.Index(ctx)
|
||||||
|
{
|
||||||
|
var pages = [
|
||||||
|
{
|
||||||
|
active = true,
|
||||||
|
route = "/",
|
||||||
|
text = "Home",
|
||||||
|
icon = "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/counter",
|
||||||
|
text = "Counter",
|
||||||
|
icon = "exposure_plus_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
active = false,
|
||||||
|
route = "/about",
|
||||||
|
text = "About",
|
||||||
|
icon = "info"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ctx.WithMimeType("text/html").SendText(Components.Shell("Main Page",pages,<section>
|
||||||
|
<form hx-get="./echo" hx-target="body" hx-push-url="true" action="./echo" method="GET">
|
||||||
|
<div class="row">
|
||||||
|
<div class="max">
|
||||||
|
<div class="field label border">
|
||||||
|
<input type="text" name="text">
|
||||||
|
<label>Text to echo</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="min">
|
||||||
|
<button type="submit">
|
||||||
|
Echo
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<p>1 John 4:4: You, dear children, are from God and have overcome them, because the one who is in you is greater than the one who is in the world.</p>
|
||||||
|
</section>));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
37
Templates/npmwebapp/src/program.tcross
Normal file
37
Templates/npmwebapp/src/program.tcross
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
class MyWebApp {
|
||||||
|
private fileServer;
|
||||||
|
private mountable;
|
||||||
|
private pages;
|
||||||
|
|
||||||
|
public MyWebApp()
|
||||||
|
{
|
||||||
|
this.fileServer = new FileServer(embeddir("/"), true, false);
|
||||||
|
|
||||||
|
this.mountable = new MountableServer((ctx)=>{
|
||||||
|
const page = this.pages.[ctx.Path];
|
||||||
|
if(TypeIsDefined(page)) return page(ctx);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
this.mountable.Mount("/dist/",this.fileServer);
|
||||||
|
this.pages = {
|
||||||
|
.["/"] = Pages.Index,
|
||||||
|
.["/counter"] = Pages.Counter,
|
||||||
|
.["/about"] = Pages.About,
|
||||||
|
.["/echo"] = Pages.Echo
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public Handle(ctx)
|
||||||
|
{
|
||||||
|
return this.mountable.Handle(ctx);
|
||||||
|
}
|
||||||
|
public Close()
|
||||||
|
{
|
||||||
|
this.mountable = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WebAppMain(args)
|
||||||
|
{
|
||||||
|
return new MyWebApp();
|
||||||
|
}
|
||||||
5
Templates/template/.gitignore
vendored
Normal file
5
Templates/template/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Template.Template",
|
"name": "Tesses.CrossLang.Template.Template",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name": "template",
|
"short_name": "template",
|
||||||
|
|||||||
5
Templates/tool/.gitignore
vendored
Normal file
5
Templates/tool/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -17,12 +17,12 @@
|
|||||||
"description": "A crosslang tool that you can run via crosslang tool",
|
"description": "A crosslang tool that you can run via crosslang tool",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name_pretty": "Tool"
|
"short_name_pretty": "Tool"
|
||||||
},
|
},
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"name": "Tesses.CrossLang.Template.Tool",
|
"name": "Tesses.CrossLang.Template.Tool",
|
||||||
"$schema": "https://crosslang.tesseslanguage.com//schema/cross-json-schema.json"
|
"$schema": "https://crosslang.tesseslanguage.com//schema/cross-json-schema.json"
|
||||||
}
|
}
|
||||||
5
Templates/web/.gitignore
vendored
Normal file
5
Templates/web/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Template.Website",
|
"name": "Tesses.CrossLang.Template.Website",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"short_name": "web",
|
"short_name": "web",
|
||||||
|
|||||||
5
Templates/webapp/.gitignore
vendored
Normal file
5
Templates/webapp/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
bin
|
||||||
|
obj
|
||||||
|
publish
|
||||||
|
thumbs.db
|
||||||
@@ -15,12 +15,12 @@
|
|||||||
"short_name_pretty": "Web Application",
|
"short_name_pretty": "Web Application",
|
||||||
"template_project_dependencies": [
|
"template_project_dependencies": [
|
||||||
],
|
],
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"type": "template",
|
"type": "template",
|
||||||
"description": "A web app (for webview or eventual cloud OS)"
|
"description": "A web app (for webview or eventual cloud OS)"
|
||||||
},
|
},
|
||||||
"name": "Tesses.CrossLang.Template.WebApp",
|
"name": "Tesses.CrossLang.Template.WebApp",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"$schema": "https://crosslang.tesseslanguage.com//schema/cross-json-schema.json"
|
"$schema": "https://crosslang.tesseslanguage.com//schema/cross-json-schema.json"
|
||||||
}
|
}
|
||||||
@@ -11,5 +11,5 @@
|
|||||||
"project_dependencies": [
|
"project_dependencies": [
|
||||||
"..\/Tesses.CrossLang.BuildEssentials"
|
"..\/Tesses.CrossLang.BuildEssentials"
|
||||||
],
|
],
|
||||||
"version": "1.0.0.0-prod"
|
"version": "1.0.0.0-dev"
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Args",
|
"name": "Tesses.CrossLang.Args",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "lib",
|
"type": "lib",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "LGPLv3"
|
"license": "LGPLv3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.BuildEssentials",
|
"name": "Tesses.CrossLang.BuildEssentials",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "lib",
|
"type": "lib",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "LGPLv3"
|
"license": "LGPLv3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,13 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"type": "console",
|
"type": "console",
|
||||||
"short_name": "packageserver",
|
"short_name": "packageserver",
|
||||||
"short_name_pretty": "Package Server"
|
"short_name_pretty": "Package Server",
|
||||||
|
"description": "This webapp allows you to serve packages",
|
||||||
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
|
"homepage": "https://cpkg.tesseslanguage.com/",
|
||||||
|
"license": "AGPLv3"
|
||||||
},
|
},
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"name": "Tesses.CrossLang.PackageServer",
|
"name": "Tesses.CrossLang.PackageServer",
|
||||||
"compTime": "secure"
|
"compTime": "secure"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ func main(args)
|
|||||||
PUT /api/v1/upload Authorization Bearer
|
PUT /api/v1/upload Authorization Bearer
|
||||||
POST /api/v1/login Json object with email and password returns json object with either 200 for success {"token": "TOKEN_VAL"} or non 2XX if fails {"reason": "SOME ERROR"}
|
POST /api/v1/login Json object with email and password returns json object with either 200 for success {"token": "TOKEN_VAL"} or non 2XX if fails {"reason": "SOME ERROR"}
|
||||||
POST /api/v1/logout use Authorization Bearer
|
POST /api/v1/logout use Authorization Bearer
|
||||||
GET /api/v1/latest?name=PackageName returns 200 OK with json {"version": "1.0.0.0-prod"} if it succeeds if it fails returns a failing status code with {"reason": "SOME ERROR"}
|
GET /api/v1/latest?name=PackageName returns 200 OK with json {"version":"1.0.0.0-dev"} if it succeeds if it fails returns a failing status code with {"reason": "SOME ERROR"}
|
||||||
GET /api/v1/download?name=PackageName&version=1.0.0.0-prod returns 200 OK with package bytes or 404 if doesn't exist
|
GET /api/v1/download?name=PackageName&version=1.0.0.0-prod returns 200 OK with package bytes or 404 if doesn't exist
|
||||||
GET /api/v1/search?q=SomeQuery&offset=&limit= returns 200 OK with json of packages {"packages": [{"name": "pkgName","version": "latestVersion", ...}]} or non success status code
|
GET /api/v1/search?q=SomeQuery&offset=&limit= returns 200 OK with json of packages {"packages": [{"name": "pkgName","version": "latestVersion", ...}]} or non success status code
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ func VM.RunEventLoop()
|
|||||||
/^
|
/^
|
||||||
Merge all crvm files into one and returns path inside destVFS of output
|
Merge all crvm files into one and returns path inside destVFS of output
|
||||||
You should have srcFS a SubdirFilesystem to directory with executable
|
You should have srcFS a SubdirFilesystem to directory with executable
|
||||||
so if the source executable was /app/bin/app-1.0.0.0-prod.crvm you should pass a SubdirFilesystem pointing to the directory /app/bin and sourcePath set to /app-1.0.0.0-prod.crvm and destVFS to a empty SubdirFilesystem
|
so if the source executable was /app/bin/app-1.0.0.0-dev.crvm you should pass a SubdirFilesystem pointing to the directory /app/bin and sourcePath set to /app-1.0.0.0-dev.crvm and destVFS to a empty SubdirFilesystem
|
||||||
^/
|
^/
|
||||||
func VM.Merge(srcVFS,sourcePath,destVFS)
|
func VM.Merge(srcVFS,sourcePath,destVFS)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "Tesses.CrossLang.Shell",
|
"name": "Tesses.CrossLang.Shell",
|
||||||
"version": "1.0.0.0-prod",
|
"version": "1.0.0.0-dev",
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"info": {
|
"info": {
|
||||||
"maintainer": "Mike Nolan",
|
"maintainer": "Mike Nolan",
|
||||||
"type": "console",
|
"type": "console",
|
||||||
"repo": "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
"repo": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"homepage": "https://crosslang.tesseslanguage.com/",
|
"homepage": "https://crosslang.tesseslanguage.com/",
|
||||||
"license": "LGPLv3"
|
"license": "LGPLv3"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ func Tesses.CrossLang.Shell.New(dd)
|
|||||||
var old_info = proj.info;
|
var old_info = proj.info;
|
||||||
proj.info = old_info.template_info;
|
proj.info = old_info.template_info;
|
||||||
proj.icon = old_info.template_icon;
|
proj.icon = old_info.template_icon;
|
||||||
|
proj.prebuild = old_info.template_prebuild;
|
||||||
proj.dependencies = old_info.template_project_dependencies;
|
proj.dependencies = old_info.template_project_dependencies;
|
||||||
var srcDir = proj.source_directory;
|
var srcDir = proj.source_directory;
|
||||||
if(TypeOf(srcDir) == "Undefined") srcDir = "/src";
|
if(TypeOf(srcDir) == "Undefined") srcDir = "/src";
|
||||||
@@ -105,7 +106,7 @@ func Tesses.CrossLang.Shell.New(dd)
|
|||||||
var src = FS.ReadAllText(projectDir, ent);
|
var src = FS.ReadAllText(projectDir, ent);
|
||||||
|
|
||||||
src = src.Replace("%PROJECT_NAME%",projectPath.GetFileName());
|
src = src.Replace("%PROJECT_NAME%",projectPath.GetFileName());
|
||||||
src = src.Replace("%TEMPLATE_PROJECT_NAME%","%PROJECT_NAME");
|
src = src.Replace("%TEMPLATE_PROJECT_NAME%","%PROJECT_NAME%");
|
||||||
|
|
||||||
FS.WriteAllText(projectDir, ent, src);
|
FS.WriteAllText(projectDir, ent, src);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,5 +4,5 @@
|
|||||||
"description": "The standard library of crosslang"
|
"description": "The standard library of crosslang"
|
||||||
},
|
},
|
||||||
"name": "Tesses.CrossLang.Std",
|
"name": "Tesses.CrossLang.Std",
|
||||||
"version": "1.0.0.0-prod"
|
"version": "1.0.0.0-dev"
|
||||||
}
|
}
|
||||||
|
|||||||
45
build.tcross
45
build.tcross
@@ -14,7 +14,7 @@ func cmd(name, args)
|
|||||||
func main(args)
|
func main(args)
|
||||||
{
|
{
|
||||||
|
|
||||||
var args2=["-o","./Tesses.CrossLang.BuildEssentials/bin-tmp","-r","./Tesses.CrossLang.BuildEssentials/res","-n","Tesses.CrossLang.BuildEssentials","-v","1.0.0.0-prod","Tesses.CrossLang.BuildEssentials/main.tcross"];
|
var args2=["-o","./Tesses.CrossLang.BuildEssentials/bin-tmp","-r","./Tesses.CrossLang.BuildEssentials/res","-n","Tesses.CrossLang.BuildEssentials","-v","1.0.0.0-dev","Tesses.CrossLang.BuildEssentials/main.tcross"];
|
||||||
each(var f : FS.Local.EnumeratePaths("./Tesses.CrossLang.BuildEssentials/src"))
|
each(var f : FS.Local.EnumeratePaths("./Tesses.CrossLang.BuildEssentials/src"))
|
||||||
{
|
{
|
||||||
if(f.GetExtension() == ".tcross")
|
if(f.GetExtension() == ".tcross")
|
||||||
@@ -22,38 +22,41 @@ func main(args)
|
|||||||
args2.Add(f.ToString());
|
args2.Add(f.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cmd("crossc", args2);
|
cmd("crossc", args2);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.BuildEssentials/bin-tmp/Tesses.CrossLang.BuildEssentials-1.0.0.0-prod.crvm","Tesses.CrossLang.Shell"]);
|
cmd("crossvm",["./Tesses.CrossLang.BuildEssentials/bin-tmp/Tesses.CrossLang.BuildEssentials-1.0.0.0-dev.crvm","Tesses.CrossLang.Shell"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.PackageServer"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Tesses.CrossLang.PackageServer"]);
|
||||||
//cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.WebSite"]);
|
//cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Tesses.CrossLang.WebSite"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.Std"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Tesses.CrossLang.Std"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/console"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/console"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/emptyweb"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/emptyweb"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/web"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/web"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/template"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/template"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/lib"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/lib"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/compiletool"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/compiletool"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/tool"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/tool"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Templates/webapp"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/webapp"]);
|
||||||
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/npmweb"]);
|
||||||
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Templates/npmwebapp"]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.PackageServer"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Tesses.CrossLang.PackageServer"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.PackageServer"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Tesses.CrossLang.PackageServer"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.PackageServer"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","Tesses.CrossLang.PackageServer"]);
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.PackageServer"]);
|
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","Tesses.CrossLang.PackageServer"]);
|
|
||||||
*/
|
*/
|
||||||
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm","build","crosslang_shell_archive_maker"]);
|
cmd("crossvm",["./Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm","build","crosslang_shell_archive_maker"]);
|
||||||
|
|
||||||
if(args.Length > 1)
|
if(args.Length > 1)
|
||||||
{
|
{
|
||||||
if(args[1] == "install")
|
if(args[1] == "install")
|
||||||
{
|
{
|
||||||
cmd("crossvm",["crosslang_shell_archive_maker/bin/crosslang_shell_archive_maker-1.0.0.0-prod.crvm", "install"]);
|
cmd("crossvm",["crosslang_shell_archive_maker/bin/crosslang_shell_archive_maker-1.0.0.0-dev.crvm", "install"]);
|
||||||
}
|
}
|
||||||
else if(args[1] == "pack")
|
else if(args[1] == "pack")
|
||||||
{
|
{
|
||||||
cmd("crossvm",["crosslang_shell_archive_maker/bin/crosslang_shell_archive_maker-1.0.0.0-prod.crvm"]);
|
cmd("crossvm",["crosslang_shell_archive_maker/bin/crosslang_shell_archive_maker-1.0.0.0-dev.crvm"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
"project_dependencies": [
|
"project_dependencies": [
|
||||||
"..\/Tesses.CrossLang.BuildEssentials"
|
"..\/Tesses.CrossLang.BuildEssentials"
|
||||||
],
|
],
|
||||||
"version": "1.0.0.0-prod"
|
"version": "1.0.0.0-dev"
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
var name = "Tesses.CrossLang.ShellPackage-1.0.0.0-prod.crvm";
|
var name = "Tesses.CrossLang.ShellPackage-1.0.0.0-dev.crvm";
|
||||||
func main(args)
|
func main(args)
|
||||||
{
|
{
|
||||||
create_archive();
|
create_archive();
|
||||||
@@ -43,9 +43,9 @@ func create_archive()
|
|||||||
|
|
||||||
tmpFS.CreateDirectory(shell);
|
tmpFS.CreateDirectory(shell);
|
||||||
|
|
||||||
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Args-1.0.0.0-prod.crvm", shell / "Tesses.CrossLang.Args-1.0.0.0-prod.crvm");
|
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Args-1.0.0.0-dev.crvm", shell / "Tesses.CrossLang.Args-1.0.0.0-dev.crvm");
|
||||||
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.BuildEssentials-1.0.0.0-prod.crvm", shell / "Tesses.CrossLang.BuildEssentials-1.0.0.0-prod.crvm");
|
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.BuildEssentials-1.0.0.0-dev.crvm", shell / "Tesses.CrossLang.BuildEssentials-1.0.0.0-dev.crvm");
|
||||||
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm", shell / "Shell.crvm");
|
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-dev.crvm", shell / "Shell.crvm");
|
||||||
copyFile("Tesses.CrossLang.Reference/bin/Tesses.CrossLang.Reference-1.0.0.0-dev.crvm", "Reference.crvm");
|
copyFile("Tesses.CrossLang.Reference/bin/Tesses.CrossLang.Reference-1.0.0.0-dev.crvm", "Reference.crvm");
|
||||||
var devStudio = r / "DevStudio";
|
var devStudio = r / "DevStudio";
|
||||||
tmpFS.CreateDirectory(devStudio);
|
tmpFS.CreateDirectory(devStudio);
|
||||||
@@ -68,14 +68,16 @@ func create_archive()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
copyFile("Templates/compiletool/bin/Tesses.CrossLang.Template.CompileTool-1.0.0.0-prod.crvm", templates / "compiletool.crvm");
|
copyFile("Templates/compiletool/bin/Tesses.CrossLang.Template.CompileTool-1.0.0.0-dev.crvm", templates / "compiletool.crvm");
|
||||||
copyFile("Templates/console/bin/Tesses.CrossLang.Template.Console-1.0.0.0-prod.crvm", templates / "console.crvm");
|
copyFile("Templates/console/bin/Tesses.CrossLang.Template.Console-1.0.0.0-dev.crvm", templates / "console.crvm");
|
||||||
copyFile("Templates/lib/bin/Tesses.CrossLang.Template.Library-1.0.0.0-prod.crvm", templates / "lib.crvm");
|
copyFile("Templates/lib/bin/Tesses.CrossLang.Template.Library-1.0.0.0-dev.crvm", templates / "lib.crvm");
|
||||||
copyFile("Templates/template/bin/Tesses.CrossLang.Template.Template-1.0.0.0-prod.crvm", templates / "template.crvm");
|
copyFile("Templates/template/bin/Tesses.CrossLang.Template.Template-1.0.0.0-dev.crvm", templates / "template.crvm");
|
||||||
copyFile("Templates/web/bin/Tesses.CrossLang.Template.Website-1.0.0.0-prod.crvm", templates / "web.crvm");
|
copyFile("Templates/web/bin/Tesses.CrossLang.Template.Website-1.0.0.0-dev.crvm", templates / "web.crvm");
|
||||||
copyFile("Templates/emptyweb/bin/Tesses.CrossLang.Template.EmptyWebsite-1.0.0.0-prod.crvm", templates / "emptyweb.crvm");
|
copyFile("Templates/emptyweb/bin/Tesses.CrossLang.Template.EmptyWebsite-1.0.0.0-dev.crvm", templates / "emptyweb.crvm");
|
||||||
copyFile("Templates/tool/bin/Tesses.CrossLang.Template.Tool-1.0.0.0-prod.crvm", templates / "tool.crvm");
|
copyFile("Templates/tool/bin/Tesses.CrossLang.Template.Tool-1.0.0.0-dev.crvm", templates / "tool.crvm");
|
||||||
copyFile("Templates/webapp/bin/Tesses.CrossLang.Template.WebApp-1.0.0.0-prod.crvm", templates / "webapp.crvm");
|
copyFile("Templates/webapp/bin/Tesses.CrossLang.Template.WebApp-1.0.0.0-dev.crvm", templates / "webapp.crvm");
|
||||||
|
copyFile("Templates/npmwebapp/bin/Tesses.CrossLang.Template.NPMWebApp-1.0.0.0-dev.crvm", templates / "npmwebapp.crvm");
|
||||||
|
copyFile("Templates/npmweb/bin/Tesses.CrossLang.Template.NPMWebsite-1.0.0.0-dev.crvm", templates / "npmweb.crvm");
|
||||||
|
|
||||||
var packageCache = r / "PackageCache";
|
var packageCache = r / "PackageCache";
|
||||||
|
|
||||||
@@ -84,18 +86,18 @@ func create_archive()
|
|||||||
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.BuildEssentials");
|
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.BuildEssentials");
|
||||||
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.Markup");
|
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.Markup");
|
||||||
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.Std");
|
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.Std");
|
||||||
copyFile("Tesses.CrossLang.Args/bin/Tesses.CrossLang.Args-1.0.0.0-prod.crvm", packageCache / "Tesses.CrossLang.Args" / "1.0.0.0-prod");
|
copyFile("Tesses.CrossLang.Args/bin/Tesses.CrossLang.Args-1.0.0.0-dev.crvm", packageCache / "Tesses.CrossLang.Args" / "1.0.0.0-prod");
|
||||||
copyFile("Tesses.CrossLang.BuildEssentials/bin/Tesses.CrossLang.BuildEssentials-1.0.0.0-prod.crvm", packageCache / "Tesses.CrossLang.BuildEssentials" / "1.0.0.0-prod");
|
copyFile("Tesses.CrossLang.BuildEssentials/bin/Tesses.CrossLang.BuildEssentials-1.0.0.0-dev.crvm", packageCache / "Tesses.CrossLang.BuildEssentials" / "1.0.0.0-prod");
|
||||||
//copyFile("Tesses.CrossLang.Markup/bin/Tesses.CrossLang.Markup-1.0.0.0-prod.crvm", packageCache / "Tesses.CrossLang.Markup" / "1.0.0.0-prod");
|
//copyFile("Tesses.CrossLang.Markup/bin/Tesses.CrossLang.Markup-1.0.0.0-dev.crvm", packageCache / "Tesses.CrossLang.Markup" / "1.0.0.0-prod");
|
||||||
copyFile("Tesses.CrossLang.Args/bin/Tesses.CrossLang.Args-1.0.0.0-prod.crvm", packageCache / "Tesses.CrossLang.Args" / "1.0.0.0-prod");
|
copyFile("Tesses.CrossLang.Args/bin/Tesses.CrossLang.Args-1.0.0.0-dev.crvm", packageCache / "Tesses.CrossLang.Args" / "1.0.0.0-prod");
|
||||||
copyFile("Tesses.CrossLang.Std/bin/Tesses.CrossLang.Std-1.0.0.0-prod.crvm", packageCache / "Tesses.CrossLang.Std" / "1.0.0.0-prod");
|
copyFile("Tesses.CrossLang.Std/bin/Tesses.CrossLang.Std-1.0.0.0-dev.crvm", packageCache / "Tesses.CrossLang.Std" / "1.0.0.0-prod");
|
||||||
|
|
||||||
var installer = FS.Local.OpenFile(name, "wb");
|
var installer = FS.Local.OpenFile(name, "wb");
|
||||||
|
|
||||||
var ifo = {
|
var ifo = {
|
||||||
type = "archive",
|
type = "archive",
|
||||||
maintainer = "Mike Nolan",
|
maintainer = "Mike Nolan",
|
||||||
repo = "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
repo = "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
homepage = "https://crosslang.tesseslanguage.com/"
|
homepage = "https://crosslang.tesseslanguage.com/"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
console: a console application (or webserver)
|
console: a console application (or webserver)
|
||||||
lib: a library
|
lib: a library
|
||||||
webapp: A web app (for webview or eventual cloud OS)
|
webapp: A web app (for webview or android, can specify port on cli)
|
||||||
template: used for project templates
|
template: used for project templates
|
||||||
compile_tool: run before source is compiled for project if it is in the dependency tree for the project (and is not linked to said projects)
|
compile_tool: run before source is compiled for project if it is in the dependency tree for the project (and is not linked to said projects)
|
||||||
tool: a tool invokable via crosslang (gets Tesses.CrossLang.Args for free)
|
tool: a tool invokable via crosslang (gets Tesses.CrossLang.Args for free)
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
"vscode": "^1.107.0"
|
"vscode": "^1.107.0"
|
||||||
},
|
},
|
||||||
"publisher": "tesses50",
|
"publisher": "tesses50",
|
||||||
"repository": "https://onedev.site.tesses.net/crosslang/crosslangextras",
|
"repository": "https://git.tesses.org/tesses50/crosslangextras",
|
||||||
"categories": [
|
"categories": [
|
||||||
"Programming Languages"
|
"Programming Languages"
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user