Overview
Comment: | Updated allow future versions to deal with manifests that are not linked from the index file |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
34f1255a3811b563738cf78ade6bf500 |
User & Date: | rkeene on 2014-11-11 05:11:52 |
Other Links: | manifest | tags |
Context
2014-11-11
| ||
05:16 | Updated to be more tolerant of future expansions to the manifest format check-in: 859f8f6c54 user: rkeene tags: trunk | |
05:11 | Updated allow future versions to deal with manifests that are not linked from the index file check-in: 34f1255a38 user: rkeene tags: trunk | |
2014-11-10
| ||
20:09 | Updated to include attribute caching since we now disable all FUSE attribute caching check-in: 89eabdaec1 user: rkeene tags: trunk | |
Changes
Modified appfs-mkfs from [994caae026] to [09f445e94a].
︙ | ︙ | |||
107 108 109 110 111 112 113 114 115 116 117 118 119 120 | fi manifestfile="${appfsdir}/sha1/${RANDOM}${RANDOM}${RANDOM}${RANDOM}${RANDOM}.tmp" ( cd "${version}" || exit 1 emit_manifest ) > "${manifestfile}" manifestfile_hash="$(sha1 "${manifestfile}")" mv "${manifestfile}" "${appfsdir}/sha1/${manifestfile_hash}" # XXX:TODO: Determine if this is the latest version | > | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | fi manifestfile="${appfsdir}/sha1/${RANDOM}${RANDOM}${RANDOM}${RANDOM}${RANDOM}.tmp" ( cd "${version}" || exit 1 echo "#manifestmetadata,${package},${os},${cpuArch},${version}" emit_manifest ) > "${manifestfile}" manifestfile_hash="$(sha1 "${manifestfile}")" mv "${manifestfile}" "${appfsdir}/sha1/${manifestfile_hash}" # XXX:TODO: Determine if this is the latest version |
︙ | ︙ |
Modified appfsd.tcl from [99393ab276] to [1afaa96f65].
︙ | ︙ | |||
170 171 172 173 174 175 176 | # Create tables db eval {CREATE TABLE IF NOT EXISTS sites(hostname PRIMARY KEY, lastUpdate, ttl);} db eval {CREATE TABLE IF NOT EXISTS packages(hostname, sha1, package, version, os, cpuArch, isLatest, haveManifest);} db eval {CREATE TABLE IF NOT EXISTS files(package_sha1, type, time, source, size, perms, file_sha1, file_name, file_directory);} # Create indexes db eval {CREATE INDEX IF NOT EXISTS sites_index ON sites (hostname);} | | | 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | # Create tables db eval {CREATE TABLE IF NOT EXISTS sites(hostname PRIMARY KEY, lastUpdate, ttl);} db eval {CREATE TABLE IF NOT EXISTS packages(hostname, sha1, package, version, os, cpuArch, isLatest, haveManifest);} db eval {CREATE TABLE IF NOT EXISTS files(package_sha1, type, time, source, size, perms, file_sha1, file_name, file_directory);} # Create indexes db eval {CREATE INDEX IF NOT EXISTS sites_index ON sites (hostname);} db eval {CREATE INDEX IF NOT EXISTS packages_index ON packages (hostname, sha1, package, version, os, cpuArch);} db eval {CREATE INDEX IF NOT EXISTS files_index ON files (package_sha1, file_name, file_directory);} } proc download {hostname hash {method sha1}} { set url [::appfs::user::construct_url $hostname $hash $method] set file [_cachefile $url $hash] |
︙ | ︙ | |||
303 304 305 306 307 308 309 | appfsd::get_path_info_cache_flush return COMPLETE } proc getpkgmanifest {hostname package_sha1} { | | < | 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | appfsd::get_path_info_cache_flush return COMPLETE } proc getpkgmanifest {hostname package_sha1} { set haveManifest [db onecolumn {SELECT haveManifest FROM packages WHERE sha1 = $package_sha1 LIMIT 1;}] if {$haveManifest} { return COMPLETE } if {![_isHash $package_sha1]} { return FAIL |
︙ | ︙ | |||
335 336 337 338 339 340 341 342 343 344 345 346 347 348 | unset -nocomplain fileInfo set fileInfo(type) [lindex $work 0] set fileInfo(time) [lindex $work 1] set work [lrange $work 2 end] switch -- $fileInfo(type) { "file" { set fileInfo(size) [lindex $work 0] set fileInfo(perms) [lindex $work 1] set fileInfo(sha1) [lindex $work 2] set work [lrange $work 3 end] } | > > > > | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 | unset -nocomplain fileInfo set fileInfo(type) [lindex $work 0] set fileInfo(time) [lindex $work 1] set work [lrange $work 2 end] switch -- $fileInfo(type) { "#manifestmetadata" { unset -nocomplain fileInfo continue } "file" { set fileInfo(size) [lindex $work 0] set fileInfo(perms) [lindex $work 1] set fileInfo(sha1) [lindex $work 2] set work [lrange $work 3 end] } |
︙ | ︙ |