@@ -203,41 +203,67 @@ write_git_batch_and_execute <- function(
203203 })
204204}
205205
206-
207-
208206# add_creation_metadata --------------------------------------------------
209207
210208# ' @noRd
211209# ' @keywords internal
212210# ' @importFrom sessioninfo package_info
213- add_creation_metadata <- function ()
211+ add_creation_metadata <- function (as_yaml = TRUE , line_sep = " \n " )
214212{
215- calling_function_name <- deparse(sys.calls()[[1 ]])
213+ function_call <- deparse(sys.calls()[[1L ]])
216214
217215 package_name <- " kwb.pkgbuild"
218216
219- meta_creation <- sessioninfo :: package_info(package_name )
217+ metadata <- sessioninfo :: package_info(package_name )
220218
221- meta_creation <- meta_creation [ meta_creation $ package == package_name , ]
219+ metadata <- metadata [ metadata $ package == package_name , ]
222220
223- fmt <- paste(collapse = " \n " , c(
224- " ##############################################################################" ,
225- " ### Autogenerated with R package %s v%s" ,
226- " ### (installed from '%s' source code on %s)" ,
227- " ### by calling the function %s" ,
228- " ### (file created at: %s)" ,
229- " ##############################################################################" ,
230- " " ,
231- " " ))
221+ comment_block <- function (x ) {
222+ separator_line <- kwb.utils :: repeated(" #" , 80L )
223+ paste(collapse = line_sep , c(
224+ separator_line ,
225+ paste(" ###" , x ),
226+ separator_line ,
227+ " " ,
228+ " "
229+ ))
230+ }
232231
233- sprintf(fmt ,
234- meta_creation $ package ,
235- meta_creation $ ondiskversion ,
236- meta_creation $ source ,
237- meta_creation $ date ,
238- calling_function_name ,
239- Sys.time()
240- )
232+ if (as_yaml ) {
233+
234+ info <- list (
235+ " generated-with" = list (
236+ type = " R-package" ,
237+ name = metadata $ package ,
238+ version = metadata $ ondiskversion ,
239+ " installed-from" = metadata $ source ,
240+ " installed-on" = metadata $ date
241+ ),
242+ " generated-by" = list (
243+ user = kwb.utils :: user(),
244+ " function-call" = function_call
245+ ),
246+ " generated-on" = as.character(Sys.time())
247+ )
241248
249+ return (comment_block(
250+ # Create yaml text and split it into separate lines
251+ strsplit(yaml :: as.yaml(info , line.sep = line_sep ), line_sep )[[1L ]]
252+ ))
253+ }
242254
255+ sprintf(
256+ comment_block(c(
257+ " Generated with R package %s v%s" ,
258+ " (installed from '%s' source code on %s)" ,
259+ " by calling %s" ,
260+ " (file created on: %s)"
261+ )),
262+ metadata $ package ,
263+ metadata $ ondiskversion ,
264+ metadata $ source ,
265+ metadata $ date ,
266+ paste(function_call , collapse = paste0(line_sep , " ###" )),
267+ Sys.time()
268+ )
243269}
0 commit comments