summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/emacs/init.el11
-rw-r--r--.config/login.d/00_path.sh4
-rw-r--r--.config/login.d/01_xdg.sh21
-rwxr-xr-x.local/bin/config-path16
4 files changed, 23 insertions, 29 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
index 68a845d..f8f19e0 100644
--- a/.config/emacs/init.el
+++ b/.config/emacs/init.el
@@ -77,7 +77,9 @@
;; This is also nice because I can do event-base programming for what
;; to do once a package is loaded, using :after.
-(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
+;; For some reason, el-get adds a bunch of 3rd-party repos to
+;; package-archives. I guess I'm ok with that? I don't have to
+;; manage them.
(setq package-enable-at-startup nil)
;; What packages el-get should get from ELPA (if it gets them at all)
@@ -86,11 +88,8 @@
(:name dtrt-indent :type elpa ;; Detect indent style for existing files
:after (dtrt-indent-mode 1))
(:name page-break-lines :type elpa ;; Display form-feeds pretty
- :after (progn
- (define-global-minor-mode global-page-break-lines-mode
- page-break-lines-mode page-break-lines-mode
- :group 'page-break-lines)
- (global-page-break-lines-mode 1)))
+ :before (advice-add 'page-break-lines-mode-maybe :override #'page-break-lines-mode)
+ :after (global-page-break-lines-mode 1))
(:name smart-tabs-mode :type elpa ;; Indent with tabs, align with spaces
:after (progn
(smart-tabs-mode 1)
diff --git a/.config/login.d/00_path.sh b/.config/login.d/00_path.sh
index a45f8fd..f4ca3a6 100644
--- a/.config/login.d/00_path.sh
+++ b/.config/login.d/00_path.sh
@@ -1,9 +1,7 @@
-#!/bin/sh
-
if type config-path &>/dev/null; then
config_path=config-path
else
# Bootstrap finding config-path
config_path="$HOME/.local/bin/config-path"
fi
-eval "$("$config_path" | sed 's/^/export /')"
+eval "$(IFS=$'\n'; lines=($("$config_path")); printf -- 'export %s\n' "${lines[@]}")"
diff --git a/.config/login.d/01_xdg.sh b/.config/login.d/01_xdg.sh
index d415608..4464764 100644
--- a/.config/login.d/01_xdg.sh
+++ b/.config/login.d/01_xdg.sh
@@ -1,33 +1,32 @@
-#!/bin/bash
-# This should be readable by /bin/sh, but I'm going to assume bash.
+# This should be readable by /bin/sh
# Sets up XDG environmental variables, so programs using them don't have to
# worry about checking if they are set.
# http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
-[[ -n $XDG_DATA_HOME ]] || export XDG_DATA_HOME="$HOME/.local/share"
-[[ -n $XDG_CONFIG_HOME ]] || export XDG_CONFIG_HOME="$HOME/.config"
-[[ -n $XDG_DATA_DIRS ]] || export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
-[[ -n $XDG_CONFIG_DIRS ]] || export XDG_CONFIG_DIRS="/etc/xdg"
-[[ -n $XDG_CACHE_HOME ]] || export XDG_CACHE_HOME="$HOME/.cache"
+[ -n "$XDG_DATA_HOME" ] || export XDG_DATA_HOME="$HOME/.local/share"
+[ -n "$XDG_CONFIG_HOME" ] || export XDG_CONFIG_HOME="$HOME/.config"
+[ -n "$XDG_DATA_DIRS" ] || export XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
+[ -n "$XDG_CONFIG_DIRS" ] || export XDG_CONFIG_DIRS="/etc/xdg"
+[ -n "$XDG_CACHE_HOME" ] || export XDG_CACHE_HOME="$HOME/.cache"
# Check if XDG_RUNTIME_DIR is set, but has a bogus setting
-if [[ -n $XDG_RUNTIME_DIR ]] && [[ ! -d $XDG_RUNTIME_DIR ]]; then
+if [ -n "$XDG_RUNTIME_DIR" ] && [ ! -d "$XDG_RUNTIME_DIR" ]; then
unset XDG_RUNTIME_DIR
fi
# Set XDG_RUNTIME_DIR if we can
-if [[ -z $XDG_RUNTIME_DIR ]] && type flock &>/dev/null; then
+if [ -z "$XDG_RUNTIME_DIR" ] && type flock &>/dev/null; then
_diy_xdg_runtime_login() {
export XDG_RUNTIME_DIR="$XDG_CACHE_HOME/xdg-runtime-dir/$HOSTNAME"
# There's a race condition here, between the `ln -s` and `flock`.
# But it's not like I'll be hammering a box with logins.
- if [[ ! -d "$XDG_RUNTIME_DIR" ]]; then
+ if [ ! -d "$XDG_RUNTIME_DIR" ]; then
local tmp="$(mktemp -d --tmpdir -- "${USER}@${HOSTNAME}-runtime.XXXXXXXXXX")"
mkdir -p -- "$XDG_CACHE_HOME/xdg-runtime-dir"
ln -sfT -- "$tmp" "$XDG_RUNTIME_DIR"
fi
- if ! [[ /dev/fd/7 -ef "$XDG_CACHE_HOME/xdg-runtime-dir/.lock" ]]; then
+ if ! [ /dev/fd/7 -ef "$XDG_CACHE_HOME/xdg-runtime-dir/.lock" ]; then
exec 7>"$XDG_CACHE_HOME/xdg-runtime-dir/.lock"
if flock -sn 7; then
# Unfortunately this doesn't survive across exec(1).
diff --git a/.local/bin/config-path b/.local/bin/config-path
index 7cd1fcd..1d4d4d1 100755
--- a/.local/bin/config-path
+++ b/.local/bin/config-path
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
# All the prefixes to consider
prefixes=(
@@ -61,14 +61,12 @@ main() {
done
# Finally, print the values
- # The `sed` bit here is the only time we call an external program
- {
- var_done PATH
- var_done MANPATH
- var_done LD_LIBRARY_PATH
- var_done RUBYLIB
- var_done PERL5LIB
- } | sed 's/^declare \(-\S* \)*//'
+ lines=()
+ for var in PATH MANPATH LD_LIBRARY_PATH RUBYLIB PERL5LIB; do
+ lines+=("$(var_done "$var")")
+ done
+ shopt -s extglob
+ printf -- '%s\n' "${lines[@]##declare *(-+([[:graph:]]) )}"
}
main "$@"