summaryrefslogtreecommitdiff
path: root/templates/system/package/repository/node.def
diff options
context:
space:
mode:
authorBob Gilligan <gilligan@vyatta.com>2009-07-30 13:53:48 -0700
committerBob Gilligan <gilligan@vyatta.com>2009-07-30 14:08:21 -0700
commitd89b40e09c5753fabd5e642477c311b82ba82790 (patch)
tree01c4550026dbc528ad5cb355508a338b9d74b0b0 /templates/system/package/repository/node.def
parent4933b638324177d0e5254f13c00e9df1ccbe0c21 (diff)
downloadvyatta-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.def31
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