From 41ab276fe4d6a18f7bf875b4727474104fc4e136 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 25 Apr 2018 11:31:48 +0200
Subject: [PATCH] scripts/feeds: add support for git feeds with submodules

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 scripts/feeds | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/feeds b/scripts/feeds
index f49cdb3e45..437af035fd 100755
--- a/scripts/feeds
+++ b/scripts/feeds
@@ -133,6 +133,7 @@ my %update_method = (
 		'init_commit'   => "git clone '%s' '%s' && cd '%s' && git checkout -b '%s' '%s' && cd -",
 		'update'	=> "git pull --ff",
 		'update_force'	=> "git pull --ff || (git reset --hard HEAD; git pull --ff; exit 1)",
+		'post_update'	=> "git submodule update --init --recursive",
 		'controldir'	=> ".git",
 		'revision'	=> "git rev-parse --short HEAD | tr -d '\n'"},
 	'src-git-full' => {
@@ -141,6 +142,7 @@ my %update_method = (
 		'init_commit'   => "git clone '%s' '%s' && cd '%s' && git checkout -b '%s' '%s' && cd -",
 		'update'	=> "git pull --ff",
 		'update_force'	=> "git pull --ff || (git reset --hard HEAD; git pull --ff; exit 1)",
+		'post_update'	=> "git submodule update --init --recursive",
 		'controldir'	=> ".git",
 		'revision'	=> "git rev-parse --short HEAD | tr -d '\n'"},
 	'src-gitsvn' => {
@@ -197,6 +199,10 @@ sub update_feed_via($$$$$) {
 		}
 		system("cd '$safepath'; $update_cmd") == 0 or return 1;
 	}
+	if ($m->{'post_update'}) {
+		my $cmd = $m->{'post_update'};
+		system("cd '$safepath'; $cmd") == 0 or return 1;
+	}
 
 	return 0;
 }
-- 
2.30.2