toml is default everywhere now.

This commit is contained in:
Norayr Chilingarian 2026-04-09 04:52:57 +04:00
parent be6d26d7f0
commit b27114c3a6
2 changed files with 35 additions and 48 deletions

View file

@ -11,7 +11,7 @@ END msgnopkg;
PROCEDURE main; PROCEDURE main;
VAR VAR
deps, sync, fetch, ask, local, init, toml: BOOLEAN; deps, sync, fetch, ask, local, init, json: BOOLEAN;
package, prefix, pkgTree, localFile: ARRAY 128 OF CHAR; package, prefix, pkgTree, localFile: ARRAY 128 OF CHAR;
options: opts.Options; options: opts.Options;
@ -82,19 +82,18 @@ BEGIN
options.add(options, opt); options.add(options, opt);
opt := opts.createOpt(); opt := opts.createOpt();
opts.setOptName(opt, "--toml"); opts.setOptName(opt, "-j");
opts.setOptLName(opt, "--toml"); opts.setOptLName(opt, "--json");
opts.setOptHasVal(opt, FALSE); opts.setOptHasVal(opt, FALSE);
opts.setOptDesc(opt, "use .vipak file format instead of JSON"); opts.setOptDesc(opt, "use JSON format (.json) for package descriptions instead of default .vipak");
opts.setOptRequired(opt, FALSE); opts.setOptRequired(opt, FALSE);
options.add(options, opt); options.add(options, opt);
(* New local build options *)
opt := opts.createOpt(); opt := opts.createOpt();
opts.setOptName(opt, "-l"); opts.setOptName(opt, "-l");
opts.setOptLName(opt, "--local"); opts.setOptLName(opt, "--local");
opts.setOptHasVal(opt, FALSE); opts.setOptHasVal(opt, FALSE);
opts.setOptDesc(opt, "build local project from vipak.json file (includes dependencies)"); opts.setOptDesc(opt, "build local project from vipak.vipak (or vipak.json with --json)");
opts.setOptRequired(opt, FALSE); opts.setOptRequired(opt, FALSE);
options.add(options, opt); options.add(options, opt);
@ -102,7 +101,7 @@ BEGIN
opts.setOptName(opt, "-i"); opts.setOptName(opt, "-i");
opts.setOptLName(opt, "--init"); opts.setOptLName(opt, "--init");
opts.setOptHasVal(opt, FALSE); opts.setOptHasVal(opt, FALSE);
opts.setOptDesc(opt, "create default vipak.json in current directory"); opts.setOptDesc(opt, "create default vipak.vipak project file in current directory");
opts.setOptRequired(opt, FALSE); opts.setOptRequired(opt, FALSE);
options.add(options, opt); options.add(options, opt);
@ -116,9 +115,9 @@ BEGIN
END; END;
Out.Ln; Out.Ln;
COPY("", package); COPY("", prefix); COPY("", pkgTree); COPY("vipak.json", localFile); COPY("", package); COPY("", prefix); COPY("", pkgTree); COPY("vipak.vipak", localFile);
deps := FALSE; sync := FALSE; fetch := FALSE; ask := FALSE; deps := FALSE; sync := FALSE; fetch := FALSE; ask := FALSE;
local := FALSE; init := FALSE; toml := FALSE; local := FALSE; init := FALSE; json := FALSE;
fopt := opts.createOpt(); fopt := opts.createOpt();
fopt := opts.findOpt("-d", foptions); fopt := opts.findOpt("-d", foptions);
@ -145,12 +144,11 @@ BEGIN
IF fopt # NIL THEN init := TRUE END; IF fopt # NIL THEN init := TRUE END;
fopt := opts.createOpt(); fopt := opts.createOpt();
fopt := opts.findOpt("--toml", foptions); fopt := opts.findOpt("-j", foptions);
IF fopt # NIL THEN toml := TRUE END; IF fopt # NIL THEN
json := TRUE;
IF toml THEN vpkMetaRetriever.SetPreferredFormat(vpkMetaRetriever.fmtJson);
vpkMetaRetriever.SetPreferredFormat(vpkMetaRetriever.fmtToml); COPY("vipak.json", localFile)
COPY("vipak.vipak", localFile)
END; END;
opts.valOfOpt("-p", foptions, package); opts.valOfOpt("-p", foptions, package);

View file

@ -5,7 +5,7 @@ IMPORT Files, Out, Strings, Platform,
vpkResolver, vpkSyncer, vpkDot, vpkTools, UnixFS; vpkResolver, vpkSyncer, vpkDot, vpkTools, UnixFS;
CONST CONST
DefaultProjectFile = "vipak.json"; DefaultProjectFile = "vipak.vipak";
DefaultBuildDir = "build"; DefaultBuildDir = "build";
ErrmessSize = 4096; ErrmessSize = 4096;
@ -94,53 +94,42 @@ VAR
r: Files.Rider; r: Files.Rider;
projectName: ARRAY 64 OF CHAR; projectName: ARRAY 64 OF CHAR;
BEGIN BEGIN
(* Use a simple default project name *)
COPY("myproject", projectName); COPY("myproject", projectName);
(* Create default JSON content *) COPY("[PACKAGE]", content);
COPY('{', content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "Package": "', content); Strings.Append("name = ", content); Strings.Append(projectName, content);
Strings.Append(eol, content);
Strings.Append("author = Your Name", content);
Strings.Append(eol, content);
Strings.Append("license = GPL-3", content);
Strings.Append(eol, content);
Strings.Append("version = 0.1.0", content);
Strings.Append(eol, content);
Strings.Append(eol, content);
Strings.Append("[REMOTE]", content);
Strings.Append(eol, content);
Strings.Append("type = git", content);
Strings.Append(eol, content);
Strings.Append("uri = https://codeberg.org/yourname/", content);
Strings.Append(projectName, content); Strings.Append(projectName, content);
Strings.Append('",', content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "Author": "Your Name",', content); Strings.Append("tag = 0.1.0", content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "License": "GPL-3",', content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "Remote": {', content); Strings.Append("[DEPS]", content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "type": "git",', content); Strings.Append("# add dependencies here, e.g.:", content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "path": "https://codeberg.org/yourname/', content); Strings.Append("# opts = 0.1.0", content);
Strings.Append(projectName, content);
Strings.Append('",', content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "tag": "0.1"', content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' },', content); Strings.Append("[BUILD]", content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' "Dependencies": {', content); Strings.Append('run = "voc -m src/', content);
Strings.Append(eol, content);
Strings.Append(' "opts": "0.1"', content);
Strings.Append(eol, content);
Strings.Append(' },', content);
Strings.Append(eol, content);
Strings.Append(' "Build": [', content);
Strings.Append(eol, content);
Strings.Append(' {', content);
Strings.Append(eol, content);
Strings.Append(' "Command": "voc -m",', content);
Strings.Append(eol, content);
Strings.Append(' "File": "src/', content);
Strings.Append(projectName, content); Strings.Append(projectName, content);
Strings.Append('.Mod"', content); Strings.Append('.Mod"', content);
Strings.Append(eol, content); Strings.Append(eol, content);
Strings.Append(' }', content);
Strings.Append(eol, content);
Strings.Append(' ]', content);
Strings.Append(eol, content);
Strings.Append('}', content);
f := Files.New(filename); f := Files.New(filename);
IF f # NIL THEN IF f # NIL THEN