#[derive(Debug)]
pub struct ManContent {
pub description: Option<&'static str>,
pub extra_sections: &'static [(&'static str, &'static str)],
}
impl ManContent {
pub const fn empty() -> Self {
Self {
description: None,
extra_sections: &[],
}
}
}
const EMPTY: ManContent = ManContent::empty();
const ROOT: ManContent = ManContent {
description: None,
extra_sections: &[("EXAMPLES", include_str!("../man/root/examples.md"))],
};
pub const REPORTING_BUGS: &str = include_str!("../man/reporting_bugs.md");
const SMUDGE: ManContent = ManContent {
description: None,
extra_sections: &[
("ENVIRONMENT", include_str!("../man/smudge/environment.md")),
("KNOWN BUGS", include_str!("../man/smudge/known_bugs.md")),
("SEE ALSO", include_str!("../man/smudge/see_also.md")),
],
};
const CHECKOUT: ManContent = ManContent {
description: None,
extra_sections: &[("EXAMPLES", include_str!("../man/checkout/examples.md"))],
};
const FETCH: ManContent = ManContent {
description: None,
extra_sections: &[
(
"INCLUDE AND EXCLUDE",
include_str!("../man/fetch/include_and_exclude.md"),
),
(
"DEFAULT REMOTE",
include_str!("../man/fetch/default_remote.md"),
),
("DEFAULT REFS", include_str!("../man/fetch/default_refs.md")),
(
"RECENT CHANGES",
include_str!("../man/fetch/recent_changes.md"),
),
("EXAMPLES", include_str!("../man/fetch/examples.md")),
("SEE ALSO", include_str!("../man/fetch/see_also.md")),
],
};
const PULL: ManContent = ManContent {
description: None,
extra_sections: &[
(
"INCLUDE AND EXCLUDE",
include_str!("../man/pull/include_and_exclude.md"),
),
(
"DEFAULT REMOTE",
include_str!("../man/pull/default_remote.md"),
),
("EXAMPLES", include_str!("../man/pull/examples.md")),
("SEE ALSO", include_str!("../man/pull/see_also.md")),
],
};
const PUSH: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/push/see_also.md"))],
};
const INSTALL: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/install/see_also.md"))],
};
const UNINSTALL: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/uninstall/see_also.md"))],
};
const TRACK: ManContent = ManContent {
description: None,
extra_sections: &[
("EXAMPLES", include_str!("../man/track/examples.md")),
("SEE ALSO", include_str!("../man/track/see_also.md")),
],
};
const UNTRACK: ManContent = ManContent {
description: None,
extra_sections: &[
("EXAMPLES", include_str!("../man/untrack/examples.md")),
("SEE ALSO", include_str!("../man/untrack/see_also.md")),
],
};
const LOCK: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/lock/see_also.md"))],
};
const LOCKS: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/locks/see_also.md"))],
};
const UNLOCK: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/unlock/see_also.md"))],
};
const STATUS: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/status/see_also.md"))],
};
const LS_FILES: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/ls-files/see_also.md"))],
};
const PRUNE: ManContent = ManContent {
description: Some(include_str!("../man/prune/description.md")),
extra_sections: &[
("RECENT FILES", include_str!("../man/prune/recent_files.md")),
(
"UNPUSHED LFS FILES",
include_str!("../man/prune/unpushed.md"),
),
(
"VERIFY REMOTE",
include_str!("../man/prune/verify_remote.md"),
),
(
"DEFAULT REMOTE",
include_str!("../man/prune/default_remote.md"),
),
("SEE ALSO", include_str!("../man/prune/see_also.md")),
],
};
const FSCK: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/fsck/see_also.md"))],
};
const CLEAN: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/clean/see_also.md"))],
};
const FILTER_PROCESS: ManContent = ManContent {
description: None,
extra_sections: &[(
"SEE ALSO",
include_str!("../man/filter-process/see_also.md"),
)],
};
const CLONE: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/clone/see_also.md"))],
};
const PRE_PUSH: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/pre-push/see_also.md"))],
};
const POST_CHECKOUT: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/post-checkout/see_also.md"))],
};
const POST_COMMIT: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/post-commit/see_also.md"))],
};
const POST_MERGE: ManContent = ManContent {
description: None,
extra_sections: &[("SEE ALSO", include_str!("../man/post-merge/see_also.md"))],
};
const MIGRATE: ManContent = ManContent {
description: None,
extra_sections: &[
(
"INCLUDE AND EXCLUDE",
include_str!("../man/migrate/include_and_exclude.md"),
),
(
"INCLUDE AND EXCLUDE REFERENCES",
include_str!("../man/migrate/include_and_exclude_references.md"),
),
("EXAMPLES", include_str!("../man/migrate/examples.md")),
("SEE ALSO", include_str!("../man/migrate/see_also.md")),
],
};
const MIGRATE_INFO: ManContent = ManContent {
description: None,
extra_sections: &[
("EXAMPLES", include_str!("../man/migrate-info/examples.md")),
("SEE ALSO", include_str!("../man/migrate-info/see_also.md")),
],
};
const MIGRATE_IMPORT: ManContent = ManContent {
description: None,
extra_sections: &[
(
"EXAMPLES",
include_str!("../man/migrate-import/examples.md"),
),
(
"SEE ALSO",
include_str!("../man/migrate-import/see_also.md"),
),
],
};
const MIGRATE_EXPORT: ManContent = ManContent {
description: None,
extra_sections: &[
(
"EXAMPLES",
include_str!("../man/migrate-export/examples.md"),
),
(
"SEE ALSO",
include_str!("../man/migrate-export/see_also.md"),
),
],
};
const EXT: ManContent = ManContent {
description: None,
extra_sections: &[("EXAMPLES", include_str!("../man/ext/examples.md"))],
};
const CONFIG: ManContent = ManContent {
description: None,
extra_sections: &[
(
"CONFIGURATION FILES",
include_str!("../man/config/configuration_files.md"),
),
(
"GENERAL SETTINGS",
include_str!("../man/config/general_settings.md"),
),
(
"UPLOAD AND DOWNLOAD TRANSFER SETTINGS",
include_str!("../man/config/transfer_settings.md"),
),
(
"PUSH SETTINGS",
include_str!("../man/config/push_settings.md"),
),
(
"FETCH SETTINGS",
include_str!("../man/config/fetch_settings.md"),
),
(
"PRUNE SETTINGS",
include_str!("../man/config/prune_settings.md"),
),
("EXTENSIONS", include_str!("../man/config/extensions.md")),
(
"OTHER SETTINGS",
include_str!("../man/config/other_settings.md"),
),
("LFSCONFIG", include_str!("../man/config/lfsconfig.md")),
("EXAMPLES", include_str!("../man/config/examples.md")),
("SEE ALSO", include_str!("../man/config/see_also.md")),
],
};
pub fn extras_for(subcommand: &str) -> &'static ManContent {
match subcommand {
"smudge" => &SMUDGE,
"ext" => &EXT,
"config" => &CONFIG,
"checkout" => &CHECKOUT,
"fetch" => &FETCH,
"pull" => &PULL,
"push" => &PUSH,
"install" => &INSTALL,
"uninstall" => &UNINSTALL,
"track" => &TRACK,
"untrack" => &UNTRACK,
"lock" => &LOCK,
"locks" => &LOCKS,
"unlock" => &UNLOCK,
"status" => &STATUS,
"ls-files" => &LS_FILES,
"prune" => &PRUNE,
"fsck" => &FSCK,
"clean" => &CLEAN,
"filter-process" => &FILTER_PROCESS,
"clone" => &CLONE,
"pre-push" => &PRE_PUSH,
"post-checkout" => &POST_CHECKOUT,
"post-commit" => &POST_COMMIT,
"post-merge" => &POST_MERGE,
"migrate" => &MIGRATE,
"migrate-info" => &MIGRATE_INFO,
"migrate-import" => &MIGRATE_IMPORT,
"migrate-export" => &MIGRATE_EXPORT,
"" => &ROOT,
_ => &EMPTY,
}
}