From 3378ac511cd55c82fb4a0959a305169dba79a898 Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Wed, 12 Jan 2022 01:57:42 +0400 Subject: [PATCH] builds, still working --- src/vipack.Mod | 176 ++++++++++++++++++++++++++++++++++++++++++- src/vpkInstaller.Mod | 9 ++- 2 files changed, 182 insertions(+), 3 deletions(-) diff --git a/src/vipack.Mod b/src/vipack.Mod index faea2ac..219d893 100644 --- a/src/vipack.Mod +++ b/src/vipack.Mod @@ -1,7 +1,180 @@ MODULE vipack; IMPORT Texts, Strings, Oberon, Out, - vpkConf, vpkLogger, vpkSyncer, vpkInstaller, StringList; + vpkConf, vpkLogger, vpkSyncer, vpkInstaller, opts, StringList; +(* +PROCEDURE processArgs(VAR package, prefix, tree: ARRAY OF CHAR; deps, sync: BOOLEAN); +VAR + options: opts.Options; + foptions: opts.Options; + opt, fopt: opts.Option; +BEGIN + options := opts.createOptions(); + foptions := opts.createOptions(); + + opt := opts.createOpt(); + opts.setOptName(opt, "-p"); + opts.setOptLName(opt, "--package"); + opts.setOptHasVal(opt, TRUE); + opts.setOptDesc(opt, "package name to download"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-d"); + opts.setOptLName(opt, "--showdeps"); + opts.setOptHasVal(opt, FALSE); + opts.setOptDesc(opt, "only resolve and show dependencies, do not fetch"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-s"); + opts.setOptLName(opt, "--sync"); + opts.setOptHasVal(opt, FALSE); + opts.setOptDesc(opt, "sync the package tree"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-P"); + opts.setOptLName(opt, "--prefix"); + opts.setOptHasVal(opt, TRUE); + opts.setOptDesc(opt, "where to download and build packages"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-t"); + opts.setOptLName(opt, "--tree"); + opts.setOptHasVal(opt, TRUE); + opts.setOptDesc(opt, "override the default package description tree"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + foptions := opts.populateOptions(options); + IF opts.reqsSatisfied(options, foptions) THEN + Out.String("required options provided"); Out.Ln; + ELSE + Out.String("required options not provided"); Out.Ln; + opts.showHelp(options); + HALT(3); + END; + Out.Ln; + + COPY("", package); COPY("", prefix); COPY("", tree); + deps := FALSE; sync := FALSE; + + fopt := opts.createOpt(); + fopt := opts.findOpt("-d", foptions); + IF fopt # NIL THEN deps := TRUE END; + + fopt := opts.createOpt(); + fopt := opts.findOpt("-s", foptions); + IF fopt # NIL THEN sync := TRUE END; + + + opts.valOfOpt("-p", foptions, package); + opts.valOfOpt("-P", foptions, prefix); + opts.valOfOpt("-t", foptions, tree); + +END processArgs; +*) +PROCEDURE main; +VAR + deps, sync: BOOLEAN; + package, prefix, tree: ARRAY 64 OF CHAR; + + options: opts.Options; + foptions: opts.Options; + opt, fopt: opts.Option; +BEGIN + options := opts.createOptions(); + foptions := opts.createOptions(); + + opt := opts.createOpt(); + opts.setOptName(opt, "-p"); + opts.setOptLName(opt, "--package"); + opts.setOptHasVal(opt, TRUE); + opts.setOptDesc(opt, "package name to download"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-d"); + opts.setOptLName(opt, "--showdeps"); + opts.setOptHasVal(opt, FALSE); + opts.setOptDesc(opt, "only resolve and show dependencies, do not fetch"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-s"); + opts.setOptLName(opt, "--sync"); + opts.setOptHasVal(opt, FALSE); + opts.setOptDesc(opt, "sync the package tree"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-P"); + opts.setOptLName(opt, "--prefix"); + opts.setOptHasVal(opt, TRUE); + opts.setOptDesc(opt, "where to download and build packages"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + opt := opts.createOpt(); + opts.setOptName(opt, "-t"); + opts.setOptLName(opt, "--tree"); + opts.setOptHasVal(opt, TRUE); + opts.setOptDesc(opt, "override the default package description tree"); + opts.setOptRequired(opt, FALSE); + options.add(options, opt); + + foptions := opts.populateOptions(options); + IF opts.reqsSatisfied(options, foptions) THEN + Out.String("required options provided"); Out.Ln; + ELSE + Out.String("required options not provided"); Out.Ln; + opts.showHelp(options); + HALT(3); + END; + Out.Ln; + + COPY("", package); COPY("", prefix); COPY("", tree); + deps := FALSE; sync := FALSE; + + fopt := opts.createOpt(); + fopt := opts.findOpt("-d", foptions); + IF fopt # NIL THEN deps := TRUE END; + + fopt := opts.createOpt(); + fopt := opts.findOpt("-s", foptions); + IF fopt # NIL THEN sync := TRUE END; + + + opts.valOfOpt("-p", foptions, package); + opts.valOfOpt("-P", foptions, prefix); + opts.valOfOpt("-t", foptions, tree); + + IF sync THEN + vpkSyncer.sync + ELSIF deps THEN + IF package # "" THEN + vpkInstaller.resolve(package); + ELSE + Out.String("you need to mention package name to resolve dependencies for it"); Out.Ln; Out.Ln; + opts.showHelp(options); + END + ELSE + + vpkInstaller.build(package, prefix, tree) + END; + +END main; + +(* PROCEDURE help(); BEGIN vpkLogger.Log("HelpText"); @@ -41,6 +214,7 @@ BEGIN END; END main; +*) BEGIN main diff --git a/src/vpkInstaller.Mod b/src/vpkInstaller.Mod index 17c8624..97d6fc7 100644 --- a/src/vpkInstaller.Mod +++ b/src/vpkInstaller.Mod @@ -1,7 +1,7 @@ MODULE vpkInstaller; IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings, vpkJsonDepRetriever; -PROCEDURE install*(VAR unit: ARRAY OF CHAR); +PROCEDURE resolve*(VAR unit: ARRAY OF CHAR); VAR tree: vpkdepTree.TdepTree; lst: StringList.TStringList; @@ -26,7 +26,12 @@ BEGIN INC(i) UNTIL i = tree.Count; -END install; +END resolve; +PROCEDURE build*(VAR package, prefix, tree: ARRAY OF CHAR); + +BEGIN + +END build; END vpkInstaller.