Revision 42725 trunk/org.gvsig.desktop/org.gvsig.desktop.installer/src/main/packaging/gvspkg
gvspkg | ||
---|---|---|
1 | 1 |
#!/usr/bin/python |
2 |
# -*- coding: utf-8 -*-
|
|
3 |
|
|
2 |
# -*- coding: utf-8 -*- |
|
3 |
# |
|
4 | 4 |
import sys |
5 | 5 |
import os |
6 | 6 |
import os.path |
7 | 7 |
import fnmatch |
8 | 8 |
import shutil |
9 |
import zipfile
|
|
9 |
import zipfile |
|
10 | 10 |
import stat |
11 | 11 |
import getopt |
12 | 12 |
from os.path import dirname |
... | ... | |
23 | 23 |
VERBOSE = False |
24 | 24 |
SEARCH_VERSIONS = list() |
25 | 25 |
|
26 |
LINUX_EXEC_EXTENSION=".run" # antes ".bin" |
|
26 |
#LINUX_EXEC_EXTENSION=".run" # antes ".bin"
|
|
27 | 27 |
|
28 | 28 |
def log(msg): |
29 | 29 |
f=open("/tmp/gvspkg.log","a") |
... | ... | |
36 | 36 |
def message(msg): |
37 | 37 |
if VERBOSE: |
38 | 38 |
print msg |
39 |
sys.stdout.flush() |
|
39 | 40 |
log(msg) |
40 | 41 |
|
41 | 42 |
def msgerror(msg, err=None): |
... | ... | |
43 | 44 |
log("ERROR: "+msg) |
44 | 45 |
if err!=None : |
45 | 46 |
print "ERROR: ", str(err) |
47 |
sys.stdout.flush() |
|
46 | 48 |
log("ERROR: "+ str(err)) |
47 | 49 |
|
48 | 50 |
|
49 | 51 |
def msgwarn(msg): |
50 | 52 |
print "WARNING: ", msg |
53 |
sys.stdout.flush() |
|
51 | 54 |
log("WARNING: "+ msg) |
52 | 55 |
|
53 | 56 |
def debug(msg): |
54 | 57 |
if DEBUG: |
55 | 58 |
print "DEBUG: ", msg |
59 |
sys.stdout.flush() |
|
56 | 60 |
log("DEBUG: "+ msg) |
57 | 61 |
|
58 | 62 |
def acquire_file(name): |
... | ... | |
65 | 69 |
folder = os.path.dirname(folder) |
66 | 70 |
return files |
67 | 71 |
|
68 |
def get_gvspkg_bin_folder():
|
|
72 |
def get_gvspkg_bin_folder(): |
|
69 | 73 |
files = list() |
70 | 74 |
if os.environ.get("HOME") != None : |
71 | 75 |
files.append(os.path.join(os.environ['HOME'],".gvspkg.bin")) |
... | ... | |
82 | 86 |
return None |
83 | 87 |
return os.path.dirname(f) |
84 | 88 |
|
85 |
RWALL = stat.S_IWOTH | stat.S_IROTH | stat.S_IWUSR | stat.S_IRUSR | stat.S_IWGRP | stat.S_IRGRP
|
|
86 |
RWXALL = RWALL | stat.S_IXUSR | stat.S_IXOTH | stat.S_IXGRP
|
|
89 |
RWALL = stat.S_IWOTH | stat.S_IROTH | stat.S_IWUSR | stat.S_IRUSR | stat.S_IWGRP | stat.S_IRGRP |
|
90 |
RWXALL = RWALL | stat.S_IXUSR | stat.S_IXOTH | stat.S_IXGRP |
|
87 | 91 |
|
88 | 92 |
VERSION = os.path.basename(os.getcwd()) |
89 | 93 |
GVSPKG_ROOT = search_GVSPKG_ROOT() |
... | ... | |
124 | 128 |
except Exception, ex: |
125 | 129 |
msgwarn("Can't change permissions of file '%s', error %s" % (filename, str(ex))) |
126 | 130 |
|
131 |
def makedirs(path): |
|
132 |
if not os.path.isdir(path) : |
|
133 |
os.makedirs(path) |
|
134 |
|
|
127 | 135 |
class Command: |
128 | 136 |
|
129 | 137 |
def __init__(self, args): |
... | ... | |
200 | 208 |
self.gvsig_version = s[2] |
201 | 209 |
self.code = s[3] |
202 | 210 |
try: |
203 |
# gvSIG-desktop-1.12.0-com.iver.cit.gvsig.cad-1.12.0-opencadtools-1418-final-all-all-j1_6.gvspkg |
|
204 |
# 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 |
|
205 |
# gvSIG-desktop-1.12.0-com.iver.cit.gvsig.cad-1.12.0-1418-final-all-all-j1_6.gvspkg |
|
206 |
# 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 |
|
207 |
if isDigit(s[5]) : |
|
211 |
# gvSIG-desktop-1.12.0-com.iver.cit.gvsig.cad-1.12.0-opencadtools-1418-final-all-all-j1_6.gvspkg |
|
212 |
# 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 |
|
213 |
# gvSIG-desktop-1.12.0-com.iver.cit.gvsig.cad-1.12.0-1418-final-all-all-j1_6.gvspkg |
|
214 |
# 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 |
|
215 |
|
|
216 |
if isDigit(s[5]) : |
|
208 | 217 |
self.version = s[4] |
209 | 218 |
self.build = s[5] |
210 | 219 |
self.status = s[6] |
... | ... | |
222 | 231 |
self.status = "unknow" |
223 | 232 |
self.os = "all" |
224 | 233 |
self.arch = "all" |
225 |
try:
|
|
226 |
self.build = int(self.build)
|
|
227 |
except:
|
|
228 |
pass
|
|
234 |
try:
|
|
235 |
self.build = int(self.build)
|
|
236 |
except:
|
|
237 |
pass
|
|
229 | 238 |
|
230 | 239 |
def getCode(self): |
231 | 240 |
return self.code |
... | ... | |
243 | 252 |
return os.path.basename(self.filename) |
244 | 253 |
|
245 | 254 |
def getFullVersion(self): |
246 |
if "-" in self.version : |
|
247 |
return "%s-%06d" %(self.version,self.build) |
|
248 |
else: |
|
249 |
return "%s-ZZZ-%06d" %(self.version,self.build) |
|
255 |
try: |
|
256 |
r = re.compile("([0-9]+)[.]([0-9]+)[.]([0-9]+)-([a-zA-Z0-0]+)$") |
|
257 |
m = r.match(self.version) |
|
258 |
if m == None: |
|
259 |
clasificador="ZZZZZZZZ" |
|
260 |
r = re.compile("([0-9]+)[.]([0-9]+)[.]([0-9]+)$") |
|
261 |
m = r.match(self.version) |
|
262 |
else: |
|
263 |
clasificador=m.group(4) |
|
264 |
v1=int(m.group(1)) |
|
265 |
v2=int(m.group(2)) |
|
266 |
v3=int(m.group(3)) |
|
267 |
return "%06d.%06d.%06d-%s-%06d" % (v1,v2,v3,clasificador,self.build) |
|
268 |
except: |
|
269 |
if "-" in self.version : |
|
270 |
return "%s-%06d" %(self.version,self.build) |
|
271 |
else: |
|
272 |
return "%s-ZZZZZZZZ-%06d" %(self.version,self.build) |
|
250 | 273 |
|
251 | 274 |
def getFilename(self): |
252 | 275 |
return self.filename + "." + self.type |
... | ... | |
268 | 291 |
ini = self.getIni() |
269 | 292 |
if ini.has_option(section, name): |
270 | 293 |
x = ini.get(section, name) |
271 |
x = x.replace("\\:", ":")
|
|
272 |
return x
|
|
273 |
return default
|
|
294 |
x = x.replace("\\:", ":")
|
|
295 |
return x |
|
296 |
return default |
|
274 | 297 |
|
275 | 298 |
def getDescription(self): |
276 | 299 |
return self.getIniOption("description") |
... | ... | |
398 | 421 |
except getopt.GetoptError, err: |
399 | 422 |
# print help information and exit: |
400 | 423 |
print str(err) # will print something like "option -a not recognized" |
401 |
help(args) |
|
424 |
shorthelp(args)
|
|
402 | 425 |
sys.exit(2) |
403 | 426 |
|
404 | 427 |
long_format=False |
... | ... | |
420 | 443 |
else: |
421 | 444 |
print info.getPkiFilename() |
422 | 445 |
|
423 |
def installkit_add(cmd,arg1,arg2): |
|
424 | 446 |
|
447 |
def installer_add(cmd,arg1,arg2): |
|
448 |
installer_add_use_zip(cmd,arg1,arg2) |
|
449 |
|
|
450 |
def installer_add_use_zip(cmd,arg1,arg2): |
|
451 |
if cmd == "addjrelin": |
|
452 |
return |
|
453 |
|
|
454 |
if cmd == "addjrewin": |
|
455 |
return |
|
456 |
|
|
457 |
if cmd == "addpks": |
|
458 |
zip = zipfile.ZipFile(arg1,"a",zipfile.ZIP_STORED) |
|
459 |
zip.write(arg2,"package.gvspks") |
|
460 |
zip.close() |
|
461 |
|
|
462 |
def installer_add_use_installkit(cmd,arg1,arg2): |
|
425 | 463 |
folder = "%s/gvspkg.bin" % GVSPKG_ROOT |
426 | 464 |
|
427 | 465 |
cmd = "%s/installkit %s/main.tcl %s %s %s" % ( |
466 |
"/mnt/data0/public-files/gvsig-desktop/gvspkg.bin", |
|
428 | 467 |
folder, |
429 |
folder, |
|
430 | 468 |
cmd, |
431 | 469 |
arg1, |
432 | 470 |
arg2 |
... | ... | |
440 | 478 |
except getopt.GetoptError, err: |
441 | 479 |
# print help information and exit: |
442 | 480 |
print str(err) # will print something like "option -a not recognized" |
443 |
help(args) |
|
481 |
shorthelp(args)
|
|
444 | 482 |
sys.exit(2) |
445 | 483 |
|
446 | 484 |
#print "opts = ",opts |
... | ... | |
466 | 504 |
|
467 | 505 |
|
468 | 506 |
if len(args) != 2 : |
469 |
help(args) |
|
507 |
shorthelp(args)
|
|
470 | 508 |
sys.exit(4) |
471 | 509 |
|
472 | 510 |
bin_name = args[0] |
... | ... | |
481 | 519 |
print "gvspkg mkinstall: only one of addjrelin or addjrewin is allowed." |
482 | 520 |
sys.exit(4) |
483 | 521 |
|
484 |
message("Creando %s..." % custom_name)
|
|
522 |
message("Creating %s..." % custom_name)
|
|
485 | 523 |
shutil.copyfile(bin_name, custom_name) |
486 | 524 |
mychmod(custom_name,RWALL) |
487 |
message("A�adiendo %s..." % gvspks_name) |
|
488 |
installkit_add("addpks", custom_name, gvspks_name) |
|
489 |
|
|
525 |
message("Adding %s..." % gvspks_name) |
|
526 |
installer_add("addpks", custom_name, gvspks_name) |
|
527 |
|
|
528 |
""" |
|
490 | 529 |
if addjrelin: |
491 | 530 |
withjre_name = bin_name.replace("online", distribution_name+"-withjre") |
492 |
message("Creando %s..." % withjre_name)
|
|
531 |
message("Creating %s..." % withjre_name)
|
|
493 | 532 |
shutil.copyfile(custom_name, withjre_name) |
494 | 533 |
mychmod(withjre_name,RWALL) |
495 |
message("A�adiendo %s..." % jrelin)
|
|
496 |
installkit_add("addjrelin", withjre_name, jrelin)
|
|
534 |
message("Adding %s..." % jrelin)
|
|
535 |
installer_add("addjrelin", withjre_name, jrelin)
|
|
497 | 536 |
|
498 | 537 |
|
499 | 538 |
if addjrewin: |
500 | 539 |
withjre_name = bin_name.replace("online", distribution_name+"-withjre") |
501 |
message("Creando %s..." % withjre_name)
|
|
540 |
message("Creating %s..." % withjre_name)
|
|
502 | 541 |
shutil.copyfile(custom_name, withjre_name) |
503 | 542 |
mychmod(withjre_name,RWALL) |
504 |
message("A�adiendo %s..." % jrewin) |
|
505 |
installkit_add("addjrewin", withjre_name, jrewin) |
|
543 |
message("Adding %s..." % jrewin) |
|
544 |
installer_add("addjrewin", withjre_name, jrewin) |
|
545 |
""" |
|
506 | 546 |
|
507 |
|
|
508 | 547 |
def mks(args): |
509 | 548 |
cmd = Command(args) |
510 | 549 |
try: |
... | ... | |
512 | 551 |
except getopt.GetoptError, err: |
513 | 552 |
# print help information and exit: |
514 | 553 |
print str(err) # will print something like "option -a not recognized" |
515 |
help(args) |
|
554 |
shorthelp(args)
|
|
516 | 555 |
sys.exit(2) |
517 | 556 |
|
518 | 557 |
platforms = ("x86", "x86_64") |
... | ... | |
565 | 604 |
packages_txt = getDist() +"/packages.txt" |
566 | 605 |
packages_gvspki = getDist() +"/packages.gvspki" |
567 | 606 |
|
568 |
message( "Creating 'packages.gvspki' for version '%s'" % getVersion() ) |
|
607 |
message( "Creating 'packages.gvspki' for version '%s'" % getVersion() + "...")
|
|
569 | 608 |
if not os.path.exists(getDist()): |
570 | 609 |
msgerror("Can't locate version folder '%s'." % getDist()) |
571 | 610 |
sys.exit(3) |
... | ... | |
594 | 633 |
except Exception, ex: |
595 | 634 |
msgerror("Can't add index '%s', error %s" % (info, str(ex))) |
596 | 635 |
else: |
597 |
message("Exclude package '%s'" % info.getFullName())
|
|
636 |
debug("Exclude package '%s'" % info.getFullName())
|
|
598 | 637 |
if default_selection != None : |
599 | 638 |
set.write(default_selection,default_selection) |
600 | 639 |
set.close() |
... | ... | |
619 | 658 |
except Exception, ex: |
620 | 659 |
msgerror("Can't add package '%s', error %s" % (index, str(ex))) |
621 | 660 |
else: |
622 |
message("Exclude package '%s'" % info.getFullName())
|
|
661 |
debug("Exclude package '%s'" % info.getFullName())
|
|
623 | 662 |
if default_selection != None : |
624 | 663 |
set.write(default_selection,default_selection) |
625 | 664 |
set.close() |
... | ... | |
628 | 667 |
md5sum(packages_gvspks,packages_gvspks+".md5") |
629 | 668 |
mychmod(packages_gvspks+".md5",RWALL) |
630 | 669 |
|
631 |
message( "Created") |
|
670 |
message( "Createds package indexes.\n")
|
|
632 | 671 |
|
633 | 672 |
def mkmirror(args): |
634 | 673 |
cmd = Command(args) |
... | ... | |
637 | 676 |
except getopt.GetoptError, err: |
638 | 677 |
# print help information and exit: |
639 | 678 |
print str(err) # will print something like "option -a not recognized" |
640 |
help(args) |
|
679 |
shorthelp(args)
|
|
641 | 680 |
sys.exit(2) |
642 | 681 |
|
643 | 682 |
build = None |
... | ... | |
651 | 690 |
msgerror("Build number required.") |
652 | 691 |
sys.exit(3) |
653 | 692 |
domkmirror( getPackagesRoot(),getVersion(),build) |
693 |
|
|
694 |
def linkfile(src,dst): |
|
695 |
if os.path.lexists(dst): |
|
696 |
os.remove(dst) |
|
697 |
os.symlink(src,dst) |
|
698 |
if os.path.lexists(src+".md5") : |
|
699 |
if os.path.lexists(dst+".md5"): |
|
700 |
os.remove(dst+".md5") |
|
701 |
os.symlink(src+".md5",dst+".md5") |
|
654 | 702 |
|
655 | 703 |
def domkmirror(root_src, version, build): |
656 | 704 |
join = os.path.join |
657 | 705 |
|
658 |
def linkfile(src,dst): |
|
659 |
if os.path.lexists(dst): |
|
660 |
os.remove(dst) |
|
661 |
os.symlink(src,dst) |
|
662 |
if os.path.lexists(src+".md5") : |
|
663 |
if os.path.lexists(dst+".md5"): |
|
664 |
os.remove(dst+".md5") |
|
665 |
os.symlink(src+".md5",dst+".md5") |
|
666 |
|
|
667 |
|
|
668 | 706 |
build = str(build) |
669 | 707 |
root_target = join(root_src,"mirrors",version+"-"+build,"gvsig-desktop") |
670 | 708 |
build_src = join(root_src,"dists",version,"builds",build) |
... | ... | |
672 | 710 |
pool_src = join(root_src,"pool") |
673 | 711 |
pool_target = join(root_target,"pool") |
674 | 712 |
|
675 |
if not os.path.isdir(root_target): |
|
676 |
os.makedirs(root_target) |
|
677 |
if not os.path.isdir(build_target): |
|
678 |
os.makedirs(build_target) |
|
679 |
if not os.path.isdir(pool_target): |
|
680 |
os.makedirs(pool_target) |
|
713 |
makedirs(root_target) |
|
714 |
makedirs(build_target) |
|
715 |
makedirs(pool_target) |
|
681 | 716 |
files = os.listdir(build_src) |
682 | 717 |
linkfile(join(build_src,"packages.gvspki"), join(root_target,"dists",version,"packages.gvspki")) |
683 | 718 |
for f in files: |
... | ... | |
691 | 726 |
for pkgname in pkgs: |
692 | 727 |
if pkgname!='defaultPackages': |
693 | 728 |
pkg = PackageInfo(pkgname) |
694 |
if not os.path.exists(join(root_target,"pool",pkg.getCode())) : |
|
695 |
os.makedirs(join(root_target,"pool",pkg.getCode())) |
|
729 |
makedirs(join(root_target,"pool",pkg.getCode())) |
|
696 | 730 |
src = join(root_src,"pool",pkg.getCode(),pkg.getPkgFilename()) |
697 | 731 |
target = join(root_target,"pool",pkg.getCode(),pkg.getPkgFilename()) |
698 | 732 |
linkfile(src,target) |
... | ... | |
710 | 744 |
except getopt.GetoptError, err: |
711 | 745 |
# print help information and exit: |
712 | 746 |
print str(err) # will print something like "option -a not recognized" |
713 |
help(args) |
|
747 |
shorthelp(args)
|
|
714 | 748 |
sys.exit(2) |
715 | 749 |
|
716 | 750 |
index_only = False |
... | ... | |
733 | 767 |
else: |
734 | 768 |
assert False, "unhandled option %r" % opt |
735 | 769 |
|
770 |
message("Creating html pages...") |
|
736 | 771 |
indexes = IndexList() |
737 | 772 |
|
738 | 773 |
packages_txt = getDist() +"/packages.txt" |
... | ... | |
782 | 817 |
text-algin:right; |
783 | 818 |
} |
784 | 819 |
</style> |
785 |
</head>'''
|
|
820 |
</head>''' |
|
786 | 821 |
|
787 | 822 |
html += ''' |
788 | 823 |
<body> |
... | ... | |
810 | 845 |
<td>%s</td> |
811 | 846 |
<td>%s</td> |
812 | 847 |
</tr>\n'''%( |
813 |
"../../../web/" + item.getFullName() + ".html?height=400&width=600",
|
|
848 |
"../../../web/" + item.getFullName() + ".html?height=400&width=600",
|
|
814 | 849 |
item.getName(), |
815 |
item.version,
|
|
816 |
item.os,
|
|
817 |
item.getOfficial(),
|
|
818 |
item.getType(),
|
|
819 |
item.getOwner()
|
|
850 |
item.version,
|
|
851 |
item.os,
|
|
852 |
item.getOfficial(),
|
|
853 |
item.getType(),
|
|
854 |
item.getOwner()
|
|
820 | 855 |
) |
821 | 856 |
html += """ </tbody>\n </table> |
822 | 857 |
<!--javascript para la visualizaci�n de la tabla y carga din�mica del contenido del enlace --> |
... | ... | |
848 | 883 |
except Exception, ex: |
849 | 884 |
raise ex |
850 | 885 |
|
851 |
|
|
886 |
message("html pages createds.\n") |
|
887 |
|
|
888 |
|
|
852 | 889 |
def mkpkihtml(basepath, info): |
853 | 890 |
html='''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
854 | 891 |
<html xmlns="http://www.w3.org/1999/xhtml"> |
... | ... | |
905 | 942 |
description = "" |
906 | 943 |
description = description.replace("\\n", "<br>") |
907 | 944 |
description = description.replace("\:",":") |
908 |
html += ' <tr valing="top"><th valing="top">%s </th><td>%s</td></tr>\n'%("Description", description)
|
|
945 |
html += ' <tr valing="top"><th valing="top">%s </th><td>%s</td></tr>\n'%("Description", description) |
|
909 | 946 |
html += """ </tbody>\n</table>\n""" |
910 |
html += """
|
|
947 |
html += """ |
|
911 | 948 |
<!-- javascript para la visualizaci�n de la tabla --> |
912 | 949 |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script> |
913 | 950 |
<script src="http://datatables.net/release-datatables/media/js/jquery.dataTables.js" type="text/javascript"></script> |
... | ... | |
934 | 971 |
except Exception, ex: |
935 | 972 |
raise ex |
936 | 973 |
|
974 |
def extract_make_portable(zfile, targetfolder): |
|
975 |
zf = zipfile.ZipFile(zfile) |
|
976 |
data = zf.read("gvsig-desktop/tools/make-portable") |
|
977 |
f = open(os.path.join(targetfolder,"make-portable"),"wb") |
|
978 |
f.write(data) |
|
979 |
f.close() |
|
980 |
zf.close() |
|
981 |
|
|
982 |
def prepare_portable(args): |
|
983 |
cmd = Command(args) |
|
984 |
try: |
|
985 |
opts, args = getopt.getopt(cmd.getArgs("prepare-portable"), "b:s:", [ "build=", "state=" ]) |
|
986 |
except getopt.GetoptError, err: |
|
987 |
# print help information and exit: |
|
988 |
print str(err) # will print something like "option -a not recognized" |
|
989 |
shorthelp(args) |
|
990 |
sys.exit(2) |
|
991 |
|
|
992 |
build=None |
|
993 |
state=None |
|
994 |
for opt, arg in opts: |
|
995 |
if opt in ("-b", "--build"): |
|
996 |
build=arg |
|
997 |
elif opt in ("-s", "--state"): |
|
998 |
state=arg |
|
999 |
else: |
|
1000 |
assert False, "unhandled option %r" % opt |
|
1001 |
|
|
1002 |
if build == None: |
|
1003 |
print "Requiered option --build not found." |
|
1004 |
shorthelp(args) |
|
1005 |
sys.exit(2) |
|
1006 |
|
|
1007 |
if state == None: |
|
1008 |
print "Requiered option --state not found." |
|
1009 |
shorthelp(args) |
|
1010 |
sys.exit(2) |
|
1011 |
|
|
1012 |
join = os.path.join |
|
1013 |
build_folder = join(getPackagesRoot(),"dists",getVersion(),"builds",build) |
|
1014 |
if not os.path.isdir(build_folder): |
|
1015 |
print "Can't access the build folder "+build_folder+"." |
|
1016 |
sys.exit(2) |
|
1017 |
|
|
1018 |
do_prepare_portable(build,state) |
|
1019 |
|
|
1020 |
def do_prepare_portable(build,state): |
|
1021 |
join = os.path.join |
|
1022 |
build_folder = join(getPackagesRoot(),"dists",getVersion(),"builds",build) |
|
1023 |
portable_folder = join(build_folder,"misc","portable") |
|
1024 |
makedirs(portable_folder) |
|
1025 |
makedirs(join(portable_folder,"packages","custom")) |
|
1026 |
makedirs(join(portable_folder,"standard")) |
|
1027 |
makedirs(join(portable_folder,"patchs")) |
|
1028 |
f=open(join(portable_folder,"packages","excludes"),"w") |
|
1029 |
f.write("""EPSG_v6 |
|
1030 |
EPSG_v8_4 |
|
1031 |
org.gvsig.app.document.layout1.app.mainplugin |
|
1032 |
org.gvsig.dyschromatopsia.app.extension |
|
1033 |
org.gvsig.educa.portableview.app.editor |
|
1034 |
org.gvsig.educa.portableview.app.viewer |
|
1035 |
org.gvsig.projection.app.cresques |
|
1036 |
org.gvsig.projection.app.proj4j |
|
1037 |
org.gvsig.editing.app.mainplugin |
|
1038 |
org.gvsig.downloader.app.mainplugin |
|
1039 |
""") |
|
1040 |
f.close() |
|
1041 |
fname_base = "gvSIG-desktop-%s-%s-%s" % (getVersion(),build,state) |
|
1042 |
linkfile( |
|
1043 |
join(build_folder,fname_base + "-all-x86-online.zip"), |
|
1044 |
join(portable_folder,"standard",fname_base + "-all-x86-online.zip") |
|
1045 |
) |
|
1046 |
linkfile( |
|
1047 |
join(build_folder,fname_base + "-lin-x86.gvspks"), |
|
1048 |
join(portable_folder,"standard",fname_base + "-lin-x86.gvspks") |
|
1049 |
) |
|
1050 |
linkfile( |
|
1051 |
join(build_folder,fname_base + "-lin-x86_64.gvspks"), |
|
1052 |
join(portable_folder,"standard",fname_base + "-lin-x86_64.gvspks") |
|
1053 |
) |
|
1054 |
linkfile( |
|
1055 |
join(build_folder,fname_base + "-lin-x86-online.jar"), |
|
1056 |
join(portable_folder,"standard",fname_base + "-lin-x86-online.jar") |
|
1057 |
) |
|
1058 |
linkfile( |
|
1059 |
join(build_folder,fname_base + "-win-x86.gvspks"), |
|
1060 |
join(portable_folder,"standard",fname_base + "-win-x86.gvspks") |
|
1061 |
) |
|
1062 |
linkfile( |
|
1063 |
join(build_folder,fname_base + "-win-x86-online.jar"), |
|
1064 |
join(portable_folder,"standard",fname_base + "-win-x86-online.jar") |
|
1065 |
) |
|
1066 |
extract_make_portable( |
|
1067 |
join(build_folder,fname_base + "-all-x86-online.zip"), |
|
1068 |
join(portable_folder) |
|
1069 |
) |
|
1070 |
# shutil.copyfile( |
|
1071 |
# join(getPackagesRoot(),"gvspkg.bin","make-portable"), |
|
1072 |
# join(portable_folder,"make-portable") |
|
1073 |
# ) |
|
1074 |
mychmod(join(portable_folder,"make-portable"),RWXALL) |
|
1075 |
|
|
1076 |
def zipfolder(source,target): |
|
1077 |
def zipdir(path, zip): |
|
1078 |
for root, dirs, files in os.walk(path): |
|
1079 |
for file in files: |
|
1080 |
zip.write(os.path.join(root, file)) |
|
1081 |
zipf = zipfile.ZipFile(target, 'w') |
|
1082 |
zipdir(source, zipf) |
|
1083 |
zipf.close() |
|
1084 |
|
|
1085 |
def removefile(filename): |
|
1086 |
if os.path.exists(filename): |
|
1087 |
os.remove(filename) |
|
1088 |
|
|
1089 |
def mkportable(args): |
|
1090 |
cmd = Command(args) |
|
1091 |
try: |
|
1092 |
opts, args = getopt.getopt(cmd.getArgs("mkportable"), "b:s:", [ "build=", "state=" ]) |
|
1093 |
except getopt.GetoptError, err: |
|
1094 |
# print help information and exit: |
|
1095 |
print str(err) # will print something like "option -a not recognized" |
|
1096 |
shorthelp(args) |
|
1097 |
sys.exit(2) |
|
1098 |
|
|
1099 |
build=None |
|
1100 |
state=None |
|
1101 |
for opt, arg in opts: |
|
1102 |
if opt in ("-b", "--build"): |
|
1103 |
build=arg |
|
1104 |
elif opt in ("-s", "--state"): |
|
1105 |
state=arg |
|
1106 |
else: |
|
1107 |
assert False, "unhandled option %r" % opt |
|
1108 |
|
|
1109 |
if build == None: |
|
1110 |
print "Requiered option --build not found." |
|
1111 |
shorthelp(args) |
|
1112 |
sys.exit(2) |
|
1113 |
|
|
1114 |
if state == None: |
|
1115 |
print "Requiered option --state not found." |
|
1116 |
shorthelp(args) |
|
1117 |
sys.exit(2) |
|
1118 |
|
|
1119 |
join = os.path.join |
|
1120 |
build_folder = join(getPackagesRoot(),"dists",getVersion(),"builds",build) |
|
1121 |
if not os.path.isdir(build_folder): |
|
1122 |
print "Can't access the build folder "+build_folder+"." |
|
1123 |
sys.exit(2) |
|
1124 |
|
|
1125 |
portable_folder = join(build_folder,"misc","portable") |
|
1126 |
if not os.path.isdir(portable_folder) : |
|
1127 |
do_prepare_portable(build,state) |
|
1128 |
os.system('cd %s ; ./make-portable' % (portable_folder)) |
|
1129 |
|
|
1130 |
message("Removing previos portable zip files") |
|
1131 |
removefile(join(build_folder,"gvsig-desktop-%s-%s-%s-lin-x86.zip" % (getVersion(),build,state))) |
|
1132 |
removefile(join(build_folder,"gvsig-desktop-%s-%s-%s-lin-x86_x86.zip" % (getVersion(),build,state))) |
|
1133 |
removefile(join(build_folder,"gvsig-desktop-%s-%s-%s-win-x86.zip" % (getVersion(),build,state))) |
|
1134 |
|
|
1135 |
target_folder = join(getPackagesRoot(),"dists",getVersion(),"builds",build,"misc","portable","target") |
|
1136 |
os.chdir(target_folder) |
|
1137 |
|
|
1138 |
message("Creating zip gvsig-desktop-%s-%s-%s-lin-x86.zip" % (getVersion(),build,state)) |
|
1139 |
zipfolder( |
|
1140 |
"gvsig-desktop-%s-%s-%s-lin-x86" % (getVersion(),build,state), |
|
1141 |
join(build_folder,"gvsig-desktop-%s-%s-%s-lin-x86.zip" % (getVersion(),build,state)) |
|
1142 |
) |
|
1143 |
message("Creating zip gvsig-desktop-%s-%s-%s-lin-x86_64.zip" % (getVersion(),build,state)) |
|
1144 |
zipfolder( |
|
1145 |
"gvsig-desktop-%s-%s-%s-lin-x86_64" % (getVersion(),build,state), |
|
1146 |
join(build_folder,"gvsig-desktop-%s-%s-%s-lin-x86_64.zip" % (getVersion(),build,state)) |
|
1147 |
) |
|
1148 |
message("Creating zip gvsig-desktop-%s-%s-%s-win-x86.zip" % (getVersion(),build,state)) |
|
1149 |
zipfolder( |
|
1150 |
"gvsig-desktop-%s-%s-%s-win-x86" % (getVersion(),build,state), |
|
1151 |
join(build_folder,"gvsig-desktop-%s-%s-%s-win-x86.zip" % (getVersion(),build,state)) |
|
1152 |
) |
|
1153 |
|
|
1154 |
#message("Remove temporary folders") |
|
1155 |
#shutil.rmtree(target_folder) |
|
1156 |
|
|
937 | 1157 |
def mkdist(args): |
938 | 1158 |
cmd = Command(args) |
939 | 1159 |
try: |
... | ... | |
941 | 1161 |
except getopt.GetoptError, err: |
942 | 1162 |
# print help information and exit: |
943 | 1163 |
print str(err) # will print something like "option -a not recognized" |
944 |
help(args) |
|
1164 |
shorthelp(args)
|
|
945 | 1165 |
sys.exit(2) |
946 | 1166 |
|
947 | 1167 |
build=None |
... | ... | |
963 | 1183 |
args = "x86_64" |
964 | 1184 |
if not arg in ("x86","x86_64"): |
965 | 1185 |
print "Unsuported platform "+repr(platform)+", must be x86, x86_64 or amd64." |
966 |
help(args) |
|
1186 |
shorthelp(args)
|
|
967 | 1187 |
sys.exit(2) |
968 | 1188 |
platforms = (arg,) |
969 | 1189 |
else: |
... | ... | |
971 | 1191 |
|
972 | 1192 |
if build == None: |
973 | 1193 |
print "Requiered option --build not found." |
974 |
help(args) |
|
1194 |
shorthelp(args)
|
|
975 | 1195 |
sys.exit(2) |
976 | 1196 |
|
977 | 1197 |
if state == None: |
978 | 1198 |
print "Requiered option --state not found." |
979 |
help(args) |
|
1199 |
shorthelp(args)
|
|
980 | 1200 |
sys.exit(2) |
981 | 1201 |
|
982 | 1202 |
# |
... | ... | |
993 | 1213 |
sys.exit(2) |
994 | 1214 |
|
995 | 1215 |
message( "Generating distribution for build "+ build + "...") |
1216 |
message("Recreating index of packages...") |
|
996 | 1217 |
executeCommand("mks", "-s", "-c") |
1218 |
|
|
997 | 1219 |
executeCommand("mkhtml" ) |
998 | 1220 |
|
999 | 1221 |
gvspki_filename = "builds/"+build+"/packages.gvspki" |
1000 |
message( "Coping packages.gvspki to "+ gvspki_filename) |
|
1222 |
message( "Coping packages.gvspki to "+ gvspki_filename + "\n")
|
|
1001 | 1223 |
shutil.copyfile("packages.gvspki", gvspki_filename) |
1002 | 1224 |
shutil.copyfile("packages.gvspki.md5", gvspki_filename +".md5") |
1003 |
|
|
1004 |
exec_extensions = { |
|
1005 |
"lin" : LINUX_EXEC_EXTENSION, |
|
1006 |
"win" : ".exe" |
|
1007 |
} |
|
1008 | 1225 |
|
1226 |
#exec_extensions = { |
|
1227 |
# "lin" : LINUX_EXEC_EXTENSION, |
|
1228 |
# "win" : ".exe" |
|
1229 |
#} |
|
1230 |
|
|
1009 | 1231 |
for cur_os in oss: |
1010 |
exec_extension = exec_extensions[cur_os] |
|
1232 |
exec_extension = ".jar" #exec_extensions[cur_os]
|
|
1011 | 1233 |
for cur_platform in platforms: |
1012 |
message( "Process "+cur_os+"/"+cur_platform)
|
|
1234 |
message( "Creating installers for platform "+cur_os+"/"+cur_platform+"...")
|
|
1013 | 1235 |
gvspks_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-"+cur_platform+".gvspks" |
1014 | 1236 |
online_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-x86-online" + exec_extension |
1015 | 1237 |
|
... | ... | |
1027 | 1249 |
md5sum(online_filename,online_filename+".md5") |
1028 | 1250 |
mychmod(online_filename+".md5",RWALL) |
1029 | 1251 |
|
1252 |
|
|
1030 | 1253 |
executeCommand("mkinstall" , "--addjre"+cur_os, online_filename, gvspks_filename) |
1031 | 1254 |
|
1032 | 1255 |
message( "Renaming files from custom to standard...") |
... | ... | |
1040 | 1263 |
md5sum(target_filename,target_filename+".md5") |
1041 | 1264 |
mychmod(target_filename+".md5",RWALL) |
1042 | 1265 |
|
1266 |
""" |
|
1043 | 1267 |
target_filename = "builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-"+cur_platform+"-"+distribution_name+"-withjre" + exec_extension |
1044 | 1268 |
shutil.move( |
1045 | 1269 |
"builds/"+build+"/gvSIG-desktop-" + VERSION + "-" + build+ "-" + state + "-"+cur_os+"-x86-custom-withjre" + exec_extension, |
... | ... | |
1049 | 1273 |
|
1050 | 1274 |
md5sum(target_filename,target_filename+".md5") |
1051 | 1275 |
mychmod(target_filename+".md5",RWALL) |
1276 |
""" |
|
1277 |
message( "Createds installers for platform "+cur_os+"/"+cur_platform+"\n") |
|
1052 | 1278 |
|
1053 |
message( "Coping html index to browse paqueges of the distro.")
|
|
1054 |
shutil.rmtree("builds/"+build+"/web", ignore_errors=True)
|
|
1055 |
shutil.copytree("web", "builds/"+build+"/web")
|
|
1056 |
f = file("builds/"+build+"/web/index.html","r")
|
|
1057 |
contents = f.read()
|
|
1058 |
f.close()
|
|
1059 |
contents = contents.replace("href=\"../../../web/gvSIG-desktop-", "href=\"../../../../../web/gvSIG-desktop-")
|
|
1060 |
f = file("builds/"+build+"/web/index.html","w")
|
|
1061 |
f.write(contents)
|
|
1062 |
f.close()
|
|
1279 |
message( "Coping html index to browse paqueges of the distro.") |
|
1280 |
shutil.rmtree("builds/"+build+"/web", ignore_errors=True) |
|
1281 |
shutil.copytree("web", "builds/"+build+"/web") |
|
1282 |
f = file("builds/"+build+"/web/index.html","r") |
|
1283 |
contents = f.read() |
|
1284 |
f.close() |
|
1285 |
contents = contents.replace("href=\"../../../web/gvSIG-desktop-", "href=\"../../../../../web/gvSIG-desktop-") |
|
1286 |
f = file("builds/"+build+"/web/index.html","w") |
|
1287 |
f.write(contents) |
|
1288 |
f.close() |
|
1063 | 1289 |
|
1064 |
message( "Process completed.")
|
|
1290 |
message( "\nCreation of distribution completed.\n")
|
|
1065 | 1291 |
|
1066 | 1292 |
|
1067 | 1293 |
|
... | ... | |
1073 | 1299 |
except getopt.GetoptError, err: |
1074 | 1300 |
# print help information and exit: |
1075 | 1301 |
print str(err) # will print something like "option -a not recognized" |
1076 |
help(args) |
|
1302 |
shorthelp(args)
|
|
1077 | 1303 |
sys.exit(2) |
1078 | 1304 |
|
1079 | 1305 |
eerify = False |
... | ... | |
1115 | 1341 |
except getopt.GetoptError, err: |
1116 | 1342 |
# print help information and exit: |
1117 | 1343 |
print str(err) # will print something like "option -a not recognized" |
1118 |
help(args) |
|
1344 |
shorthelp(args)
|
|
1119 | 1345 |
sys.exit(2) |
1120 | 1346 |
|
1121 | 1347 |
index_only = False |
... | ... | |
1163 | 1389 |
if not ( info.code in excludes_pki or info.getFullName() in excludes_pki ): |
1164 | 1390 |
try: |
1165 | 1391 |
if info.hasPki() : |
1166 |
print info.getPkiFilename()
|
|
1392 |
print info.getPkiFilename() |
|
1167 | 1393 |
if interactive : |
1168 | 1394 |
edit_pkginfo_of_package(info.getPkiFilename(), edit_ui) |
1169 | 1395 |
elif len(replaces) < 1: |
... | ... | |
1182 | 1408 |
except getopt.GetoptError, err: |
1183 | 1409 |
# print help information and exit: |
1184 | 1410 |
print str(err) # will print something like "option -a not recognized" |
1185 |
help(args) |
|
1411 |
shorthelp(args)
|
|
1186 | 1412 |
sys.exit(2) |
1187 | 1413 |
|
1188 | 1414 |
replaces = list() |
... | ... | |
1271 | 1497 |
def install(args): |
1272 | 1498 |
cmd = Command(args) |
1273 | 1499 |
try: |
1274 |
opts, args = getopt.getopt(cmd.getArgs("install"), "f", [ "force" ])
|
|
1500 |
opts, args = getopt.getopt(cmd.getArgs("install"), "fS", [ "force","nohttps" ])
|
|
1275 | 1501 |
except getopt.GetoptError, err: |
1276 | 1502 |
# print help information and exit: |
1277 | 1503 |
print str(err) # will print something like "option -a not recognized" |
1278 |
help(args) |
|
1504 |
shorthelp(args)
|
|
1279 | 1505 |
sys.exit(2) |
1280 | 1506 |
|
1281 | 1507 |
force = False |
1508 |
nohttps = False |
|
1282 | 1509 |
for opt, arg in opts: |
1283 | 1510 |
if opt in ("-f", "--force"): |
1284 | 1511 |
force = True |
1512 |
if opt in ("-S", "--nohttps"): |
|
1513 |
nohttps = True |
|
1285 | 1514 |
else: |
1286 | 1515 |
assert False, "unhandled option %r" % opt |
1287 | 1516 |
|
1288 | 1517 |
url_pki = args[0] |
1518 |
if url_pki.startswith("https:") and nohttps : |
|
1519 |
url_pki = "http:" + url_pki[6:] |
|
1520 |
|
|
1289 | 1521 |
message( "Download package index '%s'" % url_pki) |
1290 | 1522 |
temppath_pki= os.path.join("/tmp",os.path.basename(url_pki)) |
1291 | 1523 |
if not downloadFile(url_pki,temppath_pki): |
... | ... | |
1298 | 1530 |
if url_pkg[-7:] == ".gvspki" : |
1299 | 1531 |
msgwarn("Suspicious download-url value. Ends with gvspki, expected gvspkg.") |
1300 | 1532 |
msgwarn("download-url ='%s'." % url_pkg) |
1533 |
|
|
1534 |
if url_pkg.startswith("https:") and nohttps : |
|
1535 |
url_pkg = "http:" + url_pkg[6:] |
|
1536 |
|
|
1301 | 1537 |
message( "Download package '%s'" % url_pkg) |
1302 | 1538 |
temppath_pkg= os.path.join("/tmp",os.path.basename(url_pkg)) |
1303 | 1539 |
if not downloadFile(url_pkg,temppath_pkg): |
... | ... | |
1306 | 1542 |
print # force a newline |
1307 | 1543 |
return 1 |
1308 | 1544 |
folder = os.path.join(getPool(),pkg.getCode()) |
1309 |
if not os.path.isdir(folder) : |
|
1310 |
os.makedirs(folder) |
|
1545 |
makedirs(folder) |
|
1311 | 1546 |
pathname_pki = os.path.join(folder,os.path.basename(url_pki)) |
1312 | 1547 |
if not force and os.path.isfile(pathname_pki) : |
1313 | 1548 |
msgwarn("The package index alreade exist in the pool. Use -f to forrce install.") |
... | ... | |
1343 | 1578 |
fsrc.close() |
1344 | 1579 |
return True |
1345 | 1580 |
|
1581 |
def shorthelp(args): |
|
1582 |
print """ |
|
1583 |
usage: gvspkg [OPTIONS] COMMANDS |
|
1584 |
OPTIONS: |
|
1346 | 1585 |
|
1586 |
-h,--help Muestra esta ayuda |
|
1587 |
-v,--verbose Activa el modo verbose |
|
1588 |
-d,--debug Activa el modo debug. |
|
1589 |
--version ver Fija la version con la que van a trabajar. |
|
1590 |
-r,--package-root root Fija la carpeta del raiz del sistema de paquetes |
|
1591 |
|
|
1592 |
COMMANDS: |
|
1593 |
|
|
1594 |
mkinstall [OPTIONS] install-file packages-file |
|
1595 |
-L, --jrelin=path |
|
1596 |
-W, --jrewin=path |
|
1597 |
-l, --addjrelin |
|
1598 |
-w, --addjrewin |
|
1599 |
-N, --distribution-name=name |
|
1600 |
|
|
1601 |
lsi [OPTIONS] |
|
1602 |
-l, --long-format |
|
1603 |
|
|
1604 |
mks [OPTIONS] |
|
1605 |
-c, --clear-list |
|
1606 |
--excludepkg pkgcode |
|
1607 |
--excludepki pkgcode |
|
1608 |
--exclude pkgcode |
|
1609 |
-s, --include-default-selection |
|
1610 |
-p, --platform=name |
|
1611 |
-i, --index-only |
|
1612 |
-I full-path-to-package, --include full-path-to-package |
|
1613 |
|
|
1614 |
mkdist [OPTIONS] |
|
1615 |
-s STATE, --state=STATE |
|
1616 |
-b BUILD, --build=BUILD |
|
1617 |
-p, --platform=all|x86|x86_64|amd64 |
|
1618 |
-N, --distribution-name=name |
|
1619 |
|
|
1620 |
mkmirror [OPTIONS] |
|
1621 |
-b, --build buildnumber |
|
1622 |
|
|
1623 |
mkhtml [OPTIONS] |
|
1624 |
-c, --clear-list |
|
1625 |
--excludepkg pkgcode |
|
1626 |
--excludepki pkgcode |
|
1627 |
--exclude pkgcode |
|
1628 |
|
|
1629 |
show OPTIONS package-index |
|
1630 |
--verify, -V |
|
1631 |
|
|
1632 |
edit [OPTIONS] package-index |
|
1633 |
--replace=@search@replace@ |
|
1634 |
--onlysign |
|
1635 |
--sign, -S |
|
1636 |
|
|
1637 |
editall [OPTIONS] |
|
1638 |
-c, --clear-list |
|
1639 |
--excludepkg pkgcode |
|
1640 |
--excludepki pkgcode |
|
1641 |
--exclude pkgcode |
|
1642 |
--replace=@search@replace@ |
|
1643 |
--sign, -S |
|
1644 |
|
|
1645 |
install [OPTIONS] url-to-pki |
|
1646 |
-f, --force |
|
1647 |
|
|
1648 |
prepare-portable [OPTIONS] |
|
1649 |
-b, --build |
|
1650 |
-s, --state |
|
1651 |
|
|
1652 |
mkportable [OPTIONS] |
|
1653 |
-b, --build |
|
1654 |
-s, --state |
|
1655 |
|
|
1656 |
La version actual a utilizar es: |
|
1657 |
%s |
|
1658 |
|
|
1659 |
El directorio root de la estructura de packetes actual es: |
|
1660 |
%s |
|
1661 |
""" % (VERSION, GVSPKG_ROOT) |
|
1662 |
|
|
1663 |
|
|
1347 | 1664 |
def help(args): |
1348 | 1665 |
print """ |
1349 | 1666 |
usage: gvspkg [OPTIONS] COMMANDS |
... | ... | |
1419 | 1736 |
por defecto. |
1420 | 1737 |
|
1421 | 1738 |
-p | --platform=name |
1422 |
Indica para que plataforma queremos generar el conjunto de paquetes.
|
|
1739 |
Indica para que plataforma queremos generar el conjunto de paquetes. |
|
1423 | 1740 |
Es un parametro opcional. |
1424 | 1741 |
Sus valores pueden ser: |
1425 | 1742 |
- all (Se incluiren los de todas las plataformas, no solo los multiplataforma) |
... | ... | |
1434 | 1751 |
-i | --index-only |
1435 | 1752 |
No crea el fichero gvspks, solo crea el gvspki |
1436 | 1753 |
|
1437 |
-I full-path-to-package | --include full-path-to-package
|
|
1438 |
A�ade el paquete indicado a la lista de paquetes aunque no coincida para
|
|
1754 |
-I full-path-to-package | --include full-path-to-package |
|
1755 |
A�ade el paquete indicado a la lista de paquetes aunque no coincida para |
|
1439 | 1756 |
la version de gvSIG con la que se esta trabajando. |
1440 | 1757 |
|
1441 | 1758 |
mkdist [OPTIONS] |
1442 |
Crea los ficheros de la distribucion standard para el buil dindicado a partir de
|
|
1759 |
Crea los ficheros de la distribucion standard para el buil dindicado a partir de |
|
1443 | 1760 |
la distribucion online y los paquetes que hayan en el pool para esta version. |
1444 | 1761 |
Ejecuta un "mks" y un "mkhtml" automaticamente para preparar el conjunto de paquetes |
1445 | 1762 |
a incluir en la distribucion, y una vez preparados ejecuta un "mkinsrall" por |
... | ... | |
1456 | 1773 |
dejar los ficheros generados. |
1457 | 1774 |
|
1458 | 1775 |
-p | --platform=name |
1459 |
Indica para que plataforma queremos generar los instalables de gvSIG.
|
|
1776 |
Indica para que plataforma queremos generar los instalables de gvSIG. |
|
1460 | 1777 |
Es un parametro opcional. |
1461 | 1778 |
Sus valores pueden ser: |
1462 | 1779 |
- all (si se indica se generara para x86) |
... | ... | |
1517 | 1834 |
Esta opcion puede indicarse tatas veces como reemplazos se deseen efectuar. |
1518 | 1835 |
|
1519 | 1836 |
--onlysign |
1520 |
firma el package.info sin editarlo de forma interactiva (no invoca al editor antes
|
|
1837 |
firma el package.info sin editarlo de forma interactiva (no invoca al editor antes |
|
1521 | 1838 |
de firmarlo). |
1522 | 1839 |
|
1523 | 1840 |
--sign | -S |
1524 | 1841 |
Firma el package.info tras terminar la edicion (bach o interactiva) |
1525 | 1842 |
|
1526 | 1843 |
editall [OPTIONS] |
1527 |
Edita todos los package.info
|
|
1844 |
Edita todos los package.info |
|
1528 | 1845 |
|
1529 | 1846 |
OPTIONS: |
1530 | 1847 |
|
... | ... | |
1560 | 1877 |
fuerza la sobreescritura de los ficheros en caso de que estos ya existan. |
1561 | 1878 |
|
1562 | 1879 |
Si en la carpeta corriente encuentra un fichero gvspkg.options cargara los |
1563 |
flags indicados ahi como flags por defecto para cada comando. El formato del
|
|
1880 |
flags indicados ahi como flags por defecto para cada comando. El formato del |
|
1564 | 1881 |
fichero es: |
1565 | 1882 |
main=OPCION-POR-DEFECTO |
1566 | 1883 |
mks=OPCOPNES-POR-DEFECTO |
1567 | 1884 |
Donde main indica las opciones por defecto generales, independientes del comando |
1568 |
a ejecutar. "mks" indica las opciones por defecto a usar en el comando "mks", y
|
|
1885 |
a ejecutar. "mks" indica las opciones por defecto a usar en el comando "mks", y |
|
1569 | 1886 |
asi sucesivamente, indicando el nombre del comando seguido de un "=" y las opciones |
1570 | 1887 |
por defecto para ese comando. |
1571 | 1888 |
|
1572 |
Por defecto la version la obtiene del nombre de la carpeta
|
|
1889 |
Por defecto la version la obtiene del nombre de la carpeta |
|
1573 | 1890 |
corriente (%s). Las opciones indicadas en el fichero gvspkg.options tienen prioridad |
1574 | 1891 |
sobre este valor. |
1575 | 1892 |
|
1576 | 1893 |
El directorio root de la estructura de packetes lo buscara en el |
1577 | 1894 |
sitio indicado por la variable de entorno GVPKG_ROOT, y si esta no |
1578 |
esta establecida usara "%s". Las opciones indicadas en el fichero gvspkg.options
|
|
1895 |
esta establecida usara "%s". Las opciones indicadas en el fichero gvspkg.options |
|
1579 | 1896 |
tienen prioridad sobre este valor. |
1580 | 1897 |
|
1581 | 1898 |
""" % (VERSION, GVSPKG_ROOT) |
1582 | 1899 |
|
1583 | 1900 |
def executeCommand(*args): |
1584 |
command = "help" |
|
1901 |
command = "shorthelp"
|
|
1585 | 1902 |
if len(args)>0: |
1586 | 1903 |
command=args[0] |
1587 | 1904 |
|
1905 |
r=1 |
|
1588 | 1906 |
if command=="lsi" : |
1589 |
lsi(args) |
|
1907 |
r=lsi(args)
|
|
1590 | 1908 |
elif command == "mks": |
1591 |
mks(args) |
|
1909 |
r=mks(args)
|
|
1592 | 1910 |
elif command == "edit": |
1593 |
edit(args) |
|
1911 |
r=edit(args)
|
|
1594 | 1912 |
elif command == "editall": |
1595 |
editall(args) |
|
1913 |
r=editall(args)
|
|
1596 | 1914 |
elif command == "show": |
1597 |
show(args) |
|
1915 |
r=show(args)
|
|
1598 | 1916 |
elif command == "mkhtml": |
1599 |
mkhtml(args) |
|
1917 |
r=mkhtml(args)
|
|
1600 | 1918 |
elif command == "mkinstall": |
1601 |
mkinstall(args) |
|
1919 |
r=mkinstall(args)
|
|
1602 | 1920 |
elif command == "install": |
1603 |
install(args) |
|
1921 |
r=install(args)
|
|
1604 | 1922 |
elif command == "mkdist": |
1605 |
mkdist(args) |
|
1923 |
r=mkdist(args)
|
|
1606 | 1924 |
elif command == "mkmirror": |
1607 |
mkmirror(args) |
|
1925 |
r=mkmirror(args) |
|
1926 |
elif command == "mkportable": |
|
1927 |
r=mkportable(args) |
|
1928 |
elif command == "prepare-portable": |
|
1929 |
r=prepare_portable(args) |
|
1930 |
elif command == "help": |
|
1931 |
r=help(args) |
|
1608 | 1932 |
else: |
1609 |
help(args) |
|
1933 |
r=shorthelp(args) |
|
1934 |
return r |
|
1610 | 1935 |
|
1611 |
|
|
1612 | 1936 |
def main(): |
1613 | 1937 |
global DEBUG |
1614 | 1938 |
global VERSION |
... | ... | |
1622 | 1946 |
except getopt.GetoptError, err: |
1623 | 1947 |
# print help information and exit: |
1624 | 1948 |
print str(err) # will print something like "option -a not recognized" |
1625 |
help(None) |
|
1949 |
shorthelp(None)
|
|
1626 | 1950 |
sys.exit(2) |
1627 | 1951 |
|
1628 | 1952 |
for opt, arg in opts: |
1629 | 1953 |
if opt in ("-h", "--help"): |
1630 |
help(args) |
|
1954 |
shorthelp(args)
|
|
1631 | 1955 |
sys.exit() |
1632 | 1956 |
elif opt in ("-d", "--debug"): |
1633 | 1957 |
DEBUG = True |
... | ... | |
1641 | 1965 |
GVSPKG_ROOT = arg |
1642 | 1966 |
else: |
1643 | 1967 |
assert False, "unhandled option" |
1644 |
#
|
|
1968 |
# |
|
1645 | 1969 |
debug("DEBUG=%s" % DEBUG) |
1646 | 1970 |
debug("VERSION=%s" % VERSION) |
1647 | 1971 |
debug("GVSPKG_ROOT=%s" % GVSPKG_ROOT) |
1648 | 1972 |
if GVSPKG_ROOT == None: |
1649 |
help(None) |
|
1973 |
shorthelp(None)
|
|
1650 | 1974 |
else: |
1651 |
executeCommand(*args) |
|
1975 |
r=executeCommand(*args) |
|
1976 |
sys.exit(r) |
|
1652 | 1977 |
|
1653 |
main() |
|
1654 |
|
|
1978 |
main() |
Also available in: Unified diff