id = "projj" name = "Projj" homepage = "https://github.com/popomore/projj" description = "Manage git repositories with directory conventions — clone once, find instantly." executables = ["projj"] [dotfiles] # README, "Configuration": the config file is `~/.projj/config.toml`, and # `projj init` "Creates ~/.projj/config.toml, installs built-in tasks to # ~/.projj/tasks/". Task scripts are part of the configuration, not state — # "Resolution order: [tasks] table → ~/.projj/tasks/ file → raw shell command", # and the README shows a user writing their own script into that directory. paths = [ "~/.projj/config.toml", "~/.projj/tasks/", ] # Same README, feature list: "Zero overhead — no daemon, no cache, no database, # just your filesystem". Nothing projj keeps here is a credential; the git # identity a hook can set (GIT_USER_NAME / GIT_USER_EMAIL) is not one. secret = [] # Read once per `projj` invocation; no resident process holds it. side_effect = false # README config table: `base` is the "Root directory (string or array)" the # repositories are cloned into, and the documented example is a list of # absolute paths (`base = ["/Users/x/projj", "/Users/x/work"]`) — where this # machine keeps its checkouts. `platform`, `tasks` and `hooks` are preferences # that should follow the user. # Where this machine keeps its checkouts is the user's own layout, and the first # thing they would want back when rebuilding it, so it is kept for this device # rather than dropped or copied onto another. [[dotfiles.machine_lines]] file = "~/.projj/config.toml" match = { key_path = ["base"] } scope = "backup" [commands] format = 1 label = "Projj repositories" description = "Add and find repositories managed by projj. Init, import, hooks and sync are left out." quality = "ai-draft" base = "fig:projj" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/projj.ts" license = "MIT" [[commands.subcommand]] path = ["add"] label = "Add a repository" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/projj.ts" license = "MIT" [[commands.subcommand.field]] id = "url" label = "Repository URL" type = "url" position = 0 sources = ["fig"] [[commands.subcommand.task]] id = "add" label = "Add" fields = ["url"] required = ["url"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["url"] [[commands.subcommand]] path = ["find"] label = "Find a repository" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/projj.ts" license = "MIT" [[commands.subcommand.field]] id = "name" label = "Repository name" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.task]] id = "find" label = "Find" fields = ["name"] required = ["name"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["name"]