Merge "Add package support to source-repositories"
This commit is contained in:
commit
d9303ac9af
@ -1,4 +1,4 @@
|
|||||||
With this element other elements can register source code repositories by
|
With this element other elements can register their installation source by
|
||||||
placing their details in the file source-repository-\*. An example
|
placing their details in the file source-repository-\*. An example
|
||||||
of an element "custom-element" that wants to retrieve the ironic source
|
of an element "custom-element" that wants to retrieve the ironic source
|
||||||
from git and pbr from a tarball would be
|
from git and pbr from a tarball would be
|
||||||
@ -42,6 +42,9 @@ Tarballs will be extracted to \<destination\>. Tarballs should contain a
|
|||||||
single topleval directory, regardless of the name of this top level directory
|
single topleval directory, regardless of the name of this top level directory
|
||||||
it will be renamed to \<destination\>
|
it will be renamed to \<destination\>
|
||||||
|
|
||||||
|
The package type indicates the element should install from packages onto the
|
||||||
|
root filesystem of the image build during the install.d phase.
|
||||||
|
|
||||||
If multiple elements register a source location with the same <destination>
|
If multiple elements register a source location with the same <destination>
|
||||||
then source-repositories will exit with an error. Care should therefore be taken
|
then source-repositories will exit with an error. Care should therefore be taken
|
||||||
to only use elements together that download source to different locations.
|
to only use elements together that download source to different locations.
|
||||||
@ -49,3 +52,7 @@ to only use elements together that download source to different locations.
|
|||||||
The repository paths built into the image are stored in
|
The repository paths built into the image are stored in
|
||||||
etc/dib-source-repositories, one repository per line. This permits later review
|
etc/dib-source-repositories, one repository per line. This permits later review
|
||||||
of the repositories (by users or by other elements).
|
of the repositories (by users or by other elements).
|
||||||
|
|
||||||
|
The repository names and types are written to an environment.d hook script at
|
||||||
|
01-source-repositories-environment. This allows later hook scripts during the
|
||||||
|
install.d phase to know which install type to use for the element.
|
||||||
|
@ -10,7 +10,7 @@ function get_repos_for_element(){
|
|||||||
local REPO_SOURCES=$1
|
local REPO_SOURCES=$1
|
||||||
local CACHE_URL=$TMP_HOOKS_PATH/bin/cache-url
|
local CACHE_URL=$TMP_HOOKS_PATH/bin/cache-url
|
||||||
|
|
||||||
local REGEX="^([^ ]+) (git|tar|file) (/[^ ]+) ([^ ]+) ?([^ ]*)$"
|
local REGEX="^([^ ]+) (git|tar|file|package) ?(/[^ ]+)? ?([^ ]+)? ?([^ ]*)$"
|
||||||
|
|
||||||
while read line ; do
|
while read line ; do
|
||||||
|
|
||||||
@ -100,6 +100,9 @@ function get_repos_for_element(){
|
|||||||
sudo curl $REPOLOCATION -o $REPO_DEST
|
sudo curl $REPOLOCATION -o $REPO_DEST
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
package)
|
||||||
|
echo "$REPONAME set to package source type"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported repository type: $REPOTYPE"
|
echo "Unsupported repository type: $REPOTYPE"
|
||||||
return 1
|
return 1
|
||||||
@ -108,6 +111,9 @@ function get_repos_for_element(){
|
|||||||
# Capture the in-instance repository path for later review / other
|
# Capture the in-instance repository path for later review / other
|
||||||
# elements (like a pypi dependency cache).
|
# elements (like a pypi dependency cache).
|
||||||
echo "$REPOPATH" | sudo dd of=$TMP_MOUNT_PATH/etc/dib-source-repositories oflag=append conv=notrunc
|
echo "$REPOPATH" | sudo dd of=$TMP_MOUNT_PATH/etc/dib-source-repositories oflag=append conv=notrunc
|
||||||
|
# Save the $REPOTYPE used so that it can be used later by install.d
|
||||||
|
mkdir -p $TMP_HOOKS_PATH/environment.d
|
||||||
|
echo "export DIB_REPOTYPE_${REPONAME//-/_}=$REPOTYPE" >> $TMP_HOOKS_PATH/environment.d/01-source-repositories-environment
|
||||||
else
|
else
|
||||||
echo "Couldn't parse '$line' as a source repository"
|
echo "Couldn't parse '$line' as a source repository"
|
||||||
return 1
|
return 1
|
||||||
|
Loading…
Reference in New Issue
Block a user