diff options
author | Einhard Leichtfuß <alguien@respiranto.de> | 2018-12-24 21:56:30 +0100 |
---|---|---|
committer | Einhard Leichtfuß <alguien@respiranto.de> | 2018-12-24 22:08:46 +0100 |
commit | e82f76b87ff9779532908a02315b6425fb8a53f4 (patch) | |
tree | 265ddbeb6281b29fdb4b34f90334359aa0f10245 | |
parent | 263743c43945d4ee8d0fcd88636db3ddd4981eaa (diff) |
Rename conf file and bash completion script
Also,
- Add the new manpage to the Makefile.
- Add additional dependencies in README.
- Fix some small formatting mistakes in ctct(1).
-rw-r--r-- | CHANGELOG | 7 | ||||
-rw-r--r-- | Makefile.in | 33 | ||||
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | TODO | 12 | ||||
-rw-r--r-- | bash_completion.in (renamed from ctct.bash_completion.in) | 0 | ||||
-rwxr-xr-x | configure | 56 | ||||
-rw-r--r-- | configure.ac | 55 | ||||
-rw-r--r-- | ctct.1.in | 11 | ||||
-rw-r--r-- | ctct.in | 11 | ||||
-rw-r--r-- | ctct_config.5.in | 17 | ||||
-rw-r--r-- | ctct_config.in (renamed from config.sh.in) | 1 |
11 files changed, 94 insertions, 111 deletions
@@ -24,6 +24,13 @@ Manual: - Improve and correct ctct(1) and ctct_config(5). +Configuration Files: +-------------------- + +- Renamed to ctct_config. +- Installed global configuration file directly into sysconfdir. + + Compatibility: -------------- - Fixed incompatibility with OpenBSD. diff --git a/Makefile.in b/Makefile.in index 656c116..ed1cdeb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -26,7 +26,9 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ SRCS = @PACKAGE_NAME@.c DOCS = COPYING README CHANGELOG -CONFIGS = config.sh + +# If there were more than one, a separate confdir should be created. +CONFIG = ctct_config INSTALL = install INSTALL_PROGRAM = $(INSTALL) -m 755 @@ -39,44 +41,47 @@ exec_prefix = @exec_prefix@ bindir = @bindir@ datarootdir = @datarootdir@ sysconfdir = @sysconfdir@ -confdir = @confdir@ docdir = @docdir@ bash_completion_dir = @bash_completion_dir@ mandir = @mandir@ -man1dir = ${mandir}/man1 +man1dir = $(mandir)/man1 +man5dir = $(mandir)/man5 man1ext = .1 +man5ext = .5 all: $(TARGET) install: installdirs $(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(bindir)/ - $(INSTALL_DATA) $(CONFIGS) $(DESTDIR)$(confdir)/ + $(INSTALL_DATA) $(CONFIG) $(DESTDIR)$(sysconfdir)/ $(INSTALL_DATA) $(DOCS) $(DESTDIR)$(docdir)/ - $(INSTALL_DATA) $(TARGET).bash_completion \ + $(INSTALL_DATA) bash_completion \ $(DESTDIR)$(bash_completion_dir)/$(TARGET) $(INSTALL_DATA) $(TARGET)$(man1ext) $(DESTDIR)$(man1dir)/ + $(INSTALL_DATA) $(CONFIG)$(man5ext) $(DESTDIR)$(man5dir)/ installdirs: $(INSTALL_DIR) $(DESTDIR)$(bindir) - $(INSTALL_DIR) $(DESTDIR)$(confdir) + $(INSTALL_DIR) $(DESTDIR)$(sysconfdir) $(INSTALL_DIR) $(DESTDIR)$(docdir) $(INSTALL_DIR) $(DESTDIR)$(bash_completion_dir) $(INSTALL_DIR) $(DESTDIR)$(man1dir) + $(INSTALL_DIR) $(DESTDIR)$(man5dir) uninstall: $(RM) $(DESTDIR)$(bindir)/$(TARGET) - # only remove configuration file if unchanged - for file in $(CONFIGS); do \ - if cmp $$file $(DESTDIR)$(confdir)/$$file; then \ - $(RM) $(DESTDIR)$(confdir)/$$file; \ - fi \ - done - -$(RM) -d $(DESTDIR)$(confdir) - for file in $(DOCS); do \ + # Only remove configuration file if unchanged. + if cmp $(CONFIG) $(DESTDIR)$(sysconfdir)/$(CONFIG); \ + then \ + $(RM) $(DESTDIR)$(sysconfdir)/$(CONFIG); \ + fi + for file in $(DOCS); \ + do \ $(RM) $(DESTDIR)$(docdir)/$$file; \ done -$(RM) -d $(DESTDIR)$(docdir) $(RM) $(DESTDIR)$(bash_completion_dir)/$(TARGET) $(RM) $(DESTDIR)$(man1dir)/$(TARGET)$(man1ext) + $(RM) $(DESTDIR)$(man5dir)/$(CONFIG)$(man5ext) .PHONY: install installdirs uninstall @@ -37,6 +37,8 @@ Dependencies: bash grep coreutils +find +sed Licensing: @@ -5,16 +5,18 @@ TODO file for ctct `- to circumvent the necessity for eval * Honor $VISUAL. * Use git tags for future versions. -* Rename ctct/config.sh to ctct_config. * On `ctct -s <pattern>', do not match illegal sequences (e.g. a+b). * On `ctct -l', do only list legal names (e.g. not a+b). +* Use the EXIT_* variables. * [consider] On `ctct -d', check format of string. * [consider] Remove character restriction except '.', '/'. * [consider] Use `grep -F' for --search-by-name. -* Use the EXIT_* variables. +* [consider] Require at least one argument for --search-by-*. [CONFIGURE SCRIPT] * Take care of some_dir=/ (man page). +* Fully expand all variables found outside Makefile.in, like is already done + for sysconfdir_expanded. [FEATURES] * [consider] Allow for directories with special meaning (e.g. pictures/). @@ -29,11 +31,7 @@ TODO file for ctct * [consider] Use another default editor. `- nano, easily understandable. `- ed, the editor. +* Honor XDG user dirs. [MANUAL] * Add an EXAMPLE section to ctct(1). - -[BUGS] -* strange behaviour: - `- `ctct -S $'mobile\nabc' - `- `ctct -S $'mobile\na' diff --git a/ctct.bash_completion.in b/bash_completion.in index 54aa137..54aa137 100644 --- a/ctct.bash_completion.in +++ b/bash_completion.in @@ -591,12 +591,10 @@ default_confirm_deletion default_visual_program default_output_program default_input_program -default_user_config_dir default_fallback_editor default_datadir -default_confdir +sysconfdir_expanded bash_completion_dir -confdir target_alias host_alias build_alias @@ -642,11 +640,9 @@ enable_option_checking ac_precious_vars='build_alias host_alias target_alias -confdir bash_completion_dir default_datadir default_fallback_editor -default_user_config_dir default_input_program default_output_program default_visual_program @@ -1258,15 +1254,12 @@ if test -n "$ac_init_help"; then cat <<\_ACEOF Some influential environment variables: - confdir 'system wide configuration directory' bash_completion_dir 'directory to store bash-completion script in' default_datadir 'directory to store contact data in' default_fallback_editor 'editor to use if EDITOR is unset' - default_user_config_dir - 'user configuration directory' default_input_program 'the program that newly created or edited contact files get passed to on stdin' @@ -1711,46 +1704,41 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_config_files="$ac_config_files Makefile ctct.1 ctct_config.5 ctct.bash_completion config.sh" +ac_config_files="$ac_config_files Makefile ctct.1 ctct_config.5 bash_completion ctct_config" ac_config_files="$ac_config_files ctct" -# Do not use $(.) notation here, confdir shall allow for shell substitution. - -test -z "$confdir" && confdir='${sysconfdir}/${TARGET}' - test -z "$bash_completion_dir" \ && bash_completion_dir='${datarootdir}/bash-completion/completions' -# Used in manpage. Needs to be fully expanded. +# Used in manpage and the ctct script. Needs to be fully expanded. # Use a function to allow for local variables. fun() { - if test -z "$default_confdir" - then + local prefix="$prefix" + local TARGET="$PACKAGE_NAME" + local next - # If $prefix is unset by the user, set it to autoconf's default value: - test "$prefix" = NONE && local prefix=/usr/local + # If $prefix is unset by the user, set it to autoconf's default value: + test "$prefix" = NONE && prefix=/usr/local - # Prevent //. - test "$prefix" = / && local prefix='' + # Prevent //. + test "$prefix" = / && prefix='' - local TARGET="$PACKAGE_NAME" - default_confdir="$confdir" + sysconfdir_expanded="$sysconfdir" - # Resolve $confdir recursively (notably including $prefix): - while - eval "default_confdir_expand=\"$default_confdir\"" - test "$default_confdir" != "$default_confdir_expand" - do - default_confdir="$default_confdir_expand" - done - fi + # Expand $sysconfdir recursively (notably including $prefix): + while + eval "next=\"$sysconfdir_expanded\"" + test "$next" != "$sysconfdir_expanded" + do + sysconfdir_expanded="$next" + done }; fun @@ -1761,10 +1749,6 @@ test -z "$default_datadir" && default_datadir='$HOME/.ctct' test -z "$default_fallback_editor" && default_fallback_editor=vi -test -z "$default_user_config_dir" \ - && default_user_config_dir='$HOME/.config/'"$PACKAGE_NAME" - - test -z "$default_input_program" \ && default_input_program='cat' @@ -2493,8 +2477,8 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "ctct.1") CONFIG_FILES="$CONFIG_FILES ctct.1" ;; "ctct_config.5") CONFIG_FILES="$CONFIG_FILES ctct_config.5" ;; - "ctct.bash_completion") CONFIG_FILES="$CONFIG_FILES ctct.bash_completion" ;; - "config.sh") CONFIG_FILES="$CONFIG_FILES config.sh" ;; + "bash_completion") CONFIG_FILES="$CONFIG_FILES bash_completion" ;; + "ctct_config") CONFIG_FILES="$CONFIG_FILES ctct_config" ;; "ctct") CONFIG_FILES="$CONFIG_FILES ctct" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff --git a/configure.ac b/configure.ac index 8ffce4e..70cf150 100644 --- a/configure.ac +++ b/configure.ac @@ -23,47 +23,42 @@ AC_CONFIG_FILES( [Makefile] [ctct.1] [ctct_config.5] - [ctct.bash_completion] - [config.sh] + [bash_completion] + [ctct_config] ) AC_CONFIG_FILES([ctct], [chmod +x ctct]) -# Do not use $(.) notation here, confdir shall allow for shell substitution. -AC_ARG_VAR([confdir], ['system wide configuration directory']) -test -z "$confdir" && confdir='${sysconfdir}/${TARGET}' - AC_ARG_VAR([bash_completion_dir], ['directory to store bash-completion script in']) test -z "$bash_completion_dir" \ && bash_completion_dir='${datarootdir}/bash-completion/completions' -# Used in manpage. Needs to be fully expanded. -AC_SUBST([default_confdir]) +# Used in manpage and the ctct script. Needs to be fully expanded. +AC_SUBST([sysconfdir_expanded]) # Use a function to allow for local variables. fun() { - if test -z "$default_confdir" - then - - # If $prefix is unset by the user, set it to autoconf's default value: - test "$prefix" = NONE && local prefix=/usr/local - - # Prevent //. - test "$prefix" = / && local prefix='' - - local TARGET="$PACKAGE_NAME" - default_confdir="$confdir" - - # Resolve $confdir recursively (notably including $prefix): - while - eval "default_confdir_expand=\"$default_confdir\"" - test "$default_confdir" != "$default_confdir_expand" - do - default_confdir="$default_confdir_expand" - done - fi + local prefix="$prefix" + local TARGET="$PACKAGE_NAME" + local next + + # If $prefix is unset by the user, set it to autoconf's default value: + test "$prefix" = NONE && prefix=/usr/local + + # Prevent //. + test "$prefix" = / && prefix='' + + sysconfdir_expanded="$sysconfdir" + + # Expand $sysconfdir recursively (notably including $prefix): + while + eval "next=\"$sysconfdir_expanded\"" + test "$next" != "$sysconfdir_expanded" + do + sysconfdir_expanded="$next" + done }; fun @@ -73,10 +68,6 @@ test -z "$default_datadir" && default_datadir='$HOME/.ctct' AC_ARG_VAR([default_fallback_editor], ['editor to use if EDITOR is unset']) test -z "$default_fallback_editor" && default_fallback_editor=vi -AC_ARG_VAR([default_user_config_dir], ['user configuration directory']) -test -z "$default_user_config_dir" \ - && default_user_config_dir='$HOME/.config/'"$PACKAGE_NAME" - AC_ARG_VAR([default_input_program], ['the program that newly created or edited contact files get passed to on stdin']) test -z "$default_input_program" \ @@ -51,8 +51,7 @@ ctct \- a simple console contact manager .SH DESCRIPTION .P .B ctct -manages a set of simple contact entries, identified by -.IR name \. +manages a set of simple contact entries, identified by name\. If called with no special arguments, the contact entry identified by .I name @@ -126,13 +125,13 @@ See also .BR grep (1)\. .\" .TP -.B \-l, \-\-list\-all +.BR \-l ", " \-\-list\-all List all contacts alphabetically by name\. If a contact entry is composed of two dot separated parts, these parts' order is the one chosen at creation respectively renaming\. .\" .TP -.BI "\-e, \-\-edit " name +.BR \-e ", " \-\-edit " \fIname\fP" Edit and, if non-existent, create the entry identified by .IR name \. For the format of @@ -144,7 +143,7 @@ the actual name inside the contact entry, on whose format there are precisely no restrictions\. .\" .TP -.BI "\-d, \-\-delete " name \.\.\. +.BR \-d ", " \-\-delete " \fIname\fP \.\.\." Delete all specified contact entries\. .\" .TP @@ -159,7 +158,7 @@ to Show brief version and licensing information\. .\" .TP -.B \-h, \-\-help +.BR \-h ", " \-\-help Show a simple help text basically depicting the above options\. .\" .\" @@ -19,8 +19,7 @@ # ## DEFAULT SETTINGS: -system_config_dir="@default_confdir@" -user_config_dir="@default_user_config_dir@" +sysconfdir="@sysconfdir_expanded@" datadir="@default_datadir@" fallback_editor="@default_fallback_editor@" default_editor= # none - use $EDITOR @@ -31,10 +30,10 @@ confirm_deletion=@default_confirm_deletion@ confirm_default_yes=@default_confirm_default_yes@ ## USER SETTINGS: -test -f "$system_config_dir/config.sh" \ - && source "$system_config_dir/config.sh" -test -f "$user_config_dir/config.sh" \ - && source "$user_config_dir/config.sh" +test -f "$sysconfdir/ctct_config" \ + && source "$sysconfdir/ctct_config" +test -f "$user_config_file" \ + && source "$user_config_file" ## CONSTANTS: exec_name="${0##*/}" diff --git a/ctct_config.5.in b/ctct_config.5.in index a1f6184..4dcf063 100644 --- a/ctct_config.5.in +++ b/ctct_config.5.in @@ -27,7 +27,7 @@ ctct_config \- configuration of ctct The main configuration file for .BR ctct (1) is -.IR @default_confdir@/config\.sh \. +.IR @sysconfdir_expanded@/ctct_config \. The file is a .BR bash (1) script which is simply sourced by @@ -35,20 +35,19 @@ script which is simply sourced by It must not exit\. Any configuration is done by setting shell variables\. Configuration may be overriden in per-user configuration scripts, see -.BR user_config_dir \. +.BR user_config_file \. .P The following variables are recognized: .\" .TP -.B user_config_dir -The directory where the per user configuration file -.I config\.sh -is searched for\. +.B user_config_file +The per user configuration file. If set, this variable must contain the prefix .I $HOME or alternatively any other variable resolving to a directory below the respective home directory\. -.RI "The default value is " @default_user_config_dir@ \. +The default value is +.IR $HOME/.config/ctct_config" \. .\" .TP .B datadir @@ -176,11 +175,11 @@ file are stored by default\. .\" .SH FILES .TP -.I @default_confdir@/config\.sh +.I @sysconfdir_expanded@/ctct_config System wide configuration file\. .\" .TP -.I @default_user_config_dir@/config\.sh +.I $HOME/.config/config\.sh Default location of the user configuration file\. .\" .TP diff --git a/config.sh.in b/ctct_config.in index d0eb94e..0231725 100644 --- a/config.sh.in +++ b/ctct_config.in @@ -4,7 +4,6 @@ # default values are commented out # -# user_config_dir="@default_user_config_dir@" # datadir="@default_datadir@" # fallback_editor="@default_fallback_editor@" # default_editor= |