From 14a0d810eed42f16a2b4d4ad61924d22c78bcff2 Mon Sep 17 00:00:00 2001 From: Riyyi Date: Sun, 22 Aug 2021 20:58:36 +0200 Subject: [PATCH] Manager: Update help to Groff and to reflect new argument structure Change the help function output to use the official man utility, which uses Groff (GNU troff) formatting. --- dotfiles.sh | 123 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 84 insertions(+), 39 deletions(-) diff --git a/dotfiles.sh b/dotfiles.sh index 19d73e7..8a55a8c 100755 --- a/dotfiles.sh +++ b/dotfiles.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Manages dotfiles and packages +# Tracks dotfiles and packages # Depends: GNU getopt, (pacman, pacman-contrib) / (dpkg, apt) # User-config @@ -31,48 +31,93 @@ fi help() { - u=$(tput smul) - - cat << EOF -${b}NAME${n} - dotfiles - manages dotfiles and packages - -${b}SYNOPSIS${n} - ${b}./dotfiles.sh${n} ${u}OPTION${n} [${u}ARG${n}] - -${b}OPTIONS${n} - ${b}-a${n} ${u}FILE${n}, ${b}--add${n}=${u}FILE${n} - Add file to the dotfiles directory. - - ${b}-f, --files${n} - Display all files added to the dotfiles directory. - - ${b}-h, --help${n} - Display usage message and exit. - - ${b}-p${n} [${u}FUNCTION${n}], ${b}--packages${n}=[${u}FUNCTION${n}] - Apply ${u}FUNCTION${n} to the package manager packages. - - ${u}install${n} Install all core packages of the stored list. - - ${u}install-aur${n} Install all AUR packages of the stored list. - - ${u}list${n} Display all packages installed on the system. - - ${u}store${n} Stores a list of all installed packages on the system. - - The default value is ${u}list${n}. - - ${b}-l, --pull${n} - Pull each added file from the system to the dotfiles directory. - - ${b}-s, --push${n} - Push each added file to its location on the system. + (cat << EOF +.TH DOTFILES.SH 1 "2021-08-22" "dotfiles.sh 0.9" "dotfiles.sh Manual" + +.SH NAME +dotfiles.sh \- config file and package tracking utility + +.SH SYNOPSIS +.B ./dotfiles.sh +.I OPERATION +.RI [ OPTION ...]\& +.RI [ TARGET ...] + +.SH DESCRIPTION +dotfiles.sh is a config file and package tracking utility that tracks installed packages on a Linux system. +It features listing and tracking of config files and packages, and the ability to install the tracked packages. + +Currently, package tracking is only supported on APT and Pacman based distributions. + +Invoking dotfile.sh involves specifying an operation with any potential options and targets to operate on. +A \fItarget\fR is usually a file name, directory or a package name. +Targets can be provided as command line arguments. +Additionally, if a single hyphen (-) is passed as an argument, targets will be read from stdin. + +.SH OPERATIONS +.TP +.BR \-F ", " \-\-file +Operate on config files. +This operation allows you to sync config files between the system and the dotfiles directory. +In the first case, if no file names are provided in the command line, all files will be selected. +See File Options below. + +.TP +.BR \-P ", " \-\-package +Operate on packages. +This operation allows you to track installed packages and reinstall them. +In the first case, if no package names are provided in the command line, all packages will be selected. +See Package Options below. + +.TP +.BR \-h ", " \-\-help +Display usage message and exit. + +.SH FILE OPTIONS (APPLY TO -F) +.TP +.BR \-a ", " \-\-add +Add selected file \fIpaths\fR to the dotfiles directory. + +.TP +.BR \-l ", " \-\-pull +Pull every (selected) \fIfile\fR from the system to the dotfiles directory. + +.TP +.BR \-s ", " \-\-push +Push every (selected) \fIfile\fR from the dotfiles directory to the system. + +.SH PACKAGE OPTIONS (APPLY TO -P) +.TP +.BR \-a ", " \-\-aur-install +Install all AUR packages of the stored list. + +.TP +.BR \-i ", " \-\-install +Install all official packages of the stored list. + +.TP +.BR \-s ", " \-\-store +Stores a list of all installed packages on the system. + +.SH EXAMPLES +Usage examples: + +$ \fB./dotfiles.sh\fR -Fa ~/.zshrc /etc/zsh/zshenv +.br +\h'4'Add config files to the dotfiles directory + +$ \fB./dotfiles.sh\fR -Pia +.br +\h'4'Install all tracked official and AUR packages + +.SH AUTHOR +Riyyi EOF + ) | man -l - } # Exit if no option is provided -[ "$#" -eq 0 ] && help >&2 && exit 1 +[ "$#" -eq 0 ] && help && exit 1 # Files # --------------------------------------