Manpage logo

ros-template -

synopsis  Subcommands  Description  Create template  Apply template  Export and import template  SEE ALSO  AUTHORS 

ros−template − Edit template for ros−init

synopsis

ros template command args...

Subcommands

init template−name

Create new template in local−project directory.

deinit template−name

Remove a template from local−project directory.

list

Show file list and states of the files type chmod rewrite in templates.

checkout [template−name]

When invoked without template−name,this command shows candidates for current templates to operate.If with template−name, this command choose the name as current template.

add [template−name] [files ...]

Add files to current template.First parameter could taken as a template−name when current template are default.

cat [template−name] [files ...]

Show contents in the current template.

edit [template−name] [files ...]

Edit content of files in template using /usr/bin/editor.

path [template−name] [files ...]

Show native path of files in template.

rm [template−name] [files ...]

Remove file form current template.

type [template−name] [type] [files ...]

Change file type. current choice for types are djula or copy {{name}} {{author}} {{email}} {{universal_time}} are available variable in the template file. Withoug files, change default type.

chmod [template−name] [mode] [files ...]

Change file mode bits to generate. specify mode in octal format.

rewrite [template−name] file rewrite−rule

Change file name using djula template.Variables {{name}} {{author}} {{email}} {{universal_time}} are available for rewrite−rule.

export [template−name] [directory]

Export files in current template to current directory.

import [directory]

Import template in current directory

help

Show the subcommand help.

Description

The ros−template(1) command manages templates of projects.

Create template

First, the init sub−command creates an empty template.

$ ros template init sample−template

Many of sub−commands take a template name as first argument. But you can omit it by the checkout sub−commands. After the following, such sub−commands are applied to sample−template.

$ ros template checkout sample−template

Next, the add sub−command adds local file[s] to template. Then, the list sub−command shows information of files in template.

$ echo "Hello {{ author }}!!" > sample.txt
$ ros template add sample.txt
$ ros template list
      copy  sample.txt

The word copy means a strategy when applying the template. There are the following 2 strategies.

copy simply copies the file as−is.

djula processes the content of the file by template engine, Djula (http://mmontone.github.io/djula/).

Available variables are explained later.

The type sub−command changes it. In addition, default strategy (copy) can be changed for each template by the type sub−command without file names (Ex. ros template type djula).

$ ros template type djula sample.txt
$ ros template list
      djula sample.txt

The sample.txt will be simply output as sample.txt in default. But you can change it by the rewrite sub−command. In the following example, it will be output as sample_<project name>.txt.

$ ros template rewrite sample.txt "sample−{{ name }}.txt"
$ ros template list
      djula sample.txt −> "sample−{{ name }}.txt"

Note: Rewrite rules are always processed by Djula irrespective of strategy of the file.

Apply template

ros−init(1) can specify a template.

$ mkdir temp ; cd temp
$ ros init sample−template some−project
$ ls
sample−some−project.txt
$ cat sample−some−project.txt # Assume that "author" is "alien"
Hello alien!!

The file name and its content are processed by Djula as explained in the above. The following variables can be used in defaut.

{{name}}: A project name specified in ros−init(1)

{{author}}: An author name extracted from config of Git or whoami

{{email}}: An e−mail address extracted from config of Git or created using whoami and hostname

{{universal_time}}: A universal time created by get−universal−time function

In addition, you can use original variables as the followings.

$ echo "Hello {{ area }}!!" > sample.txt
$ ros template add sample.txt # Note: It overwrites existing
$ mkdir temp ; cd temp
$ ros init sample−template roswell −−area 51
$ cat sample−roswell.txt
Hello 51!!

Export and import template

Basically, ros−template(1) is designed to internally manage added files.

However, if you want to, for example, manage it using Git in a local directory or to install distributed templates, you can use the export and import sub−commands.

First, the export sub−command exports added files and a setting file roswell.init.<template name>.asd that is internally created and editted.

$ ros template export dir
$ ls dir
roswell.init.sample−template.asd  sample.txt
$ cat dir/sample.txt
Hello {{ area }}!!

Second, the import sub−command imports them.

# Assume that this is another machine...
$ ros template list sample−template # nothing is output
$ ls downloaded
roswell.init.sample−template.asd  sample.txt
$ ros template import downloaded
$ ros template list sample−template
      djula sample.txt −> "sample−{{ name }}.txt"

Note: If there is a template whose name is same, it will be overwritten.

SEE ALSO

ros(1) ros−init(1)

AUTHORS

Roswell Project Team.


Updated 2026-06-01 - jenkler.se | uex.se