miguelm
committed
on 24 Oct 05
file contact.adp was added on branch oacs-5-2 on 2005-11-30 16:06:53 +0000
openacs-4/.../tcl/apm-install-procs.tcl (+6 -6)
68 68
69 69 ad_proc -public apm_dependency_provided_p {
70 70     {
71 71         -dependency_list [list]
72 72     }
73 73     dependency_uri dependency_version
74 74 } {
75 75     Returns 1 if the current system provides the dependency inquired about.
76 76     Returns -1 if the version number is too low.
77 77     Returns 0 otherwise.
78 78     @param dependency_list Specify this if you want to a check a list of dependencies of form
79 79     {dependency_name dependency_version} in addition to querying the database for what the
80 80     system currently provides.
81 81     @param dependency_uri The dependency that is being checked.
82 82     @param dependency_version The version of the dependency being checked.
83 83 } {
84 84
85 85     set old_version_p 0
86 86     set found_p 0
87 87     ns_log Debug "apm_dependency_provided_p: Scanning for $dependency_uri version $dependency_version"
88       foreach service_version [db_list get_service_versions {}] {
89           set version_p [expr {[apm_version_names_compare $service_version $dependency_version] >= 0}]
90           if { $version_p } {
  88     db_foreach apm_dependency_check {} {
  89         if { $version_p >= 0 } {
91 90             ns_log Debug "apm_dependency_provided_p: Dependency satisfied by previously installed package"
92 91             set found_p 1
93           } else {
  92         } elseif { $version_p == -1 } {
94 93             set old_version_p 1
95 94         }
96 95     }
97 96
98 97     # Can't return while inside a db_foreach.
99 98     if {$found_p} {
100 99         return 1
101 100     }
102 101
103 102     if { $dependency_list ne "" } {
104 103         # They provided a list of provisions.
105 104         foreach prov $dependency_list {
106 105             if {$dependency_uri eq [lindex $prov 0]} {
107 106
108 107                 set provided_version [lindex $prov 1]
109                   set provided_p [expr {[apm_version_names_compare $provided_version $dependency_version] >= 0}]
110                   if { $provided_p } {
  108                 set provided_p [db_string version_greater_p {}]
  109
  110                 if { $provided_p >= 0 } {
111 111                     ns_log Debug "apm_dependency_provided_p: Dependency satisfied in list of provisions."
112 112                     return 1
113 113                 } else {
114 114                     set old_version_p 1
115 115                 }
116 116             }
117 117         }
118 118     }
119 119    
120 120     if { $old_version_p} {
121 121         return -1
122 122     } else {
123 123         return 0
124 124     }
125 125 }
126 126
127 127 ad_proc -private pkg_info_new {
128 128     package_key spec_file_path embeds extends provides requires
129 129     {dependency_p ""} {comment ""}
130 130 } {