Merge "Symlink correct element install type"
This commit is contained in:
commit
016fc76d84
@ -45,6 +45,31 @@ 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.
|
||||
|
||||
Git and Tarballs are treated as source installs. If the element provides an
|
||||
<element-name>-source-install directory under it's install.d hook directory,
|
||||
symlinks to the scripts in that directory will be created under install.d for
|
||||
the image build. Alternatively for the package install type, if the element
|
||||
provides an <element-name>-package-install directory, symlinks will be created
|
||||
for those scripts instead.
|
||||
|
||||
For example, the nova element would provide:
|
||||
|
||||
nova/install.d/nova-package-install/74-nova
|
||||
nova/install.d/nova-source-install/74-nova
|
||||
|
||||
source-repositories will create the following symlink for the package install
|
||||
type:
|
||||
|
||||
install.d/74-nova -> nova-package-install/74-nova
|
||||
|
||||
Or, for the source install type:
|
||||
|
||||
install.d/74-nova -> nova-source-install/74-nova
|
||||
|
||||
All other scripts that exist under install.d for an element will be executed as
|
||||
normal. This allows common install code to live in a script outside of
|
||||
<element-name>-package-install or <element-name>-source-install.
|
||||
|
||||
If multiple elements register a source location with the same <destination>
|
||||
then source-repositories will exit with an error. Care should therefore be taken
|
||||
to only use elements together that download source to different locations.
|
||||
|
@ -108,12 +108,25 @@ function get_repos_for_element(){
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Capture the in-instance repository path for later review / other
|
||||
# elements (like a pypi dependency cache).
|
||||
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
|
||||
if [ "$REPOTYPE" = "package" ]; then
|
||||
REPOINSTALLTYPE="package"
|
||||
else
|
||||
REPOINSTALLTYPE="source"
|
||||
fi
|
||||
|
||||
# Create symlink for correct install type
|
||||
pushd $TMP_HOOKS_PATH/install.d
|
||||
if [ -e $REPONAME-$REPOINSTALLTYPE-install ]; then
|
||||
ln -sf $REPONAME-$REPOINSTALLTYPE-install/* .
|
||||
fi
|
||||
popd
|
||||
|
||||
else
|
||||
echo "Couldn't parse '$line' as a source repository"
|
||||
return 1
|
||||
|
Loading…
Reference in New Issue
Block a user