diff options
author | Bob Gilligan <gilligan@vyatta.com> | 2009-07-30 13:53:48 -0700 |
---|---|---|
committer | Bob Gilligan <gilligan@vyatta.com> | 2009-07-30 14:08:21 -0700 |
commit | d89b40e09c5753fabd5e642477c311b82ba82790 (patch) | |
tree | 01c4550026dbc528ad5cb355508a338b9d74b0b0 /templates/system/package/repository/node.def | |
parent | 4933b638324177d0e5254f13c00e9df1ccbe0c21 (diff) | |
download | vyatta-cfg-system-d89b40e09c5753fabd5e642477c311b82ba82790.tar.gz vyatta-cfg-system-d89b40e09c5753fabd5e642477c311b82ba82790.zip |
Bugfix 4700: Move processing to "end" field so that param modifications are handled.
In order to correctly handle cases where parameters are changed after a repository
configuration has been set up, we need to do the work in an "end" field instead
of a "create" field. The "create" field is only executed when the node itself
is created, not when nodes below it are modified.
(cherry picked from commit e500a9e4494649e0ecb523d36b28452f2e9dd326)
Diffstat (limited to 'templates/system/package/repository/node.def')
-rw-r--r-- | templates/system/package/repository/node.def | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/templates/system/package/repository/node.def b/templates/system/package/repository/node.def index 17d5d162..40504bf1 100644 --- a/templates/system/package/repository/node.def +++ b/templates/system/package/repository/node.def @@ -8,16 +8,25 @@ commit:expression: $VAR(./url/) != ""; "Must configure the repository URL" commit:expression: $VAR(./distribution/) != ""; "Must configure the repository distribution" commit:expression: $VAR(./components/) != ""; "Must configure the repository components" -create: sudo bash -c "touch /etc/apt/sources.list && \ - sed -i '\\!# $VAR(@) #!d' /etc/apt/sources.list && \ - echo \"deb $VAR(url/@) $VAR(distribution/@) $VAR(components/@) # $VAR(@) #\" >> /tmp/$$-sources.list && \ - if [ $VAR(password/@) ] || [ $VAR(username/@) ]; \ - then \ +end: + if [ ${COMMIT_ACTION} = 'SET' -o ${COMMIT_ACTION} = 'ACTIVE' ]; then + if [ ${COMMIT_ACTION} = 'SET' ]; then + echo "Adding new entry to /etc/apt/sources.list..." + else + echo "Updating /etc/apt/sources.list..." + fi + sudo bash -c "touch /etc/apt/sources.list && \ + sed -i '\\!# $VAR(@) #!d' /etc/apt/sources.list && \ + echo \"deb $VAR(url/@) $VAR(distribution/@) $VAR(components/@) # $VAR(@) #\" >> /tmp/$$-sources.list && \ + if [ $VAR(password/@) ] || [ $VAR(username/@) ]; \ + then \ sed -i "s!://.*@!://!" /tmp/$$-sources.list; \ sed -i "s!://!://$VAR(username/@):$VAR(password/@)@!" /tmp/$$-sources.list; \ - fi && \ - cat /tmp/$$-sources.list>>/etc/apt/sources.list ; \ - rm -f /tmp/$$-sources.list" - -delete: sudo sh -c "touch /etc/apt/sources.list && \ -sed -i '\\!# $VAR(@) #!d' /etc/apt/sources.list" + fi && \ + cat /tmp/$$-sources.list>>/etc/apt/sources.list ; \ + rm -f /tmp/$$-sources.list" + elif [ ${COMMIT_ACTION} = 'DELETE' ]; then + echo "Removing entry from /etc/apt/sources.list..." + sudo sh -c "touch /etc/apt/sources.list && \ + sed -i '\\!# $VAR(@) #!d' /etc/apt/sources.list" + fi |