Changeset 66d16b0 in tol
- Timestamp:
- Oct 6, 2010, 5:50:50 PM (16 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 76b12054
- Parents:
- c1fdad2
- File:
-
- 1 edited
-
tol/stdlib/general/TolPackage/server.tol (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
tol/stdlib/general/TolPackage/server.tol
rc1fdad2 r66d16b0 32 32 }; 33 33 34 ////////////////////////////////////////////////////////////////////////////// 35 Text BuildPackage(Text name, Text sourceRoot, Text destination) 36 ////////////////////////////////////////////////////////////////////////////// 37 { 38 Text _MID = "[Build.Package] "; 39 WriteLn(_MID+sourceRoot+name+" -> "+destination); 40 Set pkgCnt = Eval("Set IncludeTOL(\""+ 41 sourceRoot+name+"/"+name+".tol\",True)"); 42 NameBlock pkg = pkgCnt[1]; 43 Text name.version = TolPackage::GetCurrentNameVersion(name,True); 44 Set dependencies = TolPackage::GetDeepDependencies(name, True); 45 Set nonTolResources=If(!ObjectExist("Set",name+"::_.autodoc.nonTolResources"), 46 Copy(Empty),pkg::_.autodoc.nonTolResources); 47 48 Text ppRoot_ = destination+name.version; 49 Text ppRoot = ppRoot_+"/"; 50 Real Ois.Store(pkgCnt,ppRoot+name.version+".oza"); 51 Real OSDirMake(ppRoot); 52 53 Real cleanResource(Text dest) 54 { 55 Set dir = GetDir(dest); 56 Set sub = dir[2]; 57 Set EvalSet(sub,Real(Text s) 58 { 59 Text dest_new = dest+"/"+s; 60 Text ls = ToLower(s); 61 If(Or(ls==".svn",ls=="svn",ls=="cvs",ls==".cvs"), 62 OSDirRemove(dest_new), 63 cleanResource(dest_new)) 64 }); 65 True 66 }; 67 Real processResourceText(Text resource) 68 { 69 Text orig = sourceRoot+"/"+name+"/"+resource; 70 Text dest = ppRoot+"/"+resource; 71 Real OSDirMake(dest); 72 If(OSUnix, OSDirRemove(dest)); 73 WriteLn("TRACE dir copy '"+orig+"' -> '"+dest+"'"); 74 Real OSDirCopy(orig,dest); 75 cleanResource(dest) 76 }; 77 Real processResourceSet(Set resourceSet) 78 { 79 Set EvalSet(resourceSet, processResourceText); 80 True 81 }; 82 Set EvalSet(nonTolResources, Real (Anything res) 83 { 84 Text gra = Grammar(res); 85 WriteLn(_MID+"Processing resource "+gra+" "<<res); 86 Eval("processResource"+gra+"(res)") 87 }); 88 Text ppr = ReplaceSlash(ppRoot_); 89 Real PackArchive::PackFull("ZipArchive", ppr); 90 Real OSDirRemove(ppRoot); 91 ppRoot_+".zip" 92 }; 93 94 95 ////////////////////////////////////////////////////////////////////////////// 96 Real UploadPackageFromLocalZip(NameBlock dbConnect, Text pkg.path.zip) 97 ////////////////////////////////////////////////////////////////////////////// 98 { 99 Text root = GetFilePath(pkg.path.zip); 100 Text pkg.name.zip = GetFileName(pkg.path.zip); 101 Text pkg.name = Replace(pkg.name.zip,".zip",""); 102 Real PackArchive::UnpackFull("ZipArchive",root+pkg.name); 103 Set pkgCnt = Include(root+pkg.name+"/"+pkg.name+".oza"); 104 NameBlock pkg = pkgCnt[1]; 105 Text name = Name(pkgCnt[1]); 106 107 Real dbConnect::Open(0); 108 Real DBExecQuery("set client_encoding to '""latin1""'"); 109 Text repository.query = " 110 SELECT id_repository, co_repository, ds_repository, co_access, te_url 111 FROM 112 repository_d_def AS D, 113 repository_d_access AS A 114 WHERE 115 A.id_access = D.id_access 116 AND te_url = '"+pkg::_.autodoc.url+"' 117 "; 118 WriteLn(repository.query); 119 Set repository = DBTable(repository.query); 120 121 Set dep = TolPackage::GetDeepDependencies(name, True); 122 Set res = pkg::_.autodoc.nonTolResources; 123 Text bl_zip = EncodeBase64FromFile(pkg.path.zip); 124 125 //Text exist.query = 126 Text insert.query = " 127 INSERT INTO repository_f_packages( 128 id_repository, co_name, nu_version_high, nu_version_low, te_brief, 129 te_keys, te_authors, te_mintolversion, dh_releasedate, te_dependencies, 130 te_nontolresources, bl_zip) 131 VALUES ( 132 "<<(repository[1])::id_repository+", "+ 133 "'"+name+"', \n"+ 134 ""<<pkg::_.autodoc.version.high+", \n"+ 135 ""<<pkg::_.autodoc.version.high+", \n"+ 136 "'"<<pkg::_.autodoc.brief+"', \n"+ 137 "'"<<pkg::_.autodoc.keys+"', \n"+ 138 "'"<<pkg::_.autodoc.authors+"', \n"+ 139 "'"<<pkg::_.autodoc.minTolVersion+"', \n"+ 140 "'"<<FormatDate(NowGmt,"%c%Y-%m-%d %h:%i:%s")+"', \n"+ 141 "'"<<If(Card(dep),""<<dep,"")+"', \n"+ 142 "'"<<If(Card(res),""<<res,"")+"', \n"+ 143 "'"<<bl_zip+"' \n"+ 144 ");"; 145 146 Real num_reg = DBExecQuery(insert.query); 147 If(!num_reg, WriteLn( 148 "Package is already in the repository. Please upgrade the " 149 "version numbers or delete the register of existent package.","E")); 150 Real dbConnect::Close(0); 151 num_reg 152 }; 153 34 154 #Embed "builder.tol" 35 155
Note: See TracChangeset
for help on using the changeset viewer.
