ros-template(1) ros-template(1) ros-template - Edit template for ros-init synopsis o 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. o copy simply copies the file as-is. o djula processes the content of the file by template engine, Djula (http://mmontone.github.io/djula/). o 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_.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. o {{name}}: A project name specified in ros-init(1) o {{author}}: An author name extracted from config of Git or whoami o {{email}}: An e-mail address extracted from config of Git or created using whoami and hostname o {{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.