mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
checking conf file and dir
This commit is contained in:
parent
c5b750daba
commit
a36f236bb3
3 changed files with 66 additions and 13 deletions
34
Vipack.Mod
34
Vipack.Mod
|
|
@ -1,9 +1,12 @@
|
||||||
MODULE Vipack;
|
MODULE Vipack;
|
||||||
IMPORT vpkLogger, vpkPackageFileParser,Texts,Strings,In,Platform, Oberon, Out, Files, vpkUserDetails;
|
IMPORT vpkConf, vpkFsHelper, vpkLogger, vpkPackageFileParser, Texts, Strings, In, Platform, Oberon, Out, Files, vpkUserDetails;
|
||||||
|
|
||||||
PROCEDURE main();
|
PROCEDURE main();
|
||||||
|
|
||||||
|
CONST confFileName = "/vipack.conf";
|
||||||
|
|
||||||
VAR user, str, fn: ARRAY 32 OF CHAR;
|
VAR user, str, fn: ARRAY 32 OF CHAR;
|
||||||
confDir, string : ARRAY 120 OF CHAR;
|
confPath, string : ARRAY 120 OF CHAR;
|
||||||
i : INTEGER;
|
i : INTEGER;
|
||||||
f : Files.File;
|
f : Files.File;
|
||||||
r : Files.Rider;
|
r : Files.Rider;
|
||||||
|
|
@ -23,7 +26,7 @@ Texts.Scan(S);
|
||||||
Out.String(S.s); Out.Ln;
|
Out.String(S.s); Out.Ln;
|
||||||
|
|
||||||
|
|
||||||
(* Vipack installation or help) *)
|
(* Vipack installation or help *)
|
||||||
command := S.s;
|
command := S.s;
|
||||||
IF Strings.Match(command, "") OR Strings.Match(command, "--help")THEN
|
IF Strings.Match(command, "") OR Strings.Match(command, "--help")THEN
|
||||||
help;
|
help;
|
||||||
|
|
@ -32,7 +35,7 @@ ELSIF Strings.Match(command, "install") THEN
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
||||||
confDir := "/home//.vipack/vipack.conf";
|
confPath := "/home//.vipack";
|
||||||
|
|
||||||
(* Getting username from input if there is no $USER variable *)
|
(* Getting username from input if there is no $USER variable *)
|
||||||
IF ~(vpkUserDetails.GetUsername(user)) THEN
|
IF ~(vpkUserDetails.GetUsername(user)) THEN
|
||||||
|
|
@ -40,17 +43,22 @@ IF ~(vpkUserDetails.GetUsername(user)) THEN
|
||||||
END;
|
END;
|
||||||
|
|
||||||
(* Making the full path to vipack.conf *)
|
(* Making the full path to vipack.conf *)
|
||||||
Strings.Insert(user,6,confDir);
|
Strings.Insert(user,6,confPath);
|
||||||
Out.String(confDir);Out.Ln;
|
Out.String(confPath);Out.Ln;
|
||||||
|
|
||||||
|
(* Checking if ~/.vipack directory already exists *)
|
||||||
|
IF ~(vpkFsHelper.mkDir(confPath)) THEN
|
||||||
|
Out.String(confPath); Out.String(" already exists or path is wrong");Out.Ln;
|
||||||
|
ELSE Out.String("Creating directory "); Out.String(confPath);Out.Ln;
|
||||||
|
END;
|
||||||
|
|
||||||
(* Checking if vipack.conf already exists *)
|
(* Checking if vipack.conf already exists *)
|
||||||
IF Files.Old(confDir) = NIL THEN
|
Strings.Append(confFileName,confPath);
|
||||||
Out.String("Creating the configuration file "); Out.String(confDir);Out.Ln;
|
|
||||||
f := Files.New(confDir);
|
IF ~(vpkConf.confExists(confPath)) THEN
|
||||||
Files.Set(r, f, 0);
|
Out.String("Creating the configuration file "); Out.String(confPath);Out.Ln;
|
||||||
Files.WriteInt(r, 8); Files.WriteString(r, "Configuration");
|
vpkConf.makeConf(confPath);
|
||||||
Files.Register(f);
|
ELSE
|
||||||
ELSIF Files.Old(confDir) # NIL THEN
|
|
||||||
Out.String("File already exists");Out.Ln;
|
Out.String("File already exists");Out.Ln;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
|
||||||
25
vpkConf.Mod
Normal file
25
vpkConf.Mod
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
MODULE vpkConf;
|
||||||
|
IMPORT Files;
|
||||||
|
|
||||||
|
PROCEDURE confExists*(VAR confFile: ARRAY OF CHAR ):BOOLEAN;
|
||||||
|
BEGIN
|
||||||
|
IF Files.Old(confFile) = NIL THEN RETURN FALSE;
|
||||||
|
ELSE RETURN TRUE;
|
||||||
|
END;
|
||||||
|
|
||||||
|
END confExists;
|
||||||
|
|
||||||
|
PROCEDURE makeConf*(VAR confFilePath: ARRAY OF CHAR);
|
||||||
|
VAR f : Files.File;
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
f := Files.New(confFilePath);
|
||||||
|
Files.Register(f);
|
||||||
|
|
||||||
|
END makeConf;
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
|
||||||
|
END vpkConf.
|
||||||
20
vpkFsHelper.Mod
Normal file
20
vpkFsHelper.Mod
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
MODULE vpkFsHelper;
|
||||||
|
IMPORT SYSTEM;
|
||||||
|
|
||||||
|
PROCEDURE -Aincludesysstat '#include <sys/stat.h>';
|
||||||
|
PROCEDURE -Aincludesystypes '#include <sys/types.h>';
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE -mkdir(VAR path: ARRAY OF CHAR): INTEGER
|
||||||
|
"(int)mkdir(path, 0755)";
|
||||||
|
|
||||||
|
PROCEDURE mkDir*(VAR path: ARRAY OF CHAR): BOOLEAN;
|
||||||
|
VAR res: INTEGER;
|
||||||
|
BEGIN
|
||||||
|
res := mkdir(path);
|
||||||
|
IF res = 0 THEN RETURN TRUE ELSE RETURN FALSE END
|
||||||
|
END mkDir;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
END vpkFsHelper.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue