bootstrap_icons::resource_info (public)

 bootstrap_icons::resource_info [ -version version ]

Defined in packages/bootstrap-icons/tcl/resource-procs.tcl

Get information about available version(s) of Bootstrap Icons, from the local filesystem, or from CDN.

Switches:
-version (optional)

Partial Call Graph (max 5 caller/called nodes):
%3 bootstrap_icons::download bootstrap_icons::download (private) bootstrap_icons::resource_info bootstrap_icons::resource_info bootstrap_icons::download->bootstrap_icons::resource_info packages/bootstrap-icons/www/sample.tcl packages/bootstrap-icons/ www/sample.tcl packages/bootstrap-icons/www/sample.tcl->bootstrap_icons::resource_info packages/bootstrap-icons/www/sitewide-admin/index.tcl packages/bootstrap-icons/ www/sitewide-admin/index.tcl packages/bootstrap-icons/www/sitewide-admin/index.tcl->bootstrap_icons::resource_info packages/bootstrap-icons/www/sitewide-admin/sample.tcl packages/bootstrap-icons/ www/sitewide-admin/sample.tcl packages/bootstrap-icons/www/sitewide-admin/sample.tcl->bootstrap_icons::resource_info acs_package_root_dir acs_package_root_dir (public) bootstrap_icons::resource_info->acs_package_root_dir parameter::get_global_value parameter::get_global_value (public) bootstrap_icons::resource_info->parameter::get_global_value

Testcases:
No testcase defined.
Source code:
        variable parameter_info

        #
        # If no version is specified, use the configured value.
        #
        if {$version eq ""} {
            dict with parameter_info {
                set version [::parameter::get_global_value  -package_key $package_key  -parameter $parameter_name  -default $default_value]
            }
        }

        #
        # Setup variables for access via CDN vs. local resources.
        #
        set resourceDir [acs_package_root_dir bootstrap-icons/www/resources]
        set cdnHost     cdnjs.cloudflare.com
        set cdn         //$cdnHost/

        if {[file exists $resourceDir/bootstrap-icons-$version]} {
            #
            # Local version is installed
            #
            set prefix  /resources/bootstrap-icons/bootstrap-icons-$version
            set cdnHost ""
            set cspMap  ""

            #
            # Unfortunately, the structure of the distributed .zip file is a
            # moving target. Sometimes, a sub folder "fonts" is used,
            # sometimes, minifiled versions are included. Check in the
            # filesystem, what we have actually got.
            #
            set fspath $resourceDir/bootstrap-icons-$version

            #
            # Do we have the subdirectory "font"? If yes, use it.
            #
            set subdir [expr {[file isdirectory $fspath/font] ? "font/" : ""}]
            #
            # Do we have a minified version? If yes, use it.
            #
            set fn [expr {[file exists $fspath/${subdir}bootstrap-icons.min.css]
                          ? "${subdir}bootstrap-icons.min.css"
                          : "${subdir}bootstrap-icons.css"}]

            dict set URNs urn:ad:css:bootstrap-icons $fn
        } else {
            #
            # Use CDN
            #
            # cloudflare has e.g. the following resources:
            #
            #    https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.8.1/bootstrap-icons.svg
            #    https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.8.1/font/bootstrap-icons.min.css
            #    https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.8.1/icons/123.svg
            #
            # We just need the CSS file, which is on the CDN in the
            # "font" directory.
            #
            set prefix ${cdn}ajax/libs/bootstrap-icons/$version/font

            #
            # Use always the minified version over the CDN
            #
            dict set URNs   urn:ad:css:bootstrap-icons bootstrap-icons.min.css
            dict set cspMap urn:ad:css:bootstrap-icons [subst {
                style-src $cdnHost
                font-src $cdnHost
            }]
        }

        #
        # Return the dict with at least the required fields
        #
        lappend result  resourceName "Bootstrap Icons"  resourceDir $resourceDir  cdn $cdn  cdnHost $cdnHost  prefix $prefix  cssFiles {}  jsFiles  {}  extraFiles {}  downloadURLs https://github.com/twbs/icons/releases/download/v${version}/bootstrap-icons-${version}.zip  cspMap $cspMap  urnMap $URNs  versionCheckAPI {cdn cdnjs library bootstrap-icons count 1}  parameterInfo $parameter_info  configuredVersion $version

        return $result
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: