spiderman-project-manager

Crates.iospiderman-project-manager
lib.rsspiderman-project-manager
version1.0.5
sourcesrc
created_at2023-01-16 23:17:23.86674
updated_at2023-01-17 00:36:43.76673
descriptionThe Weaving Project Manager
homepage
repositoryhttps://github.com/ZortacDev/spiderman/
max_upload_size
id760671
size48,511
Moritz F. Kuntze (ZortacDev)

documentation

README

spiderman: The weaving project manager

Spiderman manages your projects by associating each project with a set of tags and dynamically generating set of views based on these tags.

All projects live within a spiderman project root. All subcommands (except init which creates a new root) operate with respect to the current project root. The project root is either the next upstream directory (from the current working directory) that qualifies as a project root, or the default project root, which can be set in ~/.config/spiderman/config.toml.

A spiderman project root contains a .spiderman directory, which, in turn, contains the raw directory, holding all the projects managed by spiderman, and the schema.toml configuration file, describing how spiderman should build view trees based on tags.

The schema.toml file contains a list of schemas and a set of default tag values to use when a project does not have a tag, but that tag is used in a schema. Schemas consist of / separated components that are either plain strings, in which case they will be used in the view tree verbatim, or strings contained in curly braces ({ and }) in which case the string is interpreted as the name of a tag and substituted with the appropriate tag value when building the view tree.

A project's tags are specified in its spiderman.tags file, which can be edited using the tags subcommand. Each line in this file consists of colon (:) separated values. The first of these is the name of the tag, while the later ones are values for that tag. A project may have multiple values for one tag.

Example

schema.toml:

schemas = [
    "by-organization/{organization}/{type}",
    "by-type/{type}/{organization}"
]

[default_tag_values]
organization = "Personal"
type = "Random"

spiderman.tags:

organization:Uni
type:Software:Writing
Commit count: 23

cargo fmt