id = "pijul" name = "Pijul" homepage = "https://pijul.org" description = "A distributed version control system built on a mathematically sound theory of patches." executables = ["pijul"] [dotfiles] # https://pijul.org/manual/configuration.html — "The location of Pijul's global # configuration depends on the conventions of the user's operating system; # Pijul will first try to instantiate a global configuration in the user's # configuration directory according to [this table]", linking # https://docs.rs/dirs-next/2.0.0/dirs_next/fn.config_dir.html: $XDG_CONFIG_HOME # or $HOME/.config on Linux, $HOME/Library/Application Support on macOS, # %APPDATA% on Windows — that table is [appData]. "If pijul cannot access the # conventional config location, it will fall back to the home directory, using # $HOME/.config/pijul." # # https://docs.rs/pijul-identity/latest/pijul_identity/ draws the layout below # that directory: config.toml holds the global defaults (username, full name, # email), and identities//identity.toml holds one identity's username, # full name, email and public key. paths = [ "[appData]/pijul/config.toml", "[appData]/pijul/identities/*/identity.toml", ] exclude = [] # Same page: beside each identity.toml is a secret_key.json holding the # identity's version, algorithm and key. That key is what signs a change — # whole file. secret = ["[appData]/pijul/identities/*/secret_key.json"] # No machine_lines: the documented config.toml keys are colors, pager, # unrecord_changes, author, template and ignore_kinds — preferences and an # identity, none of them a property of one machine. [commands] format = 1 label = "Pijul" description = "Record changes and move them between repositories. Channels, remotes, diff, log and unrecord are left out." quality = "ai-draft" base = "fig:pijul" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pijul.ts" license = "MIT" [[commands.subcommand]] path = ["record"] label = "Record a change" description = "Create a change from the working copy." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pijul.ts" license = "MIT" [[commands.subcommand.field]] id = "message" label = "Message" type = "string" option = ["--message", "-m"] sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "Record all paths" type = "boolean" option = ["--all", "-a"] sources = ["fig"] [[commands.subcommand.field]] id = "author" label = "Author" type = "string" option = ["--author"] sources = ["fig"] [[commands.subcommand.field]] id = "channel" label = "Channel" type = "string" option = ["--channel"] sources = ["fig"] [[commands.subcommand.field]] id = "ignore_missing" label = "Ignore missing files" type = "boolean" option = ["--ignore-missing"] sources = ["fig"] [[commands.subcommand.field]] id = "amend" label = "Amend change" type = "string" option = ["--amend"] sources = ["fig"] [[commands.subcommand.field]] id = "prefixes" label = "Paths" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.task]] id = "record" label = "Record everything" set = { all = [true] } fields = ["message", "all", "author", "channel"] required = ["message"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["message", "all", "author", "channel"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["ignore_missing", "amend", "prefixes"] [[commands.subcommand]] path = ["clone"] label = "Clone a repository" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pijul.ts" license = "MIT" [[commands.subcommand.field]] id = "remote" label = "Remote" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Target path" type = "string" position = 1 sources = ["fig"] [[commands.subcommand.field]] id = "channel" label = "Channel" type = "string" option = ["--channel"] sources = ["fig"] [[commands.subcommand.field]] id = "change" label = "Single change" type = "string" option = ["--change"] sources = ["fig"] [[commands.subcommand.field]] id = "state" label = "State" type = "string" option = ["--state"] sources = ["fig"] [[commands.subcommand.field]] id = "partial_path" label = "Only this path" type = "string" option = ["--path"] sources = ["fig"] [[commands.subcommand.field]] id = "insecure" label = "Skip certificate check" type = "boolean" option = ["-k"] sources = ["fig"] [[commands.subcommand.task]] id = "clone" label = "Clone" fields = ["remote", "target", "channel", "change", "state", "partial_path", "insecure"] required = ["remote"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["remote", "target", "channel"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["change", "state", "partial_path", "insecure"] [[commands.subcommand]] path = ["init"] label = "Initialise a repository" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pijul.ts" license = "MIT" [[commands.subcommand.field]] id = "path" label = "Directory" type = "path" position = 0 path = { kind = "directory", role = "output" } sources = ["fig"] [[commands.subcommand.field]] id = "kind" label = "Project kind" type = "string" option = ["--kind", "-k"] suggestions = [{ value = "rust", label = "rust" }] sources = ["fig"] [[commands.subcommand.field]] id = "channel" label = "Channel" type = "string" option = ["--channel"] sources = ["fig"] [[commands.subcommand.task]] id = "init" label = "Initialise" fields = ["path", "kind", "channel"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["path", "kind", "channel"] [[commands.subcommand]] path = ["push"] label = "Push changes" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pijul.ts" license = "MIT" [[commands.subcommand.field]] id = "remote" label = "Remote" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "Push all changes" type = "boolean" option = ["--all", "-a"] sources = ["fig"] [[commands.subcommand.field]] id = "from_channel" label = "From channel" type = "string" option = ["--from-channel"] sources = ["fig"] [[commands.subcommand.field]] id = "to_channel" label = "To channel" type = "string" option = ["--to-channel"] sources = ["fig"] [[commands.subcommand.field]] id = "only_path" label = "Only this path" type = "string" option = ["--path"] sources = ["fig"] [[commands.subcommand.task]] id = "push" label = "Push all" set = { all = [true] } fields = ["remote", "all", "from_channel", "to_channel", "only_path"] required = ["remote"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["remote", "all", "from_channel", "to_channel", "only_path"] [[commands.subcommand]] path = ["pull"] label = "Pull changes" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pijul.ts" license = "MIT" [[commands.subcommand.field]] id = "remote" label = "Remote" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "Pull all changes" type = "boolean" option = ["--all", "-a"] sources = ["fig"] [[commands.subcommand.field]] id = "from_channel" label = "From channel" type = "string" option = ["--from-channel"] sources = ["fig"] [[commands.subcommand.field]] id = "to_channel" label = "To channel" type = "string" option = ["--to-channel"] sources = ["fig"] [[commands.subcommand.field]] id = "full" label = "Download full changes" type = "boolean" option = ["--full"] sources = ["fig"] [[commands.subcommand.task]] id = "pull" label = "Pull all" set = { all = [true] } fields = ["remote", "all", "from_channel", "to_channel", "full"] required = ["remote"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["remote", "all", "from_channel", "to_channel", "full"]