@@ -155,6 +155,7 @@ func canWriteLanguage(existingLanguages []string, language string, overwriteTemp
155155// It returns the existing languages and the fetched languages
156156// It also returns an error if the templates cannot be read
157157func moveTemplates (localTemplatesDir , extractedPath , templateName string , overwriteTemplate bool , repository string , refName string , sha string ) ([]string , []string , error ) {
158+ template := strings .SplitN (templateName , "@" , 2 )[0 ]
158159
159160 var (
160161 existingLanguages []string
@@ -197,13 +198,26 @@ func moveTemplates(localTemplatesDir, extractedPath, templateName string, overwr
197198 refSuffix = "@" + refName
198199 }
199200
201+ if len (template ) > 0 && language != template {
202+ continue
203+ }
204+
200205 if canWriteLanguage (existingLanguages , language , overwriteTemplate ) {
201206 // Do cp here
202207 languageSrc := filepath .Join (extractedPath , TemplateDirectory , language )
203- languageDest := filepath .Join (localTemplatesDir , language )
208+
209+ var languageDest string
210+ if len (templateName ) > 0 {
211+ languageDest = filepath .Join (localTemplatesDir , templateName )
212+ } else {
213+ languageDest = filepath .Join (localTemplatesDir , language )
214+ if refName != "" {
215+ languageDest += "@" + refName
216+ }
217+ }
218+
204219 langName := language
205220 if refName != "" {
206- languageDest += "@" + refName
207221 langName = language + "@" + refName
208222 }
209223 fetchedLanguages = append (fetchedLanguages , langName )
@@ -281,6 +295,8 @@ func pullTemplate(repository, templateName string, overwriteTemplates bool) erro
281295 }
282296 }
283297
298+ fmt .Printf ("Fetching template %s\n " , templateName )
299+
284300 if err := fetchTemplates (repository , refName , templateName , overwriteTemplates ); err != nil {
285301 return fmt .Errorf ("error while fetching templates: %w" , err )
286302 }
0 commit comments