From 5018753152c48a1356f27264d3403f074c095639 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 14:33:35 -0500 Subject: [PATCH 1/9] mommy has lots to explain~ --- .gitignore | 5 +- book/book.toml | 6 ++ book/src/README.md | 30 ++++++ book/src/SUMMARY.md | 18 ++++ book/src/contributing/README.md | 24 +++++ book/src/contributing/adding-messages.md | 3 + book/src/contributing/adding-moods.md | 3 + book/src/contributing/adding-variables.md | 3 + book/src/contributing/concepts.md | 109 ++++++++++++++++++++++ book/src/customize/README.md | 3 + book/src/customize/moods.md | 3 + book/src/customize/never-nsfw.md | 13 +++ book/src/customize/nsfw.md | 93 ++++++++++++++++++ book/src/customize/roles-and-pronouns.md | 23 +++++ book/src/customize/true-roles.md | 44 +++++++++ book/src/guides/README.md | 1 + book/src/guides/bash.md | 5 + book/src/guides/powershell.md | 5 + 18 files changed, 389 insertions(+), 2 deletions(-) create mode 100644 book/book.toml create mode 100644 book/src/README.md create mode 100644 book/src/SUMMARY.md create mode 100644 book/src/contributing/README.md create mode 100644 book/src/contributing/adding-messages.md create mode 100644 book/src/contributing/adding-moods.md create mode 100644 book/src/contributing/adding-variables.md create mode 100644 book/src/contributing/concepts.md create mode 100644 book/src/customize/README.md create mode 100644 book/src/customize/moods.md create mode 100644 book/src/customize/never-nsfw.md create mode 100644 book/src/customize/nsfw.md create mode 100644 book/src/customize/roles-and-pronouns.md create mode 100644 book/src/customize/true-roles.md create mode 100644 book/src/guides/README.md create mode 100644 book/src/guides/bash.md create mode 100644 book/src/guides/powershell.md diff --git a/.gitignore b/.gitignore index 4ce0859..066e319 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /target - # Generated by `oranda generate ci` -public/ \ No newline at end of file +public/ +# Generated by mdbook +book/book/ \ No newline at end of file diff --git a/book/book.toml b/book/book.toml new file mode 100644 index 0000000..7b77cfe --- /dev/null +++ b/book/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["Aria Beingessner"] +language = "en" +multilingual = false +src = "src" +title = "cargo-mommy" diff --git a/book/src/README.md b/book/src/README.md new file mode 100644 index 0000000..d6eeaea --- /dev/null +++ b/book/src/README.md @@ -0,0 +1,30 @@ +# Introduction + +Mommy's here to support you when running cargo~ ❤️ + +[See the homepage for installation instructions~](https://faultlore.com/cargo-mommy/) + +Run whatever cargo command you would normally but add mommy after cargo~ + +``` +cargo mommy check + + Checking bappy-script v0.1.3 +error: expected one of `!` or `::`, found `passes` + --> src\main.rs:20:6 + | +20 | mods passes; + | ^^^^^^ expected one of `!` or `::` + +error: could not compile `bappy-script` (bin "bappy-script") due to previous error +mommy knows her little girl can do better~ 💞 +``` + +By default mommy is kind to her little girl, but she can become anything you wants~ + +* [I want mommy to call myself or herself something else](./customize/roles-and-pronouns.md) +* [I want `cargo mommy` to be `cargo daddy` (or anything else)](./customize/true-roles.md) +* [I want mommy to work with our plurality](./customize/true-roles.md) +* [I want mommy to have a totally different mood](./customize/moods.md) +* [I want mommy to sdsdfdsfdfsd me (enabling nsfw features)](./customize/nsfw.md) +* [I never want mommy to sdsdfdsfdfsd me (compiling out all nsfw features)](./customize/never-nsfw.md) diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md new file mode 100644 index 0000000..58b9b9a --- /dev/null +++ b/book/src/SUMMARY.md @@ -0,0 +1,18 @@ +# Summary + +- [Introduction](./README.md) +- [Customizing](./customize/README.md) + - [Roles And Pronouns](./customize/roles-and-pronouns.md) + - [Moods](./customize/moods.md) + - [True Roles](./customize/true-roles.md) + - [NSFW Features](./customize/nsfw.md) + - [Removing NSFW Features](./customize/never-nsfw.md) +- [Guides](./guides/README.md) + - [Powershell (Windows)](./guides/powershell.md) + - [Bash](./guides/bash.md) +- [Contributing](./contributing/README.md) + - [Concepts](./contributing/concepts.md) + - [Adding New Messages](./contributing/adding-messages.md) + - [Adding A New Variable](./contributing/adding-variables.md) + - [Adding A New Mood](./contributing/adding-moods.md) + diff --git a/book/src/contributing/README.md b/book/src/contributing/README.md new file mode 100644 index 0000000..a360ccb --- /dev/null +++ b/book/src/contributing/README.md @@ -0,0 +1,24 @@ +# Contributing + +These are the technical rules of mommy club~ + +* mommy as a project is always going to *default* to being mommy, and *default* to loving her little girl, even if she also does everything she can to be customized for people who don't want that~ 💖 +* there is no such thing as "being too extra" about mommy, mommy is so very overengineered and that is wonderful~ 💖 +* mommy is sfw and kind first and foremost, keep the hard stuff in [its corner](../customize/nsfw.md)~ 🖤 + * `--no-default-features` *has* to [make mommy forget how to be nsfw](../customize/never-nsfw.md)~ +* if you add a feature, make sure it respects mommy's [True Roles](../customize/true-roles.md)~ +* mommy should try her best to make sure the underlying commands she invokes work correctly~ +* if mommy's functionality *can* be driven by [responses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json), it should be~ +* commit messages and comments should ideally be in mommy's voice but sometimes that's exhausting to sustain for complex technical details so this is not enforced, just encouraged~ 💕 + +These are the social rules of mommy club~ + +* mommy loves you~ ❤️ +* you should be kind to others~ 💖 +* Gankra is the arbiter of the previous detail until further notice~ 💙 + +For most contributions, you probably just need to [edit responses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json)~ + +See the next pages for details~ + + diff --git a/book/src/contributing/adding-messages.md b/book/src/contributing/adding-messages.md new file mode 100644 index 0000000..25d75f8 --- /dev/null +++ b/book/src/contributing/adding-messages.md @@ -0,0 +1,3 @@ +# Adding New Messages + +TODO: add proper guide, see [concepts for now](./concepts.md) diff --git a/book/src/contributing/adding-moods.md b/book/src/contributing/adding-moods.md new file mode 100644 index 0000000..8afdf1d --- /dev/null +++ b/book/src/contributing/adding-moods.md @@ -0,0 +1,3 @@ +# Adding A New Mood + +TODO: add proper guide, see [concepts for now](./concepts.md) diff --git a/book/src/contributing/adding-variables.md b/book/src/contributing/adding-variables.md new file mode 100644 index 0000000..158c06d --- /dev/null +++ b/book/src/contributing/adding-variables.md @@ -0,0 +1,3 @@ +# Adding A New Variable + +TODO: add proper guide, see [concepts for now](./concepts.md) diff --git a/book/src/contributing/concepts.md b/book/src/contributing/concepts.md new file mode 100644 index 0000000..098d302 --- /dev/null +++ b/book/src/contributing/concepts.md @@ -0,0 +1,109 @@ +# Concepts + +At its heart, mommy exists to invoke cargo, check if the result was a success or failure, and print an appropriate message. +Printing that message involves reading a bunch of configuration from env-vars to define pools of values to randomly select from, then: + +1. randomly [deciding what mood the response should have](#moods) +2. using the success/failure state to select which pool of answer from that mood to use (positive, negative, overflow) +3. randomly selecting a message from that pool + +cargo-mommy has 3 major components~ + +1. [responses.json, where data lives](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) +2. [build.rs, that digests that data and coverts it to rust code](https://github.com/Gankra/cargo-mommy/blob/main/build.rs) +3. [main.rs, that handles execution](https://github.com/Gankra/cargo-mommy/blob/main/src/main.rs) + +The build.rs is extremely extra, but it's actually kind of useful for making it tolerable to [disable nsfw features](../customize/never-nsfw.md). In theory it also makes cargo-mommy very efficient and fast, which, again, is very extra. + + + +## Responses.json + +The ""schema"" of responses.json is currently the following (`$SOME_VALUE` here is an ~arbitrary string): + +```text +{ + "moods": { + "$MOOD": { + "positive": ["$GOOD_MESSAGE", ...] + "negative": ["$BAD_MESSAGE" ...] + "overflow": ["$E_TOO_MANY_MOMMY_MESSAGE", ...] + "spiciness": "chill" | "thirsty" | "yikes" | , + } + } + "vars": { + "$VAR": { + "defaults": ["$VALUE", ...] + "env_key": "$KEY" | + "spiciness": "chill" | "thirsty" | "yikes" | , + } + } +} +``` + + + + +### Moods + +Moods contain [pools of messages](#message-pools) with a particular feeling/intensity. This was originally introduced to allow the user to opt into [nsfw functionality](../customize/nsfw.md), but exists more generically than that, and we'd be happy to have more sfw moods like "furry" or whatever. + +The "chill" mood is the default mood, and is assumed to exist. + +Spiciness is used to determine whether a mood's contents should be considered "nsfw" content, either "chill", "thirsty", or "yikes". Everything spicier than "chill" is considered "nsfw". There's no hard and fast rules here, just vibes. Spicier moods also gain access to spicier [variables](#variables). + +There are 2 moods that have the same names as their equivalent spiciness level, which may help determine how nsfw a new mood is. + + + + +### Message Pools + +Each mood must specify 3 pools of [messages](#messages) to select from: + +* "positive" messages appear when the cargo command mommy invoked was a success +* "negative" messages appear when the cargo command mommy invoked was a failure +* "overflow" messages appear when it was recursively invoked too many times (to break out of infinite loops from misconfiguration) + + + +### Messages + +Messages are strings that optionally contain [`{variables}`](#variables) that need to be substituted (emotes don't appear in the message, they're just auto-applied to the end of every message). + +Some examples: + +"{role} thinks {pronoun} little {affectionate_term} earned a big hug~" + +Becomes something like: + +"Mommy thinks her little girl earned a big hug~ ❤️" + +Messages have the following conventions: + +* `{role} ends {pronoun} messages with tildes~` +* `*{role} performs actions with asterisks*` +* `*{role} combines both*\nwith newlines~` + + + + + +### Variables + +Variables are a pool of values that will be randomly selected from, and substituted into the templates. + +The variables "mood", "emote", "pronoun", and "role" are explicitly named in cargo_mommy's main.rs, and are assumed to appear at the start of `vars` in that exact order. + +Spiciness is used to determine whether a variable's contents should be considered "nsfw" -- either "chill", "thirsty", or "yikes". Everything spicier than "chill" is considered "nsfw". There's no hard and fast rules here, just vibes. Spicier variables should only ever be used by spicier [moods](#moods). + +env_key is used to define a SCREAMING_CASE env-var `CARGO_{TRUE_ROLE}S_{ENV_KEY}S` (note the two extra S's!). For instance the "mood" key would be `CARGO_MOMMYS_MOODS`. + +If a variable's env-var isn't set, it will use its defaults as the pool. ("role" has no default value in responses.json because it has special logic to default to the [True Role](../customize/true-roles.md) when no custom roles are set.) + +If a variable's env-var *is* set, mommy will parse it as a ISO Standard Pronouns List, which is to say a slash-delimited list like "she/he/they", "girl/boy", or "daddy", and use those values as the pool. + +Each time mommy encounters a variable that needs to be substituted in a message, it will randomly select a new value from the pool. + +At the end of a message, mommy will randomly decide whether to include an emote. + diff --git a/book/src/customize/README.md b/book/src/customize/README.md new file mode 100644 index 0000000..f754f80 --- /dev/null +++ b/book/src/customize/README.md @@ -0,0 +1,3 @@ +# Customizing + +UHHH see the sub-pages, or the listing in [the intro](../intro.md) \ No newline at end of file diff --git a/book/src/customize/moods.md b/book/src/customize/moods.md new file mode 100644 index 0000000..42b2412 --- /dev/null +++ b/book/src/customize/moods.md @@ -0,0 +1,3 @@ +# Moods + +TODO: flesh this out, see [roles and pronouns for now](./roles-and-pronouns.md) diff --git a/book/src/customize/never-nsfw.md b/book/src/customize/never-nsfw.md new file mode 100644 index 0000000..046da31 --- /dev/null +++ b/book/src/customize/never-nsfw.md @@ -0,0 +1,13 @@ +# Removing NSFW Features + +By default mommy operates in a totally safe-for-work mode, where she just provides positive encouragement, but she has support for more intense experiences, and if that concerns you, you can statically compile them out with feature flags~ + +To get a totally safe binary, all you need to do is disable mommy's default features~ + +``` +cargo install cargo-mommy --no-default-features +``` + +All nsfw strings, moods, and variables will be eliminated from the binary, leaving only encouragement~ ❤️ + +...and the "ominous" mood too~ 🎭 \ No newline at end of file diff --git a/book/src/customize/nsfw.md b/book/src/customize/nsfw.md new file mode 100644 index 0000000..b99615b --- /dev/null +++ b/book/src/customize/nsfw.md @@ -0,0 +1,93 @@ +# NSFW Features + +Good pet~ ❤️ + +All of mommy's NSFW content is hidden behind extra moods, see below~ + + +## I DONT WANT TO BE HERE + +Then [disable the nsfw features completely](./never-nsfw.md) + + + +## Moods + +In addition to [the SFW moods](./moods.md), `CARGO_MOMMYS_MOODS` also takes these NSFW values~ + +* thirsty: teasing mommy, pretty horny~ 💕 +* yikes: dommy mommy step on me, explicit sex and bdsm~ 🖤 + +You can enable "true mommy chaos mode" by setting `CARGO_MOMMYS_MOODS="chill/ominous/thirsty/yikes"`, making mommy oscillate wildly between light positive affirmation, screaming about the end of days, and trying to break you in half~ 💕 + + +## Variables + +The "yikes" mood also has access to the following variables~ + +* `CARGO_MOMMYS_PARTS` - what part of mommy you should crave~ (default: "milk") +* `CARGO_MOMMYS_FUCKING` - what to call mommy's pet~ (default: "slut/toy/pet/pervert/whore") + + + +## Examples: Thirsty + +
+Here's some examples of mommy being thirsty~ ❤️ + +``` +*tugs your leash* +that's a VERY good girl~ 💞 +``` + +``` +*smooches your forehead* +good job~ +``` + +``` +are you just keysmashing now~? +cute~ 💖 +``` + +``` +if you don't learn how to code better, mommy is going to put you in time-out~ 💓 +``` +
+ +## Examples: Yikes + +
+Here's some examples of mommy being yikes~ 🖤 + +``` +good slut~ +you've earned five minutes with the buzzy wand~ 💗 +``` + +``` +*slides her finger in your mouth* +that's a good little toy~ ❤️ +``` + +``` +get on your knees and beg mommy for forgiveness you pervert~ +``` + +``` +mommy is starting to wonder if you should just give up and become her breeding stock~ 💗 +``` +
+ + +## Buttplug.io Support + +[Buttplug.io](https://buttplug.io/) is an open-source standards and software project for controlling intimate hardware, including sex toys, fucking machines, and more. + +Mommy doesn't integrate it, but she is compatible with [cargo-vibe](https://github.com/Shadlock0133/cargo-vibe) which does~ 💕 + +``` +cargo mommy vibe check +``` + +Should always Just Work~ 🖤 diff --git a/book/src/customize/roles-and-pronouns.md b/book/src/customize/roles-and-pronouns.md new file mode 100644 index 0000000..76a8316 --- /dev/null +++ b/book/src/customize/roles-and-pronouns.md @@ -0,0 +1,23 @@ +# Roles And Pronouns + +TODO: flesh this out + +Mommy will read the following environment variables to make her messages better for you~ ❤️ + +* `CARGO_MOMMYS_LITTLE` - what to call you~ (default: "girl") +* `CARGO_MOMMYS_PRONOUNS` - what pronouns mommy will use for themself~ (default: "her") +* `CARGO_MOMMYS_ROLES` - what role mommy will have~ (default "mommy") +* `CARGO_MOMMYS_EMOTES` - what emotes mommy will have~ (default "❤️/💖/💗/💓/💞") +* `CARGO_MOMMYS_MOODS` - picks the set of possible responses~ (default: "chill", possible values "chill", "ominous") + +All of these options can take a `/` separated list. Mommy will randomly select one of them whenever she talks to you~ + +For example, the phrase "mommy loves her little girl~ 💞" is "CARGO_MOMMYS_ROLE loves CARGO_MOMMYS_PRONOUNS little CARGO_MOMMYS_LITTLE~" + +So if you set `CARGO_MOMMYS_ROLES="daddy"`, `CARGO_MOMMYS_PRONOUNS="his/their"`, and `CARGO_MOMMYS_LITTLE="boy/pet/baby"` then you might get any of + +* daddy loves their little boy~ ❤️ +* daddy loves his little pet~ +* daddy loves their little baby~ 💗 + +And so on~ 💓 diff --git a/book/src/customize/true-roles.md b/book/src/customize/true-roles.md new file mode 100644 index 0000000..1d36d2a --- /dev/null +++ b/book/src/customize/true-roles.md @@ -0,0 +1,44 @@ +# True Roles + +While [Variables like Roles And Pronouns](./roles-and-pronouns.md) change *output*, the True Role exists to change *input*~ + +> TL;DR +> +> ``` +> cargo mommy i mean daddy +> mommy is now daddy~ +> cargo daddy check +> daddy loves you~ +> ``` + +This feature is useful for: + +* folks who *really* don't want to say/see "mommy" ever again +* folks who want to maintain several independent sets of configuration (perhaps for plural reasons) + +Specifically if you change the True Role from "mommy" to e.g. "daddy", the following changes will occur: + +* You will be able to invoke it as `cargo daddy` +* Instead of reading env vars like `CARGO_MOMMYS_MOODS` for config, it will read `CARGO_DADDYS_MOODS` (note the extra "S"!) +* If `CARGO_{TRUE_ROLE}S_ROLE` isn't set, it will default to the True Role + +The value "daddy" is abitrary here, you can pick any value. Make yourself a `cargo burger-chimes` if you want! + +All you have to do to change the True Role is to rename the cargo-mommy(.exe) binary to cargo-daddy(.exe). + + +## I Mean... + +As a convenience, `cargo mommy i mean daddy` finds the current binary and makes a *copy* (not a symlink or move) with the new name for you. Execution is halted immediately after seeing such an incantation, so all other input is ignored. + +`cargo mommy i mean mommy`, or any other "idempotent i mean" is treated as sugar for "cargo mommy mommy" (which has always worked and produces 2 messages). e.g. + +``` +cargo mommy i mean mommy i mean mommy i mean mommy check + Finished dev [unoptimized + debuginfo] target(s) in 0.01s +that's mommy's clever little girl~ 💓 +*wraps you in a big hug* 💗 +you did it~! ❤️ +good girl~ +mommy's so proud of you~ +``` \ No newline at end of file diff --git a/book/src/guides/README.md b/book/src/guides/README.md new file mode 100644 index 0000000..50a8673 --- /dev/null +++ b/book/src/guides/README.md @@ -0,0 +1 @@ +# Guides diff --git a/book/src/guides/bash.md b/book/src/guides/bash.md new file mode 100644 index 0000000..9fd6d83 --- /dev/null +++ b/book/src/guides/bash.md @@ -0,0 +1,5 @@ +# Bash + +TODO: tips on setting up persistent config for mommy in ~/.bashrc or ~/.profile + +https://github.com/Gankra/cargo-mommy/pull/41 diff --git a/book/src/guides/powershell.md b/book/src/guides/powershell.md new file mode 100644 index 0000000..2233ae8 --- /dev/null +++ b/book/src/guides/powershell.md @@ -0,0 +1,5 @@ +# Powershell (Windows) + +TODO: tips on setting up persistent config for mommy when using powershell + +https://github.com/Gankra/cargo-mommy/pull/41 From 580788d94e8f65d261480c4ef147440984921926 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 15:34:40 -0500 Subject: [PATCH 2/9] Apply suggestions from mommy's helper~ Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com> --- .gitignore | 2 +- book/src/README.md | 2 +- book/src/contributing/README.md | 2 +- book/src/contributing/concepts.md | 12 ++++++------ book/src/customize/true-roles.md | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 066e319..3593fe5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ # Generated by `oranda generate ci` public/ # Generated by mdbook -book/book/ \ No newline at end of file +book/book/ diff --git a/book/src/README.md b/book/src/README.md index d6eeaea..da437be 100644 --- a/book/src/README.md +++ b/book/src/README.md @@ -20,7 +20,7 @@ error: could not compile `bappy-script` (bin "bappy-script") due to previous err mommy knows her little girl can do better~ 💞 ``` -By default mommy is kind to her little girl, but she can become anything you wants~ +By default mommy is kind to her little girl, but she can become anything you want~ * [I want mommy to call myself or herself something else](./customize/roles-and-pronouns.md) * [I want `cargo mommy` to be `cargo daddy` (or anything else)](./customize/true-roles.md) diff --git a/book/src/contributing/README.md b/book/src/contributing/README.md index a360ccb..96aad32 100644 --- a/book/src/contributing/README.md +++ b/book/src/contributing/README.md @@ -2,7 +2,7 @@ These are the technical rules of mommy club~ -* mommy as a project is always going to *default* to being mommy, and *default* to loving her little girl, even if she also does everything she can to be customized for people who don't want that~ 💖 +* mommy as a project is always going to *default* to being mommy, and *default* to loving her little girl, even if she also does everything she can to be customizable for people who don't want that~ 💖 * there is no such thing as "being too extra" about mommy, mommy is so very overengineered and that is wonderful~ 💖 * mommy is sfw and kind first and foremost, keep the hard stuff in [its corner](../customize/nsfw.md)~ 🖤 * `--no-default-features` *has* to [make mommy forget how to be nsfw](../customize/never-nsfw.md)~ diff --git a/book/src/contributing/concepts.md b/book/src/contributing/concepts.md index 098d302..90d553a 100644 --- a/book/src/contributing/concepts.md +++ b/book/src/contributing/concepts.md @@ -1,16 +1,16 @@ # Concepts -At its heart, mommy exists to invoke cargo, check if the result was a success or failure, and print an appropriate message. +At her heart, mommy exists to invoke cargo, check if the result was a success or failure, and print an appropriate message~ Printing that message involves reading a bunch of configuration from env-vars to define pools of values to randomly select from, then: -1. randomly [deciding what mood the response should have](#moods) -2. using the success/failure state to select which pool of answer from that mood to use (positive, negative, overflow) -3. randomly selecting a message from that pool +1. randomly [decide what mood the response should have](#moods) +2. use the success/failure state to select which pool of answers from that mood to use (positive, negative, overflow) +3. randomly select a message from that pool cargo-mommy has 3 major components~ 1. [responses.json, where data lives](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) -2. [build.rs, that digests that data and coverts it to rust code](https://github.com/Gankra/cargo-mommy/blob/main/build.rs) +2. [build.rs, that digests that data and converts it to rust code](https://github.com/Gankra/cargo-mommy/blob/main/build.rs) 3. [main.rs, that handles execution](https://github.com/Gankra/cargo-mommy/blob/main/src/main.rs) The build.rs is extremely extra, but it's actually kind of useful for making it tolerable to [disable nsfw features](../customize/never-nsfw.md). In theory it also makes cargo-mommy very efficient and fast, which, again, is very extra. @@ -46,7 +46,7 @@ The ""schema"" of responses.json is currently the following (`$SOME_VALUE` here ### Moods -Moods contain [pools of messages](#message-pools) with a particular feeling/intensity. This was originally introduced to allow the user to opt into [nsfw functionality](../customize/nsfw.md), but exists more generically than that, and we'd be happy to have more sfw moods like "furry" or whatever. +Moods contain [pools of messages](#message-pools) with a particular feeling/intensity. This was originally introduced to allow the user to opt into [nsfw functionality](../customize/nsfw.md). Its functionality is more general than that, and we'd be happy to have more sfw moods like "furry" or whatever. The "chill" mood is the default mood, and is assumed to exist. diff --git a/book/src/customize/true-roles.md b/book/src/customize/true-roles.md index 1d36d2a..b89f4aa 100644 --- a/book/src/customize/true-roles.md +++ b/book/src/customize/true-roles.md @@ -22,7 +22,7 @@ Specifically if you change the True Role from "mommy" to e.g. "daddy", the follo * Instead of reading env vars like `CARGO_MOMMYS_MOODS` for config, it will read `CARGO_DADDYS_MOODS` (note the extra "S"!) * If `CARGO_{TRUE_ROLE}S_ROLE` isn't set, it will default to the True Role -The value "daddy" is abitrary here, you can pick any value. Make yourself a `cargo burger-chimes` if you want! +The value "daddy" is arbitrary here, you can pick any value. Make yourself a `cargo burger-chimes` if you want! All you have to do to change the True Role is to rename the cargo-mommy(.exe) binary to cargo-daddy(.exe). From 80dd60c4f29f4347681486020a6b7fa23f419032 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 17:13:23 -0500 Subject: [PATCH 3/9] mommy has more to add~ --- book/src/SUMMARY.md | 2 + book/src/contributing/adding-messages.md | 4 +- book/src/contributing/adding-moods.md | 37 ++++++++++++- book/src/contributing/adding-variables.md | 46 +++++++++++++++- book/src/contributing/concepts.md | 9 ++-- book/src/customize/moods.md | 65 ++++++++++++++++++++++- book/src/customize/roles-and-pronouns.md | 7 +-- oranda.json | 12 +++++ responses.json | 2 +- 9 files changed, 172 insertions(+), 12 deletions(-) diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 58b9b9a..00c528e 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -10,9 +10,11 @@ - [Guides](./guides/README.md) - [Powershell (Windows)](./guides/powershell.md) - [Bash](./guides/bash.md) + - [CI](./guides/ci.md) - [Contributing](./contributing/README.md) - [Concepts](./contributing/concepts.md) - [Adding New Messages](./contributing/adding-messages.md) - [Adding A New Variable](./contributing/adding-variables.md) - [Adding A New Mood](./contributing/adding-moods.md) + - [Releasing](./contributing/releasing.md) diff --git a/book/src/contributing/adding-messages.md b/book/src/contributing/adding-messages.md index 25d75f8..60f3a08 100644 --- a/book/src/contributing/adding-messages.md +++ b/book/src/contributing/adding-messages.md @@ -1,3 +1,5 @@ # Adding New Messages -TODO: add proper guide, see [concepts for now](./concepts.md) +If you want to add a new message to an existing mood, all you need to do is edit [repsonses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and add the string! See [the concepts docs for details on the format](./concepts.md)~ + +That's it, no code or docs needs to be changed~ 💕 diff --git a/book/src/contributing/adding-moods.md b/book/src/contributing/adding-moods.md index 8afdf1d..2d623f9 100644 --- a/book/src/contributing/adding-moods.md +++ b/book/src/contributing/adding-moods.md @@ -1,3 +1,38 @@ # Adding A New Mood -TODO: add proper guide, see [concepts for now](./concepts.md) +You shouldn't need any code to add a mood, just update [repsonses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and the docs~ + +## Editing responses.json + +* Add [the new mood to reponses.json's "moods" object](./concepts.md#responsesjson)~ +* Fill in as many messages as you can think of for [the message pools](./concepts.md#message-pools)~ +* If NSFW, be sure to set "spiciness"~ + +For instance, here's a minimal example (SFW) "sleepy" mood~ 💤 + +```json +{ + "moods": { + "sleepy": { + "positive": [ + "that almost makes {role} want to get out of bed...", + "*yawns*\ngood work~" + ], + "negative": [ + "{role} thinks {pronoun} little {affectionate_term} might also be too tired~", + "let's just take a nap, ok~?" + ], + "overflow": [ + "{role} did too much and is going to bed..." + ] + }, + } +} +``` + +That's it, no code needs to be changed! + + +## Updating The Docs + +Add the mood and some example outputs to the [SFW mood docs](../customize/moods.md) or the [NSFW mood docs](../customize/nsfw.md#moods). \ No newline at end of file diff --git a/book/src/contributing/adding-variables.md b/book/src/contributing/adding-variables.md index 158c06d..000c346 100644 --- a/book/src/contributing/adding-variables.md +++ b/book/src/contributing/adding-variables.md @@ -1,3 +1,47 @@ # Adding A New Variable -TODO: add proper guide, see [concepts for now](./concepts.md) +You shouldn't need any code to add a new variable, just update [repsonses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and the docs~ + + +## Editing responses.json + +* Add [the new variable to reponses.json's "vars" object](./concepts.md#responsesjson)~ +* Fill in [the default values](./concepts.md#variables)~ +* If NSFW, be sure to set "spiciness"~ +* Use the variable in [existing or new messages](./concepts.md#variables)~ + +For instance, here's a minimal example "furniture" variable that is set with `CARGO_MOMMYS_FURNITURES`~ 🪑 + +```json +{ + "vars": { + "furniture": { + "defaults": ["chair", "desk"] + }, + } +} +``` + +and here's how you might use it~ + +```json +{ + "moods": { + "chill": { + "positive": [ + "thanks for helping build {role}'s {furniture}~" + ], + "negative": [ + "ouch! {role} stubbed {pronoun} toe on the {furniture}!" + ] + } + } +} +``` + +That's it, no code needs to be changed~ 💕 + + +## Updating The Docs + +Add the variable to the [SFW variable docs](../customize/roles-and-pronouns.md.md) or the [NSFW variable docs](../customize/nsfw.md#variables). \ No newline at end of file diff --git a/book/src/contributing/concepts.md b/book/src/contributing/concepts.md index 90d553a..577c0e1 100644 --- a/book/src/contributing/concepts.md +++ b/book/src/contributing/concepts.md @@ -4,8 +4,9 @@ At her heart, mommy exists to invoke cargo, check if the result was a success or Printing that message involves reading a bunch of configuration from env-vars to define pools of values to randomly select from, then: 1. randomly [decide what mood the response should have](#moods) -2. use the success/failure state to select which pool of answers from that mood to use (positive, negative, overflow) -3. randomly select a message from that pool +2. use the success/failure state to select which [pool of messages](#message-pools) from that mood to use +3. randomly select [a message](#messages) from that pool +4. randomly format the message's template with any [variables](#variables) it uses (plus the implicit emote) cargo-mommy has 3 major components~ @@ -19,7 +20,7 @@ The build.rs is extremely extra, but it's actually kind of useful for making it ## Responses.json -The ""schema"" of responses.json is currently the following (`$SOME_VALUE` here is an ~arbitrary string): +The ""schema"" of [responses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) is currently the following (`$SOME_VALUE` here is an ~arbitrary string): ```text { @@ -101,7 +102,7 @@ env_key is used to define a SCREAMING_CASE env-var `CARGO_{TRUE_ROLE}S_{ENV_KEY} If a variable's env-var isn't set, it will use its defaults as the pool. ("role" has no default value in responses.json because it has special logic to default to the [True Role](../customize/true-roles.md) when no custom roles are set.) -If a variable's env-var *is* set, mommy will parse it as a ISO Standard Pronouns List, which is to say a slash-delimited list like "she/he/they", "girl/boy", or "daddy", and use those values as the pool. +If a variable's env-var *is* set, mommy will parse it as [ISO Standard Pronoun Syntax](../customize/roles-and-pronouns.md), which is to say a slash-delimited list like "she/he/they", "girl/boy", or "daddy", and use those values as the pool. Each time mommy encounters a variable that needs to be substituted in a message, it will randomly select a new value from the pool. diff --git a/book/src/customize/moods.md b/book/src/customize/moods.md index 42b2412..c667db8 100644 --- a/book/src/customize/moods.md +++ b/book/src/customize/moods.md @@ -1,3 +1,66 @@ # Moods -TODO: flesh this out, see [roles and pronouns for now](./roles-and-pronouns.md) +Moods are a system for changing the flavour/vibe of mommy's messages~ 💕 + +Here's the moods mommy can have~ + +* chill: encouragement and support from mommy~ 💕 +* ominous: mommy thinks you should prepare for the coming prophecy~ 💜 + +See [the NSFW docs for additional spicier moods](./nsfw.md#moods)~ + +By default only the "chill" mood is enabled. The moods mommy can select from are chosen by the `CARGO_MOMMYS_MOODS` environment variable, using [ISO Standard Pronoun Syntax](./roles-and-pronouns.md) (e.g. `CARGO_MOMMYS_MOODS="chill/ominous"` turns both of those moods on). + + + +## Examples: Chill + +
+Here's some examples of mommy being chill~ ❤️ + +``` +*pets your head* +``` + +``` +aww, what a good girl~ +mommy knew you could do it~ ❤️ +``` + +``` +that's mommy's clever little girl~ 💞 +``` + +``` +oops~! mommy loves you anyways~ 💞 +``` + +``` +do you need mommy's help~? 💓 +``` + +
+ + +## Examples: Ominous + +
+Here's some examples of mommy being ominous~ 💜 + +``` +What you have set in motion today will be remembered for aeons to come! 💗 +``` + +``` +mommy will see to it that her little girl's name is feared~ 💞 +``` + +``` +Ah, failure? mommy will make sure the stars are right next time +``` + +``` +Does mommy's little girl need more time for worship~? +``` + +
\ No newline at end of file diff --git a/book/src/customize/roles-and-pronouns.md b/book/src/customize/roles-and-pronouns.md index 76a8316..a7025dc 100644 --- a/book/src/customize/roles-and-pronouns.md +++ b/book/src/customize/roles-and-pronouns.md @@ -1,6 +1,6 @@ # Roles And Pronouns -TODO: flesh this out +Mommy knows you might not be a "girl", and might not want her to be a "mommy" or a "her"~ Mommy will read the following environment variables to make her messages better for you~ ❤️ @@ -8,9 +8,10 @@ Mommy will read the following environment variables to make her messages better * `CARGO_MOMMYS_PRONOUNS` - what pronouns mommy will use for themself~ (default: "her") * `CARGO_MOMMYS_ROLES` - what role mommy will have~ (default "mommy") * `CARGO_MOMMYS_EMOTES` - what emotes mommy will have~ (default "❤️/💖/💗/💓/💞") -* `CARGO_MOMMYS_MOODS` - picks the set of possible responses~ (default: "chill", possible values "chill", "ominous") -All of these options can take a `/` separated list. Mommy will randomly select one of them whenever she talks to you~ +See [the NSFW docs for additional spicier variables](./nsfw.md#variables)~ + +All of these options take ISO Standard Pronoun Syntax, which is to say a slash-delimited list like "she/he/they", "girl/boy", or "daddy". Mommy will randomly select one of them whenever she talks to you~ For example, the phrase "mommy loves her little girl~ 💞" is "CARGO_MOMMYS_ROLE loves CARGO_MOMMYS_PRONOUNS little CARGO_MOMMYS_LITTLE~" diff --git a/oranda.json b/oranda.json index 4ef00a4..8189671 100644 --- a/oranda.json +++ b/oranda.json @@ -5,5 +5,17 @@ }, "build": { "path_prefix": "cargo-mommy" + }, + "components": { + "artifacts": { + "package_managers": { + "preferred": { + "cargo": "cargo install cargo-mommy" + }, + "additional": { + "cargo (clean strings)": "cargo install cargo-mommy --no-default-features" + } + } + } } } \ No newline at end of file diff --git a/responses.json b/responses.json index 9601055..da36ef7 100644 --- a/responses.json +++ b/responses.json @@ -47,7 +47,7 @@ "positive": [ "What you have set in motion today will be remembered for aeons to come!", "{role} will see to it that {pronoun} little {affectionate_term}'s name is feared~", - "{role} is proud of the evil seed {affectionate_term} has planted into this accursed world" + "{role} is proud of the evil seed {pronoun} {affectionate_term} has planted into this accursed world" ], "negative": [ "Ah, failure? {role} will make sure the stars are right next time", From a93eef10a727431d03f1220cbb1db66a20128822 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 17:28:09 -0500 Subject: [PATCH 4/9] mention how to update docs --- book/src/SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 00c528e..4606768 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -16,5 +16,6 @@ - [Adding New Messages](./contributing/adding-messages.md) - [Adding A New Variable](./contributing/adding-variables.md) - [Adding A New Mood](./contributing/adding-moods.md) + - [Locally Building The Website](./contributing/docs.md) - [Releasing](./contributing/releasing.md) From e95a0c3e42ba8fe9e358d810b1c213a561976e50 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 17:28:15 -0500 Subject: [PATCH 5/9] mention how to update docs --- book/src/contributing/docs.md | 19 +++++++++ book/src/contributing/releasing.md | 66 ++++++++++++++++++++++++++++++ book/src/guides/ci.md | 9 ++++ 3 files changed, 94 insertions(+) create mode 100644 book/src/contributing/docs.md create mode 100644 book/src/contributing/releasing.md create mode 100644 book/src/guides/ci.md diff --git a/book/src/contributing/docs.md b/book/src/contributing/docs.md new file mode 100644 index 0000000..053e7ab --- /dev/null +++ b/book/src/contributing/docs.md @@ -0,0 +1,19 @@ +# Locally Building The Website + +The [website](https://faultlore.com/cargo-mommy/) (and book it hosts) is automatically built for every PR, and automatically deployed for every push to main. See the [releasing](./releasing.md) page for details. + +If you want to run and test it locally, [install oranda](https://opensource.axo.dev/oranda/) and run: + +``` +oranda dev +``` + +This will put oranda in a "watch" mode that live-updates the website as you edit files, while serving the result on a localhost url (usually http://127.0.0.1:7979/cargo-mommy). + +Oranda internally uses [mdBook](https://rust-lang.github.io/mdBook/) as a library, with several patches to make mdbook have the same theme as the oranda one. If you're familiar with mdbook and just want to stick to that, you *should* be able to just [go to the book/ dir](https://github.com/Gankra/cargo-mommy/blob/main/book/) and run: + +``` +mdbook serve +``` + +It just won't have the same theming as the production site. diff --git a/book/src/contributing/releasing.md b/book/src/contributing/releasing.md new file mode 100644 index 0000000..ffaefa0 --- /dev/null +++ b/book/src/contributing/releasing.md @@ -0,0 +1,66 @@ +# Releasing + +Mommy's release process is simple but does a lot~ + + +## Cutting a Release + +1. Checkout main +2. pull +3. Update the "Unreleased" section of [CHANGELOG.md](https://github.com/Gankra/cargo-mommy/blob/main/CHANGELOG.md) (DO NOT CHANGE THE HEADING!) +4. Commit +5. Run `cargo release {version}` (e.g. `cargo release 1.0.0`) + +This will trigger this cascade of events: + +1. [cargo-release](https://github.com/crate-ci/cargo-release) will get the ball rolling: + a. [the changelog heading will be updated to "Version {version} ({date})"](https://github.com/Gankra/cargo-mommy/blob/0d96506db241003166e32deb22ad0ab0fc52c16c/Cargo.toml#L50-L53) + b. the version in the Cargo.toml will be update to "{version}" + b. [a commit will be made with "release: {version}"](https://github.com/Gankra/cargo-mommy/blob/0d96506db241003166e32deb22ad0ab0fc52c16c/Cargo.toml#L30) + c. [a "v{version}" git tag will be created](https://github.com/Gankra/cargo-mommy/blob/0d96506db241003166e32deb22ad0ab0fc52c16c/Cargo.toml#L29) + d. `cargo publish` will be run + e. A more robust equivalent of `git push && git push --tags` will run +2. [cargo-dist](https://opensource.axo.dev/cargo-dist/) will see the tagged commit and build binaries/archives/installers/announcements: + a. [release.yml](https://github.com/Gankra/cargo-mommy/blob/main/.github/workflows/release.yml) will spawn + b. binaries and archives (zips/tarballs) will get built for [all supported targets](https://github.com/Gankra/cargo-mommy/blob/0d96506db241003166e32deb22ad0ab0fc52c16c/Cargo.toml#L41) + c. [installers will be built](https://github.com/Gankra/cargo-mommy/blob/0d96506db241003166e32deb22ad0ab0fc52c16c/Cargo.toml#L39) that can fetch the archives + d. A [Github Release](https://github.com/Gankra/cargo-mommy/releases) will be made, with the release notes and installers/archives +3. [oranda](https://opensource.axo.dev/oranda/) will see a workflow called "Release" completed, and build and deploy docs + a. [web.yml](https://github.com/Gankra/cargo-mommy/blob/main/.github/workflows/web.yml) will spawn + b. [oranda will autodetect, retheme, and build](https://opensource.axo.dev/oranda/book/configuration/mdbook.html) the [cargo-mommy mdbook](https://github.com/Gankra/cargo-mommy/tree/main/src) + c. oranda will generate [a website with releases, the book, and a platform-autodetecting install widget for the latest release](https://faultlore.com/cargo-mommy/) + d. oranda will push the website to [the gh-pages branch](https://github.com/Gankra/cargo-mommy/tree/gh-pages) +4. Github Pages will trigger + a. [pages-build-deployment](https://github.com/Gankra/cargo-mommy/actions/workflows/pages/pages-build-deployment) will spawn + b. [the live website will update](https://faultlore.com/cargo-mommy/) + +Note that steps 3 and 4 trigger on all pushes to main, so updating docs doesn't require a new release~ + + + + +## Updating The Release Process + +The cargo-release step was created by hand-copying some config values that Gankra likes to use in her projects. There shouldn't be any need to mess with it. + +The cargo-dist step was created by locally running `cargo dist init`, selecting some targets/installers in the interactive prompts, and committing the results. It can be updated by running `cargo dist init` again. + +The oranda step was created by running `oranda generate ci`, selecting some of the options, and committing the results. A [custom oranda.json](https://github.com/Gankra/cargo-mommy/blob/main/oranda.json) was then added to fix path-prefix with github-pages, and to pick a non-default theme. The CI is setup to always use the "latest" oranda, so it's self-updating and may never need to be touched. Any changes that are desired will probably be changes to oranda.json. + +The Github Pages step was doing in the Github settings UI for cargo-mommy. The website it deploys to is Gankra's. + + + +## Ensuring The Release Process Works + +All pull requests run the `cargo dist plan` [part of the releases ci](https://github.com/Gankra/cargo-mommy/blob/main/.github/workflows/release.yml) to check that the release process still works. + +All pull requests run the `oranda build` [part of the website ci](https://github.com/Gankra/cargo-mommy/blob/main/.github/workflows/web.yml) to check that the website and mdbook still works. + +(This is just the default behaviour of the CI scripts that cargo-dist and oranda generate!) + + + +## Historical Releases + +This process was setup for 0.3.0, everything before that was Gankra being intentionally sloppy because all of the above is her actual job and sometimes you just don't want to think about work and just want to mash `cargo publish` and nothing more on your shitpost that everyone took way too seriously. diff --git a/book/src/guides/ci.md b/book/src/guides/ci.md new file mode 100644 index 0000000..b67e5df --- /dev/null +++ b/book/src/guides/ci.md @@ -0,0 +1,9 @@ +# Using cargo-mommy in CI + +While you can of course `cargo install cargo-mommy` in CI, this can significantly slow down your CI runs~ + +To help with this, every cargo-mommy release since 0.3.0 comes with prebuilt binaries and shell/powershell installers, allowing mommy to be setup in CI quickly and easily~ 💕 + +See [the install page](https://faultlore.com/cargo-mommy/artifacts/) for `curl | sh` and `irm | iex` expressions~ + +Note that if you use a Github CI Matrix and it covers Windows and Not Windows, `run` expressions will implicitly be a shell/powershell polyglot. If so, we recommend putting the "install cargo-mommy" expression as an argument to the Matrix (powershell on windows, shell everywhere else)~ From 8acd63cfb48cec92eaf11f494edb6f0f212555c1 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 19:23:56 -0500 Subject: [PATCH 6/9] Apply more suggestions from mommy's helper~ Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com> --- book/src/contributing/adding-moods.md | 4 ++-- book/src/contributing/adding-variables.md | 4 ++-- book/src/contributing/releasing.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/book/src/contributing/adding-moods.md b/book/src/contributing/adding-moods.md index 2d623f9..64876d7 100644 --- a/book/src/contributing/adding-moods.md +++ b/book/src/contributing/adding-moods.md @@ -1,10 +1,10 @@ # Adding A New Mood -You shouldn't need any code to add a mood, just update [repsonses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and the docs~ +You shouldn't need any code to add a mood, just update [responses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and the docs~ ## Editing responses.json -* Add [the new mood to reponses.json's "moods" object](./concepts.md#responsesjson)~ +* Add [the new mood to responses.json's "moods" object](./concepts.md#responsesjson)~ * Fill in as many messages as you can think of for [the message pools](./concepts.md#message-pools)~ * If NSFW, be sure to set "spiciness"~ diff --git a/book/src/contributing/adding-variables.md b/book/src/contributing/adding-variables.md index 000c346..bc04d48 100644 --- a/book/src/contributing/adding-variables.md +++ b/book/src/contributing/adding-variables.md @@ -1,11 +1,11 @@ # Adding A New Variable -You shouldn't need any code to add a new variable, just update [repsonses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and the docs~ +You shouldn't need any code to add a new variable, just update [responses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json) and the docs~ ## Editing responses.json -* Add [the new variable to reponses.json's "vars" object](./concepts.md#responsesjson)~ +* Add [the new variable to responses.json's "vars" object](./concepts.md#responsesjson)~ * Fill in [the default values](./concepts.md#variables)~ * If NSFW, be sure to set "spiciness"~ * Use the variable in [existing or new messages](./concepts.md#variables)~ diff --git a/book/src/contributing/releasing.md b/book/src/contributing/releasing.md index ffaefa0..543ff17 100644 --- a/book/src/contributing/releasing.md +++ b/book/src/contributing/releasing.md @@ -47,7 +47,7 @@ The cargo-dist step was created by locally running `cargo dist init`, selecting The oranda step was created by running `oranda generate ci`, selecting some of the options, and committing the results. A [custom oranda.json](https://github.com/Gankra/cargo-mommy/blob/main/oranda.json) was then added to fix path-prefix with github-pages, and to pick a non-default theme. The CI is setup to always use the "latest" oranda, so it's self-updating and may never need to be touched. Any changes that are desired will probably be changes to oranda.json. -The Github Pages step was doing in the Github settings UI for cargo-mommy. The website it deploys to is Gankra's. +The Github Pages step was done in the Github Settings UI for the cargo-mommy repo. The website it deploys to is Gankra's. From cfb8ecc791c797cd2b0a8100d6e9651d6842c47d Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 19:29:57 -0500 Subject: [PATCH 7/9] mommy's done with docs for now~ --- README.md | 95 ++++++--------------------------------- book/src/guides/README.md | 2 + 2 files changed, 16 insertions(+), 81 deletions(-) diff --git a/README.md b/README.md index c5ef749..d7985fa 100644 --- a/README.md +++ b/README.md @@ -8,48 +8,34 @@ [![Rust CI](https://github.com/Gankra/cargo-mommy/workflows/Rust/badge.svg?branch=main)](https://github.com/Gankra/cargo-mommy/actions/workflows/ci.yml) + Mommy's here to support you when running cargo~ ❤️ # Installation -Install cargo-mommy like you would any other cargo extension~ +You can `cargo install cargo-mommy`, [see the website for more options](https://faultlore.com/cargo-mommy/) -```text -> cargo install cargo-mommy -``` # Usage Run whatever cargo command you would normally but add mommy after cargo~ -```text -> cargo mommy test - - Finished test [unoptimized + debuginfo] target(s) in 0.00s - Running unittests src\main.rs (target\debug\deps\cargo_mommy-3804b5c850d46137.exe) - -running 1 test -test test ... FAILED - -failures: - ----- test stdout ---- -thread 'test' panicked at 'oops!!', src\main.rs:26:5 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - -failures: - test - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -error: test failed, to rerun pass `--bin cargo-mommy` +``` +cargo mommy check -mommy knows her little girl can do better~ ❤️ + Checking bappy-script v0.1.3 +error: expected one of `!` or `::`, found `passes` + --> src\main.rs:20:6 + | +20 | mods passes; + | ^^^^^^ expected one of `!` or `::` ->_ +error: could not compile `bappy-script` (bin "bappy-script") due to previous error +mommy knows her little girl can do better~ 💞 ``` +[See the docs for more options](https://faultlore.com/cargo-mommy/book/) + If you try to make it into an alias, you should prefer pointing it to `cargo-mommy` directly, we wouldn't want to break the rustup toolchain picker, now would we?~ @@ -87,60 +73,7 @@ So if you set `CARGO_MOMMYS_ROLES="daddy"`, `CARGO_MOMMYS_PRONOUNS="his/their"`, And so on~ 💓 -# Configuration (kink) - -
- - -THIS IS NSFW, STOP READING IF YOU WANT MOMMY TO REMAIN INNOCENT! - - -... - -... - -Good pet~ ❤️ - -All of mommy's NSFW content is hidden behind CARGO_MOMMYS_MOODS, where "thirsty" is heavy teasing/flirting and "yikes" is full harsh dommy mommy kink~ - -You can enable "true mommy chaos mode" by setting `CARGO_MOMMYS_MOODS="chill/ominous/thirsty/yikes"`, making mommy oscillate wildly between light positive affirmation and trying to break you in half~ - -* `CARGO_MOMMYS_MOODS` - how kinky mommy will be~ (default: "chill", possible values "chill", "ominous", "thirsty", "yikes") -* `CARGO_MOMMYS_PARTS` - what part of mommy you should crave~ (default: "milk") -* `CARGO_MOMMYS_FUCKING` - what to call mommy's pet~ (default: "slut/toy/pet/pervert/whore") - ------ - -**Here's some examples of mommy being thirsty~ ❤️** - -*tugs your leash* -that's a VERY good girl~ 💞 - -*smooches your forehead* -good job~ - -are you just keysmashing now~? -cute~ 💖 - -if you don't learn how to code better, mommy is going to put you in time-out~ 💓 - ------ - -**And here's some examples of mommy being yikes~ 💞** - -good slut~ -you've earned five minutes with the buzzy wand~ 💗 - -*slides her finger in your mouth* -that's a good little toy~ ❤️ - -get on your knees and beg mommy for forgiveness you pervert~ - -mommy is starting to wonder if you should just give up and become her breeding stock~ 💗 - -
-------- # Licensing diff --git a/book/src/guides/README.md b/book/src/guides/README.md index 50a8673..1a8200e 100644 --- a/book/src/guides/README.md +++ b/book/src/guides/README.md @@ -1 +1,3 @@ # Guides + +UHHH see the sub-pages From 88ccfd93afc01a62e3d4f663659d10ec7ce09821 Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 19:49:20 -0500 Subject: [PATCH 8/9] mommy's done updating docs~ --- book/src/README.md | 1 + book/src/SUMMARY.md | 1 + book/src/contributing/README.md | 2 +- book/src/customize/README.md | 10 +++++++++- book/src/customize/not-just-cargo.md | 20 ++++++++++++++++++++ book/src/guides/README.md | 14 +++++++++++++- book/src/guides/bash.md | 2 +- book/src/guides/powershell.md | 2 +- 8 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 book/src/customize/not-just-cargo.md diff --git a/book/src/README.md b/book/src/README.md index da437be..2eac34c 100644 --- a/book/src/README.md +++ b/book/src/README.md @@ -26,5 +26,6 @@ By default mommy is kind to her little girl, but she can become anything you wan * [I want `cargo mommy` to be `cargo daddy` (or anything else)](./customize/true-roles.md) * [I want mommy to work with our plurality](./customize/true-roles.md) * [I want mommy to have a totally different mood](./customize/moods.md) +* [I want mommy to invoke mommy with more than cargo](./customize/not-just-cargo.md) * [I want mommy to sdsdfdsfdfsd me (enabling nsfw features)](./customize/nsfw.md) * [I never want mommy to sdsdfdsfdfsd me (compiling out all nsfw features)](./customize/never-nsfw.md) diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 4606768..4f6fb52 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -5,6 +5,7 @@ - [Roles And Pronouns](./customize/roles-and-pronouns.md) - [Moods](./customize/moods.md) - [True Roles](./customize/true-roles.md) + - [Not Just Cargo](./customize/not-just-cargo.md) - [NSFW Features](./customize/nsfw.md) - [Removing NSFW Features](./customize/never-nsfw.md) - [Guides](./guides/README.md) diff --git a/book/src/contributing/README.md b/book/src/contributing/README.md index 96aad32..0c7ddb5 100644 --- a/book/src/contributing/README.md +++ b/book/src/contributing/README.md @@ -19,6 +19,6 @@ These are the social rules of mommy club~ For most contributions, you probably just need to [edit responses.json](https://github.com/Gankra/cargo-mommy/blob/main/responses.json)~ -See the next pages for details~ +See the sub-pages for details~ diff --git a/book/src/customize/README.md b/book/src/customize/README.md index f754f80..2167d0a 100644 --- a/book/src/customize/README.md +++ b/book/src/customize/README.md @@ -1,3 +1,11 @@ # Customizing -UHHH see the sub-pages, or the listing in [the intro](../intro.md) \ No newline at end of file +By default mommy is kind to her little girl, but she can become anything you want~ + +* [I want mommy to call myself or herself something else](./roles-and-pronouns.md) +* [I want `cargo mommy` to be `cargo daddy` (or anything else)](./true-roles.md) +* [I want mommy to work with our plurality](./true-roles.md) +* [I want mommy to have a totally different mood](./moods.md) +* [I want mommy to invoke mommy with more than cargo](./not-just-cargo.md) +* [I want mommy to sdsdfdsfdfsd me (enabling nsfw features)](./nsfw.md) +* [I never want mommy to sdsdfdsfdfsd me (compiling out all nsfw features)](./never-nsfw.md) diff --git a/book/src/customize/not-just-cargo.md b/book/src/customize/not-just-cargo.md new file mode 100644 index 0000000..61411c2 --- /dev/null +++ b/book/src/customize/not-just-cargo.md @@ -0,0 +1,20 @@ +# Not Just Cargo + +Although Mommy is primarily intended to be invoked as `cargo mommy`, you *can* invoke her binary directly, or setup aliases to it. + +If you try to make it into an alias, you should prefer pointing it to cargo-mommy directly, as this tends to play nicer with the rustup toolchain picker~ mommy will also respect CARGO to execute the right cargo for you~ + + +## REALLY Not Just Cargo + +Now, this is a Developing Feature that's first shipping in 0.3.1, but... + +If you want to use cargo-mommy for not-cargo programs, just set the CARGO_MOMMYS_ACTUAL environment variable to it, for example on linux you can do this: + +``` +CARGO_MOMMYS_ACTUAL=date cargo-mommy +Sun Nov 19 05:33:34 PM CET 2023 +what a good girl you are~ ❤️ +``` + +Enough people have been asking about this that we might end up just making a second dedicated "mommy" binary that supports this usecase more directly. We'll see~ diff --git a/book/src/guides/README.md b/book/src/guides/README.md index 1a8200e..2b91af9 100644 --- a/book/src/guides/README.md +++ b/book/src/guides/README.md @@ -1,3 +1,15 @@ # Guides -UHHH see the sub-pages +These guides are intended to help folks setup cargo-mommy in situations like these ones~ + +* [persistent bash config](./bash.md) +* [persistent powershell config](./powershell.md) +* [ci scripting](./ci.md) +* the rust build system (x.py) +* using cargo-mommy for other non-cargo-mommy commands (CARGO_MOMMYS_ACTUAL) +* fish +* zsh +* nix +* ...? + +Please contribute any knowledge you have about these setups so everyone can enjoy~ diff --git a/book/src/guides/bash.md b/book/src/guides/bash.md index 9fd6d83..757e47c 100644 --- a/book/src/guides/bash.md +++ b/book/src/guides/bash.md @@ -1,5 +1,5 @@ # Bash -TODO: tips on setting up persistent config for mommy in ~/.bashrc or ~/.profile +TODO: tips on setting up persistent config for mommy in `~/.bashrc` or `~/.profile` using `export` and `alias` https://github.com/Gankra/cargo-mommy/pull/41 diff --git a/book/src/guides/powershell.md b/book/src/guides/powershell.md index 2233ae8..784f6e2 100644 --- a/book/src/guides/powershell.md +++ b/book/src/guides/powershell.md @@ -1,5 +1,5 @@ # Powershell (Windows) -TODO: tips on setting up persistent config for mommy when using powershell +TODO: tips on setting up persistent config for mommy when using powershell (Persistently setting values in the registry? using `$env:CARGO_MOMMYS_LITTLE="boy/girl"` syntax?) https://github.com/Gankra/cargo-mommy/pull/41 From 3f5d76f76446c848477b6506c312b2fe64b8413c Mon Sep 17 00:00:00 2001 From: Aria Beingessner Date: Sun, 19 Nov 2023 19:50:24 -0500 Subject: [PATCH 9/9] clean up README~ --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index d7985fa..7d096ee 100644 --- a/README.md +++ b/README.md @@ -36,19 +36,6 @@ mommy knows her little girl can do better~ 💞 [See the docs for more options](https://faultlore.com/cargo-mommy/book/) -If you try to make it into an alias, you should prefer pointing it to `cargo-mommy` directly, -we wouldn't want to break the rustup toolchain picker, now would we?~ - -If you want to use `cargo-mommy` for not-cargo programs, just set the `CARGO_{ROLE}S_ACTUAL` -environment variable to it, for example - -``` -$ CARGO_MOMMYS_ACTUAL=date ./target/debug/cargo-mommy -Sun Nov 19 05:33:34 PM CET 2023 -what a good girl you are~ -``` - -mommy will also respect `CARGO` to execute the right cargo for you~ # Configuration