mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-06 04:52:26 +00:00
builds, still working
This commit is contained in:
parent
89f318753d
commit
3378ac511c
2 changed files with 182 additions and 3 deletions
176
src/vipack.Mod
176
src/vipack.Mod
|
|
@ -1,7 +1,180 @@
|
||||||
MODULE vipack;
|
MODULE vipack;
|
||||||
IMPORT Texts, Strings, Oberon, Out,
|
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();
|
PROCEDURE help();
|
||||||
BEGIN
|
BEGIN
|
||||||
vpkLogger.Log("HelpText");
|
vpkLogger.Log("HelpText");
|
||||||
|
|
@ -41,6 +214,7 @@ BEGIN
|
||||||
|
|
||||||
END;
|
END;
|
||||||
END main;
|
END main;
|
||||||
|
*)
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
main
|
main
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
MODULE vpkInstaller;
|
MODULE vpkInstaller;
|
||||||
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings, vpkJsonDepRetriever;
|
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkSettings, vpkJsonDepRetriever;
|
||||||
|
|
||||||
PROCEDURE install*(VAR unit: ARRAY OF CHAR);
|
PROCEDURE resolve*(VAR unit: ARRAY OF CHAR);
|
||||||
VAR
|
VAR
|
||||||
tree: vpkdepTree.TdepTree;
|
tree: vpkdepTree.TdepTree;
|
||||||
lst: StringList.TStringList;
|
lst: StringList.TStringList;
|
||||||
|
|
@ -26,7 +26,12 @@ BEGIN
|
||||||
INC(i)
|
INC(i)
|
||||||
UNTIL i = tree.Count;
|
UNTIL i = tree.Count;
|
||||||
|
|
||||||
END install;
|
END resolve;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE build*(VAR package, prefix, tree: ARRAY OF CHAR);
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
END build;
|
||||||
END vpkInstaller.
|
END vpkInstaller.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue