Changeset e83ccac in tol
- Timestamp:
- Dec 22, 2011, 4:53:49 PM (15 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- e4c69c1
- Parents:
- 6232734
- Location:
- tolbase/lib/toltk
- Files:
-
- 2 edited
-
tolpkg.tcl (modified) (3 diffs)
-
tolpkg_gui.tcl (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tolbase/lib/toltk/tolpkg.tcl
r6232734 re83ccac 40 40 set localRoot [ file normalize \ 41 41 [ toltcl::eval { Text TolPackage::_.localRoot } ] ] 42 set ozaSyncInfo [ file join $localRoot "Client/PackSyncInfo.oza" ] 43 set tolScript [ string map [ list "%O" $ozaSyncInfo ] { 42 set oza [ file join $localRoot "Client/PackSyncInfo.oza" ] 43 if { ![ file exists $oza ] || ![ file readable $oza ] } { 44 return {} 45 } 46 set tolScript [ string map [ list "%O" $oza ] { 44 47 Set { Ois.Load( "%O" )[1] } 45 48 } ] … … 78 81 set localRoot [ file normalize \ 79 82 [ toltcl::eval { Text TolPackage::_.localRoot } ] ] 80 set ozaSyncInfo [ file join $localRoot "Client/VersSyncInfo.oza" ] 81 set tolScript [ string map [ list "%O" $ozaSyncInfo ] { 83 set oza [ file join $localRoot "Client/VersSyncInfo.oza" ] 84 if { ![ file exists $oza ] || ![ file readable $oza ] } { 85 return {} 86 } 87 set tolScript [ string map [ list "%O" $oza ] { 82 88 Set { Ois.Load( "%O" )[1] } 83 89 } ] … … 109 115 set pkgsInfo {} 110 116 foreach d $dirs { 111 set check [ file join $clientRoot $d ${d}.oza ] 112 if { [ file exists $check ] } { 113 lappend pkgsInfo [ GetPackageInfoFromOZA $check ] 114 } 117 lappend pkgsInfo [ list $d [ GetLocalPackageInfo $d ] ] 115 118 } 116 119 return $pkgsInfo 120 } 121 122 proc ::TolPkg::GetLocalPackageInfo { p } { 123 set tolScript [ string map [ list %p $p ] { 124 Set TolPackage::Client::LocalInfo( "%p" ); 125 } ] 126 return [ lindex [ toltcl::eval $tolScript -named 1 ] 1 ] 117 127 } 118 128 -
tolbase/lib/toltk/tolpkg_gui.tcl
r6232734 re83ccac 13 13 variable urlmap 14 14 15 variable localPackageInfo 15 variable packSyncInfo 16 variable versSyncInfo 16 17 variable localVersionInfo 18 variable localMostRecent 19 17 20 variable nodesInfo 18 19 variable localSortedNames20 21 variable treeParents 21 22 … … 631 632 } 632 633 634 proc ::TolPkgGUI::ReadPackSyncInfo { } { 635 variable packSyncInfo 636 637 array unset packSyncInfo 638 foreach p [ ::TolPkg::GetPkgSyncInfo ] { 639 array set packSyncInfo $p 640 } 641 } 642 643 proc ::TolPkgGUI::ReadVersSyncInfo { } { 644 variable versSyncInfo 645 646 array unset versSyncInfo 647 foreach p [ ::TolPkg::GetVersSyncInfo ] { 648 array set versSyncInfo $p 649 } 650 } 651 652 proc ::TolPkgGUI::ReadLocalVersionInfo { } { 653 variable localVersionInfo 654 655 array unset localVersionInfo 656 foreach pv [ ::TolPkg::GetLocalPackages ] { 657 array set localVersionInfo $pv 658 } 659 } 660 661 proc ::TolPkgGUI::GetPkgNode { T repo p } { 662 variable treeParents 663 variable nodesInfo 664 variable packSyncInfo 665 666 if { [ info exists treeParents($p) ] } { 667 return treeParents($p) 668 } 669 if { ![ info exists treeParents($repo) ] } { 670 set treeParents($repo) [ $T insert [ list [ list database_1_16 $repo ] "" ] \ 671 -at end -relative root \ 672 -button auto ] 673 set nodesInfo($treeParents($repo),type) repo 674 } 675 if { [ info exists packSyncInfo($p) ] } { 676 array set packSync $packSyncInfo($p) 677 set lastlocal $packSync(lastlocal) 678 set lastremote $packSync(lastremote) 679 if { $lastlocal eq "" } { 680 set img "package_down_16" 681 set nodeStatus new 682 set statusLabel "new ($lastremote)" 683 } else { 684 set idx [ CmpVersion $lastremote $lastlocal ] 685 if { $idx <= 0 } { 686 # could be -1 (because of date error) 687 set img "cdr_tick_16" 688 set nodeStatus ok 689 set statusLabel "ok" 690 } else { 691 puts "$lastremote > $lastlocal" 692 set img "software_update_16" 693 set nodeStatus upgrade 694 set statusLabel "upgrade ($lastremote)" 695 } 696 } 697 } else { 698 set img "" 699 set nodeStatus unknown 700 set statusLabel "unknown" 701 } 702 set treeParents($p) [ $T insert [ list [ list $img $p ] [ list $statusLabel ] ] \ 703 -at end -relative $treeParents($repo) \ 704 -button auto ] 705 set nodesInfo($treeParents($p),type) pkg 706 set nodesInfo($treeParents($p),status) $nodeStatus 707 } 708 633 709 proc ::TolPkgGUI::FillTreeInfo { T } { 634 variable localPackageInfo 710 variable packSyncInfo 711 variable versSyncInfo 635 712 variable localVersionInfo 636 713 variable treeParents 637 714 variable nodesInfo 715 variable localMostRecent 716 717 array unset treeParents 718 array unset nodesInfo 719 ReadPackSyncInfo 720 ReadVersSyncInfo 721 ReadLocalVersionInfo 638 722 639 723 $T configure -table no -filter yes -columns { 640 724 { {image text} -tags NAME -label "Name" } 641 } 642 643 foreach p [ ::TolPkg::GetPkgSyncInfo ] { 644 array set localPackageInfo $p 645 } 646 array unset treeParents 647 array unset nodesInfo 725 { {text} -tags STATUS -label "Status" } 726 } 727 648 728 # insert package information 649 foreach p [ array names localPackageInfo ] { 650 array set pkg $localPackageInfo($p) 651 set pkgRepo [ expr { [ string range $pkg(url) end-13 end ] eq "repository.php" ? 652 $pkg(url) : "$pkg(url)repository.php" } ] 653 if { ![ info exists treeParents($p) ] } { 654 if { ![ info exists treeParents($pkgRepo) ] } { 655 set treeParents($pkgRepo) [ $T insert [ list [ list database_1_16 $pkgRepo ] ] \ 656 -at end -relative root \ 657 -button auto ] 658 set nodesInfo($treeParents($pkgRepo),type) repo 659 } 660 set lastremote $pkg(lastremote) 661 set lastlocal $pkg(lastlocal) 662 if { $lastlocal eq "" } { 729 foreach p [ lsort [ array names packSyncInfo ] ] { 730 array unset pkg 731 array set pkg $packSyncInfo($p) 732 set url $pkg(url) 733 set pkgRepo [ expr { [ string range $url end-13 end ] eq "repository.php" ? 734 $url : "${url}repository.php" } ] 735 GetPkgNode $T $pkgRepo $p 736 } 737 738 set localVersionNames [ lsort -decreasing -command ::TolPkgGUI::CmpVersion \ 739 [ array names localVersionInfo ] ] 740 741 array unset localMostRecent 742 # insert version information 743 foreach pv $localVersionNames { 744 array unset pkg 745 array set pkg $localVersionInfo($pv) 746 set pkgRoot [ lindex [ split $pv . ] 0 ] 747 set url $pkg(_.autodoc.url) 748 set pkgRepo [ expr { [ string range $url end-13 end ] eq "repository.php" ? 749 $url : "${url}repository.php" } ] 750 GetPkgNode $T $pkgRepo $pkgRoot 751 752 if { ![ info exists localMostRecent($pkgRoot) ] } { 753 # will be used in contextual menu 754 set localMostRecent($pkgRoot) $pv 755 } 756 if { [ info exists versSyncInfo($pv) ] } { 757 array set versSync $versSyncInfo($pv) 758 set dateremote $versSync(dateremote) 759 set datelocal $versSync(datelocal) 760 if { $datelocal eq "TheBegin" } { 663 761 set img "package_down_16" 664 762 set nodeStatus new 763 set statusLabel "new" 665 764 } else { 666 set idx [ CmpVersion $lastremote $lastlocal ]765 set idx [ string compare $dateremote $datelocal ] 667 766 if { $idx <= 0 } { 668 767 # could be -1 (because of date error) 669 768 set img "cdr_tick_16" 670 769 set nodeStatus ok 770 set statusLabel "ok" 671 771 } else { 672 772 set img "software_update_16" 673 set nodeStatus upgrade 773 set nodeStatus update 774 set statusLabel "outdated" 674 775 } 675 776 } 676 set treeParents($p) [ $T insert [ list [ list $img $p ] ] \677 -at end -relative $treeParents($pkgRepo) \678 -button auto ]679 set nodesInfo($treeParents($p),type) pkg680 set nodesInfo($treeParents($p),status) $nodeStatus681 }682 }683 foreach pv [ ::TolPkg::GetVersSyncInfo ] {684 array set localVersionInfo $pv685 }686 set localVersionNames [ lsort -decreasing -command ::TolPkgGUI::CmpVersion \687 [ array names localVersionInfo ] ]688 # insert version information689 array unset pkg690 foreach pv $localVersionNames {691 array set pkg $localVersionInfo($pv)692 set pkgRoot $pkg(name)693 set pkgRepo [ expr { [ string range $pkg(url) end-13 end ] eq "repository.php" ?694 $pkg(url) : "$pkg(url)repository.php" } ]695 if { ![ info exists treeParents($pkgRoot) ] } {696 puts "package root '$pkgRoot' must be already created, creating ..."697 if { ![ info exists treeParents($pkgRepo) ] } {698 puts "repository root '$pkgRepo' must be already created, creating ..."699 set treeParents($pkgRepo) [ $T insert [ list [ list database_1_16 $pkgRepo ] ] \700 -at end -relative root -button auto ]701 set nodesInfo($treeParents($pkgRepo),type) repo702 }703 set treeParents($pkgRoot) [ $T insert [ list [ list {} $pkgRoot ] ] \704 -at end -relative $treeParents($pkgRepo) \705 -button auto ]706 set nodesInfo($treeParents($pkgRoot),type) pkg707 }708 set dateremote $pkg(dateremote)709 set datelocal $pkg(datelocal)710 if { $datelocal eq "TheBegin" } {711 set img "package_down_16"712 set nodeStatus new713 777 } else { 714 set idx [ string compare $dateremote $datelocal ] 715 if { $idx <= 0 } { 716 # could be -1 (because of date error) 717 set img "cdr_tick_16" 718 set nodeStatus ok 719 } else { 720 set img "software_update_16" 721 set nodeStatus update 722 } 723 } 724 set nid [ $T insert [ list [ list $img $pv ] ] \ 778 set img "" 779 set nodeStatus unknown 780 } 781 set nid [ $T insert [ list [ list $img $pv ] [ list $statusLabel ] ] \ 725 782 -at end -relative $treeParents($pkgRoot) -button auto ] 726 783 set nodesInfo($nid,type) pkgver 727 784 set nodesInfo($nid,status) $nodeStatus 728 foreach d $pkg(dependencies) {729 set nid [ $T insert [ list [ list back_to_ou_16 $d ] ] \785 foreach {{} d} $pkg(_.autodoc.dependencies) { 786 set _nid [ $T insert [ list [ list back_to_ou_16 $d ] ] \ 730 787 -at end -relative $nid -button no ] 731 set nodesInfo($ nid,type) pkgdep788 set nodesInfo($_nid,type) pkgdep 732 789 } 733 790 } … … 856 913 proc ::TolPkgGUI::PostContextMenu { T w } { 857 914 variable nodesInfo 858 variable localPackageInfo 915 variable packSyncInfo 916 variable versSyncInfo 859 917 variable localVersionInfo 918 variable localMostRecent 860 919 861 920 $w delete 0 end … … 868 927 lappend selectionInfo($nodesInfo($nid,type)) $nid 869 928 } 870 $w add command -label "[ mc {Add New } ]..." \929 $w add command -label "[ mc {Add New Repository} ]..." \ 871 930 -command ::TolPkgGUI::AddNewRepository 872 931 set lenRepo [ llength $selectionInfo(repo) ] … … 902 961 set pkg [ $T item text $nid 0 ] 903 962 array unset pkgInfo 904 array set pkgInfo $localPackageInfo($pkg) 963 if { [ info exists packSyncInfo($pkg) ] } { 964 array set pkgInfo $packSyncInfo($pkg) 965 } else { 966 set pkgInfo(lastremote) $localMostRecent($pkg) 967 } 905 968 switch -exact $nodesInfo($nid,status) { 906 969 "new" { … … 911 974 } 912 975 "ok" { 976 } 977 "unknown" { 913 978 } 914 979 default { … … 981 1046 $w add command -label [ mc "Export all" ] \ 982 1047 -command [ list ::TolPkgGUI::ExportPackageVersion ] 1048 # SyncInfo import/export 1049 $w add separator 1050 $w add command -label [ mc "Import SyncInfo" ]... \ 1051 -command [ list ::TolPkgGUI::ImportSyncInfo ] 1052 $w add command -label [ mc "Export SyncInfo" ]... \ 1053 -command [ list ::TolPkgGUI::ExportSyncInfo ] 1054 983 1055 } 984 1056 … … 990 1062 991 1063 proc ::TolPkgGUI::SyncServers { } { 1064 ::TolPkg::UpdateRepositoryInfo 992 1065 } 993 1066 … … 1004 1077 } 1005 1078 1079 proc ::TolPkgGUI::ImportSyncInfo { } { 1080 } 1081 1082 proc ::TolPkgGUI::ExportSyncInfo { } { 1083 } 1084 1085 ## 1086 # Export packages -- 1087 # 1088 # p == "" then the last installed version of every package is 1089 # exported, 1090 # 1091 # [ llength $p ]>0 then all specified package is exported, if some 1092 # packages is not installed then it is requested from the remote 1093 # repository. 1094 # 1006 1095 proc ::TolPkgGUI::ExportPackageVersion { {p ""} } { 1096 1007 1097 } 1008 1098
Note: See TracChangeset
for help on using the changeset viewer.
