mirror of
https://onedev.site.tesses.net/crosslang/crosslangextras
synced 2026-02-08 17:15:45 +00:00
Change to onedev
This commit is contained in:
80
crosslang_shell_archive_maker/src/main.tcross
Normal file
80
crosslang_shell_archive_maker/src/main.tcross
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
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 = FS.MakeFull(Env.Config) / "Tesses" / "CrossLang";
|
||||
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");
|
||||
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");
|
||||
}
|
||||
Reference in New Issue
Block a user