mirror of
https://onedev.site.tesses.net/crosslang/crosslangextras
synced 2026-02-08 09:05:46 +00:00
82 lines
3.3 KiB
Plaintext
82 lines
3.3 KiB
Plaintext
|
|
var name = "Tesses.CrossLang.ShellPackage-1.0.0.0-prod.crvm";
|
|
func main(args)
|
|
{
|
|
create_archive();
|
|
if(args.Count > 1 && args[1] == "install")
|
|
{
|
|
install();
|
|
}
|
|
}
|
|
|
|
func install()
|
|
{
|
|
var d = Env.CrossLangConfig;
|
|
FS.Local.CreateDirectory(d);
|
|
var sdfs = FS.SubdirFilesystem(FS.Local, d);
|
|
var strm = FS.Local.OpenFile(name,"rb");
|
|
FS.ExtractArchive(strm, sdfs);
|
|
sdfs.Close();
|
|
strm.Close();
|
|
}
|
|
|
|
func create_archive()
|
|
{
|
|
|
|
var tmpFS = FS.SubdirFilesystem(FS.Local,"crosslang_shell_archive_maker/tmp");
|
|
func copyFile(src,dest)
|
|
{
|
|
if(!FS.Local.FileExists(src)) return;
|
|
var srcF = FS.Local.OpenFile(src,"rb");
|
|
var destF = tmpFS.OpenFile(dest,"wb");
|
|
srcF.CopyTo(destF);
|
|
srcF.Close();
|
|
destF.Close();
|
|
}
|
|
|
|
var r = Path.Root();
|
|
|
|
var shell = r / "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.BuildEssentials-1.0.0.0-prod.crvm", shell / "Tesses.CrossLang.BuildEssentials-1.0.0.0-prod.crvm");
|
|
copyFile("Tesses.CrossLang.Shell/bin/Tesses.CrossLang.Shell-1.0.0.0-prod.crvm", shell / "Shell.crvm");
|
|
|
|
var templates = r / "Templates";
|
|
tmpFS.CreateDirectory(templates);
|
|
copyFile("Templates/compiletool/bin/Tesses.CrossLang.Template.CompileTool-1.0.0.0-prod.crvm", templates / "compiletool.crvm");
|
|
copyFile("Templates/console/bin/Tesses.CrossLang.Template.Console-1.0.0.0-prod.crvm", templates / "console.crvm");
|
|
copyFile("Templates/lib/bin/Tesses.CrossLang.Template.Library-1.0.0.0-prod.crvm", templates / "lib.crvm");
|
|
copyFile("Templates/template/bin/Tesses.CrossLang.Template.Template-1.0.0.0-prod.crvm", templates / "template.crvm");
|
|
copyFile("Templates/web/bin/Tesses.CrossLang.Template.Website-1.0.0.0-prod.crvm", templates / "web.crvm");
|
|
copyFile("Templates/tool/bin/Tesses.CrossLang.Template.Tool-1.0.0.0-prod.crvm", templates / "tool.crvm");
|
|
var packageCache = r / "PackageCache";
|
|
|
|
tmpFS.CreateDirectory(packageCache);
|
|
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.Args");
|
|
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.BuildEssentials");
|
|
tmpFS.CreateDirectory(packageCache / "Tesses.CrossLang.Markup");
|
|
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.BuildEssentials/bin/Tesses.CrossLang.BuildEssentials-1.0.0.0-prod.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");
|
|
|
|
var installer = FS.Local.OpenFile(name, "wb");
|
|
|
|
var ifo = {
|
|
type = "archive",
|
|
maintainer = "Mike Nolan",
|
|
repo = "https://onedev.site.tesses.net/CrossLang/CrossLangExtras",
|
|
homepage = "https://crosslang.tesseslanguage.com/"
|
|
};
|
|
|
|
FS.CreateArchive(tmpFS,installer, "Tesses.CrossLang.ShellPackage","1.0.0.0-prod", Json.Encode(ifo));
|
|
|
|
installer.Close();
|
|
tmpFS.Close();
|
|
|
|
FS.Local.DeleteDirectroyRecurse("crosslang_shell_archive_maker/tmp");
|
|
}
|