Type object
File match plagiarize-me.yaml plagiarize-me.json
Schema URL https://catalog.lintel.tools/schemas/schemastore/plagiarize-me-yaml/latest.json
Source https://www.schemastore.org/plagiarize-me.json

Versions

0.0

Validate with Lintel

npx @lintel/lintel check
Type: object

plagiarize-me.yaml configuration schema

Properties

replace object required

Configuration for strings, files, and file paths to replace in target file

3 nested properties
strings Record<string, string | integer | boolean> required

Strings to find in target project and be replaced with plagiarized project's values

1 nested properties
project string required
vars Record<string, string | integer | boolean>

Variables available to be used for finding and replacing by variable name. For example $var_name: hello would replace string '$var_name' with 'hello' in target project

files string[]

Relative path to target files that will be completely overwritten by source files in the same path

repo object

Git repo of where this plagiarizable project is hosted

2 nested properties
url string required

The git repo url of this project

checkout string

The default branch that downstream projects should checkout when plagiarizing this project

Default: "master"
move object

Files to move in target project from their previous locations

2 nested properties
directories moveItems[]

Directories to move from the target repo to the target repo. Useful for refactoring project structures

files moveItems[]

Files to move from the target repo to the target repo. Useful for refactoring

run object[]

Shell commands to run after plagiarize files are done being copied and updated

create object
2 nested properties
files string[]

Files to copy from plagiarized project if they do not exist in the target project

andClean string[]

Files to remove commented sections from. Eg code between // plagiarize:start:always:delete and // plagiarize:end:always:delete

merge mergeJson | mergeYaml | mergeGit | mergeEnv[]
templates object[]

Files that are used the have similarities between instances of that that. .env files for example are similar and could be templated

push object[]

Definitions

moveItems object
to string required

The path to move the directory to

names string[] required
mergeJson object

Merge json file with jq command line tool pattern matching

type string required

Merge type

Values: "jq"
path string required

Path to file to merge

replace string[]

JQ pattern of property to replace

create string[]

JQ pattern of property to create if the property does not exist in target project file

replaceIf object[]

A set of properties to replace if the condition evaluates to truthy

set Record<string, string>

Set the value of these items to the value. So '.license':MIT would set the license property of the json file to 'MIT'

skip string[]

A list of items to not create, copy, replace, or remove in target file

skipIfNotSameFileName string[]
mergeYaml object

Merge yaml file with yq command line tool pattern matching

type string required

Merge type

Values: "yq"
path string required

Path to file to merge

replace string[]

YQ pattern of property to replace

create string[]

YQ pattern of property to create if the property does not exist in target project file

replaceIf object[]

A set of properties to replace if the condition evaluates to truthy

set Record<string, string>

Set the value of these items to the value. So 'license':MIT would set the license property of the yaml file to 'MIT'

skip string[]

A list of items to not create, copy, replace, or remove in target file

skipIfNotSameFileName string[]
mergeGit object

Merge file using git merge (use with varied reliability)

type string required

Merge type

Values: "git"
path string required

Path to file to merge

mergeEnv object
type string required
Values: "env"
path string required
set Record<string, string>
skip string[]
create string[]

List of Environment variable names to create in target project if they are not already created

skipIfNotSameFileName string[]