mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
-a / --ask option.
This commit is contained in:
parent
6a44334d7a
commit
208f1d777b
3 changed files with 35 additions and 6 deletions
|
|
@ -24,6 +24,8 @@ some examples:
|
||||||
|
|
||||||
`vipack -p irc_bot` — will build the package and dependencies in the default prefix: `~/vpkLocal`
|
`vipack -p irc_bot` — will build the package and dependencies in the default prefix: `~/vpkLocal`
|
||||||
|
|
||||||
|
`vipack -a -p irc_bot` — ask for confirmation before building the package and dependencies in the default prefix: `~/vpkLocal`
|
||||||
|
|
||||||
`vipack -p irc_bot -P /tmp/coolprefix` — will do the same in the custom prefix.
|
`vipack -p irc_bot -P /tmp/coolprefix` — will do the same in the custom prefix.
|
||||||
|
|
||||||
`vipack -p irc_bot -P /tmp/coolprefix -t /tmp/myothertree` — the same, but the dependency resolution will be conducted by using custom package description tree.
|
`vipack -p irc_bot -P /tmp/coolprefix -t /tmp/myothertree` — the same, but the dependency resolution will be conducted by using custom package description tree.
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ BEGIN
|
||||||
opts.setOptRequired(opt, FALSE);
|
opts.setOptRequired(opt, FALSE);
|
||||||
options.add(options, opt);
|
options.add(options, opt);
|
||||||
|
|
||||||
|
opts.setOptRequired(opt, FALSE);
|
||||||
|
options.add(options, opt);
|
||||||
|
|
||||||
opt := opts.createOpt();
|
opt := opts.createOpt();
|
||||||
opts.setOptName(opt, "-s");
|
opts.setOptName(opt, "-s");
|
||||||
opts.setOptLName(opt, "--sync");
|
opts.setOptLName(opt, "--sync");
|
||||||
|
|
@ -89,7 +92,7 @@ END msgnopkg;
|
||||||
|
|
||||||
PROCEDURE main;
|
PROCEDURE main;
|
||||||
VAR
|
VAR
|
||||||
deps, sync, fetch: BOOLEAN;
|
deps, sync, fetch, ask: BOOLEAN;
|
||||||
package, prefix, pkgTree: ARRAY 128 OF CHAR;
|
package, prefix, pkgTree: ARRAY 128 OF CHAR;
|
||||||
|
|
||||||
options: opts.Options;
|
options: opts.Options;
|
||||||
|
|
@ -125,6 +128,14 @@ BEGIN
|
||||||
opts.setOptRequired(opt, FALSE);
|
opts.setOptRequired(opt, FALSE);
|
||||||
options.add(options, opt);
|
options.add(options, opt);
|
||||||
|
|
||||||
|
opt := opts.createOpt();
|
||||||
|
opts.setOptName(opt, "-a");
|
||||||
|
opts.setOptLName(opt, "--ask");
|
||||||
|
opts.setOptHasVal(opt, FALSE);
|
||||||
|
opts.setOptDesc(opt, "only resolve and fetch, do not build");
|
||||||
|
opts.setOptRequired(opt, FALSE);
|
||||||
|
options.add(options, opt);
|
||||||
|
|
||||||
opt := opts.createOpt();
|
opt := opts.createOpt();
|
||||||
opts.setOptName(opt, "-s");
|
opts.setOptName(opt, "-s");
|
||||||
opts.setOptLName(opt, "--sync");
|
opts.setOptLName(opt, "--sync");
|
||||||
|
|
@ -166,6 +177,11 @@ BEGIN
|
||||||
fopt := opts.findOpt("-d", foptions);
|
fopt := opts.findOpt("-d", foptions);
|
||||||
IF fopt # NIL THEN deps := TRUE END;
|
IF fopt # NIL THEN deps := TRUE END;
|
||||||
|
|
||||||
|
fopt := opts.createOpt();
|
||||||
|
fopt := opts.findOpt("-a", foptions);
|
||||||
|
IF fopt # NIL THEN ask := TRUE END;
|
||||||
|
|
||||||
|
|
||||||
fopt := opts.createOpt();
|
fopt := opts.createOpt();
|
||||||
fopt := opts.findOpt("-f", foptions);
|
fopt := opts.findOpt("-f", foptions);
|
||||||
IF fopt # NIL THEN fetch := TRUE END;
|
IF fopt # NIL THEN fetch := TRUE END;
|
||||||
|
|
@ -186,9 +202,9 @@ BEGIN
|
||||||
IF deps THEN
|
IF deps THEN
|
||||||
depTree := vpkInstaller.resolve(package)
|
depTree := vpkInstaller.resolve(package)
|
||||||
ELSIF fetch THEN
|
ELSIF fetch THEN
|
||||||
vpkInstaller.fetch(package, prefix, pkgTree)
|
vpkInstaller.fetch(package, prefix, pkgTree, ask)
|
||||||
ELSE
|
ELSE
|
||||||
vpkInstaller.build(package, prefix, pkgTree)
|
vpkInstaller.build(package, prefix, pkgTree, ask)
|
||||||
END
|
END
|
||||||
ELSE
|
ELSE
|
||||||
msgnopkg(options)
|
msgnopkg(options)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
MODULE vpkInstaller;
|
MODULE vpkInstaller;
|
||||||
IMPORT Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkEnv, vpkJsonDepRetriever, vpkSyncer, Platform;
|
IMPORT In, Out, StringList, vpkResolver, vpkdepTree, vpkDot, vpkEnv, vpkJsonDepRetriever, vpkSyncer, Platform;
|
||||||
|
|
||||||
PROCEDURE resolve*(VAR unit: ARRAY OF CHAR): vpkdepTree.TdepTree;
|
PROCEDURE resolve*(VAR unit: ARRAY OF CHAR): vpkdepTree.TdepTree;
|
||||||
VAR
|
VAR
|
||||||
|
|
@ -30,7 +30,16 @@ BEGIN
|
||||||
RETURN tree
|
RETURN tree
|
||||||
END resolve;
|
END resolve;
|
||||||
|
|
||||||
PROCEDURE fetch*(VAR package, prefix, pkgTree: ARRAY OF CHAR);
|
PROCEDURE ask();
|
||||||
|
VAR
|
||||||
|
ch: CHAR;
|
||||||
|
BEGIN
|
||||||
|
Out.String("would you like to merge these packages? (y/n) ");
|
||||||
|
In.Char(ch);
|
||||||
|
IF ch # 'y' THEN Out.Ln; Out.String('quitting'); Out.Ln; HALT(0); END
|
||||||
|
END ask;
|
||||||
|
|
||||||
|
PROCEDURE fetch*(VAR package, prefix, pkgTree: ARRAY OF CHAR; a: BOOLEAN);
|
||||||
VAR
|
VAR
|
||||||
depTree: vpkdepTree.TdepTree;
|
depTree: vpkdepTree.TdepTree;
|
||||||
dep: vpkdepTree.Tdep;
|
dep: vpkdepTree.Tdep;
|
||||||
|
|
@ -39,6 +48,7 @@ VAR
|
||||||
typ: ARRAY 16 OF CHAR;
|
typ: ARRAY 16 OF CHAR;
|
||||||
BEGIN
|
BEGIN
|
||||||
depTree := resolve(package);
|
depTree := resolve(package);
|
||||||
|
IF a THEN ask END;
|
||||||
i := 0;
|
i := 0;
|
||||||
REPEAT
|
REPEAT
|
||||||
dep := vpkdepTree.Get(depTree, i);
|
dep := vpkdepTree.Get(depTree, i);
|
||||||
|
|
@ -48,7 +58,7 @@ BEGIN
|
||||||
UNTIL i = depTree.Count;
|
UNTIL i = depTree.Count;
|
||||||
END fetch;
|
END fetch;
|
||||||
|
|
||||||
PROCEDURE build*(VAR package, prefix, tree: ARRAY OF CHAR);
|
PROCEDURE build*(VAR package, prefix, tree: ARRAY OF CHAR; a : BOOLEAN);
|
||||||
VAR
|
VAR
|
||||||
depTree: vpkdepTree.TdepTree;
|
depTree: vpkdepTree.TdepTree;
|
||||||
dep: vpkdepTree.Tdep;
|
dep: vpkdepTree.Tdep;
|
||||||
|
|
@ -63,6 +73,7 @@ VAR
|
||||||
BEGIN
|
BEGIN
|
||||||
builddir := vpkEnv.mkBldDir(prefix);
|
builddir := vpkEnv.mkBldDir(prefix);
|
||||||
depTree := resolve(package);
|
depTree := resolve(package);
|
||||||
|
IF a THEN ask END;
|
||||||
i := 0;
|
i := 0;
|
||||||
REPEAT
|
REPEAT
|
||||||
dep := vpkdepTree.Get(depTree, i);
|
dep := vpkdepTree.Get(depTree, i);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue