593 lines
22 KiB
Bash
Executable File
593 lines
22 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -e
|
||
# Some useful hints
|
||
# ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||
# • The critical mutt/neomutt files are in ’~/.config/mutt/’.
|
||
# • Put whatever global settings you want in ’muttrc’. mutt-wizard will add some
|
||
# lines to this file, which you shouldn't remove unless you know what you’re
|
||
# doing, but you can move them up/down over your personal config lines, if you
|
||
# need to. If you get binding conflict errors in mutt you might need to do this.
|
||
# • Each of the accounts that mutt-wizard generates will have custom settings set
|
||
# in a separate file in ’accounts/’. You can edit these freely if you want to
|
||
# tinker with settings specific to an account.
|
||
# • In ’/usr/share/mutt-wizard’ are several global config files, including mutt-
|
||
# wizard’s default settings. You can overwride this in your muttrc if you wish.
|
||
# • For Gmail accounts, remember also to enable third-party ("less secure") appli-
|
||
# cations before attempting installation.
|
||
# • Protonmail accounts will require you to set up "Protonmail Bridge" to access
|
||
# PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
|
||
# • If you have a university email, or enterprise-hosted email for work, there
|
||
# might be other hurdles or two-factor authentication you have to jump through.
|
||
# Some, for example, will want you to create a separate IMAP password, etc.
|
||
# • If you use an email server whose mailboxes are not in English, mutt-wizard
|
||
# might not be able to guess which is which, so you may have to manually set
|
||
# your Inbox, Sent, Trash, Drafts, etc. in your mutt config file. Do this after
|
||
# running the wizard in accounts/NAME.muttrc.
|
||
|
||
|
||
# isync
|
||
# msmtp
|
||
# neomutt
|
||
# notmuch-runtime
|
||
# pass
|
||
# git
|
||
# abook (optional) – contact store and tab completion
|
||
# cronie (optional) – auto-sync mails - alt.: fcron
|
||
# dunst (optional) – enable desktop notifications about new mail
|
||
# fcron (optional) – auto-sync mails - alt.: cronie
|
||
# libnotify (optional) – enable desktop notifications about new mail
|
||
# pam-gnupg (optional) – automatically unlock gpg keys at session login
|
||
# urlview (optional) – list URLs found in mails to open them in a browser
|
||
# elinks (optional) – view HTML email inside of the neomutt TUI
|
||
# links (optional) – view HTML email inside of the neomutt TUI
|
||
# lynx (optional) – view HTML email inside of the neomutt TUI
|
||
# w3m (optional) – view HTML email inside of the neomutt TUI
|
||
# w3m-img (optional) – view images inside of the neomutt TUI
|
||
# imagemagick (optional) – view images inside of the neomutt TUI
|
||
|
||
|
||
#set -x
|
||
apt install -y git neomutt urlscan w3m w3m-img ripmime isync msmtp vdirsyncer pass mailsync libnotify-bin lynx urlview
|
||
|
||
|
||
# Shared variables for the heredocs
|
||
BASE_URL='https://api.github.com/repos'
|
||
USER='LukeSmithxyz'
|
||
PROJECT='mutt-wizard'
|
||
LICENSE_PAGE_URL="https://raw.githubusercontent.com/${USER}/${PROJECT}/master/LICENSE"
|
||
#LICENSE=$(curl -s "${LICENSE_PAGE_URL}")
|
||
LICENSE=GPL
|
||
RELEASES_URL="${BASE_URL}/${USER}/${PROJECT}"/releases
|
||
PRERELEASE=false
|
||
|
||
## No releases so no api page other than license so use git repo
|
||
# CONTENT=$(curl -s ${RELEASES_URL}/latest)
|
||
# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url')
|
||
LATEST_URL=https://github.com/${USER}/${PROJECT}
|
||
echo "LATEST_URL: " "${LATEST_URL}"
|
||
|
||
#WORKDIR=$(mktemp -d -p $HOME/tmptmp -t mutt-wizard_build-XXXXXXX) || exit 1
|
||
#trap "rm -rf '${WORKDIR}'" EXIT
|
||
WORKDIR="/var/tmp/mutt-wizard-workdir"
|
||
|
||
# RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name')
|
||
|
||
# LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url')
|
||
# wget -c ${LICENSE_URL}
|
||
|
||
VERSION=$( date +%Y-%m-%d_ )git
|
||
VERSION=1.0
|
||
RELEASE=git
|
||
|
||
## Create directories and configuration files
|
||
# '$ mw add' and follow the prompts.
|
||
ALIAS_DIR=".zshrc.d"
|
||
BUILD_DIR=/var/tmp/build_mutt-wizard
|
||
MUTTWIZARDCONF="/usr/local/share/mutt-wizard"
|
||
#MUTTDIR="$HOME/.config/mutt"
|
||
MUTTDIR="${BUILD_DIR}/skel/.config/mutt"
|
||
#MUTTDOCS="/usr/share/doc/mutt-wizard"
|
||
MUTTDOCS="${BUILD_DIR}/doc-pak"
|
||
EXAMPLES="${MUTTDOCS}/examples"
|
||
ACCDIR="${MUTTDIR}/accounts"
|
||
COLORSCHEMES="${MUTTDIR}/colorschemes"
|
||
FONTS="${MUTTDIR}/fonts"
|
||
|
||
# email settings
|
||
PROFILE_NAME=example_profile
|
||
EMAIL=foobar@foo.bar
|
||
REAL_NAME="foo bar"
|
||
|
||
## Checkinstall variables - see defaults in /etc/checkinstallrc
|
||
DOC_DIR=/usr/share/doc
|
||
|
||
# make a new temporary directory for this use to avoid permission issues.
|
||
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
||
#-------------------------------------------------------------------------------
|
||
wget -c -P ${MUTTDOCS} ${LICENSE_PAGE_URL}
|
||
|
||
mkdir -p ${BUILD_DIR}
|
||
|
||
# make a containing directory
|
||
mkdir -p /var/tmp/${PROJECT}-"${RELEASE}"
|
||
cd /var/tmp/${PROJECT}-"${RELEASE}" || exit
|
||
|
||
#--------------------------------------------------------------------------------------
|
||
## Create and populate the install scripts and documentation for checkinstall
|
||
cat > ${BUILD_DIR}/description-pak << EOF
|
||
mutt-wizard
|
||
|
||
A system for automatically configuring mutt and isync with a simple interface and safe passwords
|
||
EOF
|
||
|
||
# | preinstall-pak | Run BEFORE the package is INSTALLED |
|
||
cat > ${BUILD_DIR}/preinstall-pak << EOF
|
||
#!/usr/bin/env bash
|
||
EOF
|
||
|
||
# | postinstall-pak | Run AFTER the package is INSTALLED |
|
||
cat > ${BUILD_DIR}/postinstall-pak << EOF
|
||
#!/usr/bin/env bash
|
||
set -e
|
||
set -x
|
||
# For every user in /home/ ...
|
||
for HOME_U in /home/*?; do
|
||
|
||
# Obtain the username
|
||
USER=$( basename ${HOME_U} )
|
||
|
||
# In case the user is active (exists in /etc/shadow) ...
|
||
if [ $( grep -c "${USER}:.*:.*:.*:.*:.*:::" /etc/shadow ) == 1 ] \
|
||
&& [ $( grep -c "${USER}:.*:.*:.*:.*:.*:/bin/.*sh" /etc/passwd ) == 1 ] \
|
||
&& [ -d ${HOME_U}/.config ] \
|
||
&& [ -d ${HOME_U} ]; then
|
||
|
||
# Copies files a user has deleted that you want to put back again but does not update files that already exist.
|
||
getent passwd |
|
||
while IFS=: read username x uid gid gecos home shell
|
||
do
|
||
[[ "$username" == root || ! -d "$home" ]] && continue
|
||
tar -cf - -C /etc/skel/.config/mutt . | sudo -Hu "$username" tar --skip-old-files -xf -
|
||
done
|
||
fi
|
||
done
|
||
EOF
|
||
|
||
# | preremove-pak | Run BEFORE the package is REMOVED |
|
||
cat > ${BUILD_DIR}/preremove-pak << EOF
|
||
#!/usr/bin/env bash
|
||
EOF
|
||
|
||
# | postremove-pak | Run AFTER the package is REMOVED
|
||
cat > ${BUILD_DIR}/postremove-pak << EOF
|
||
#!/usr/bin/env bash
|
||
EOF
|
||
|
||
## Make the doc-pak directory for README, INSTALL, COPYING, Changelog, TODO, CREDITS
|
||
mkdir -p ${BUILD_DIR}/doc-pak
|
||
#cp README INSTALL COPYING Changelog TODO CREDITS doc-pak
|
||
|
||
|
||
cat > ${BUILD_DIR}/doc-pak/README << 'EOF'
|
||
Some useful hints
|
||
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||
• The critical mutt/neomutt files are in ’~/.config/mutt/’.
|
||
• Put whatever global settings you want in ’muttrc’. mutt-wizard will add some
|
||
lines to this file, which you shouldn't remove unless you know what you’re
|
||
doing, but you can move them up/down over your personal config lines, if you
|
||
need to. If you get binding conflict errors in mutt you might need to do this.
|
||
• Each of the accounts that mutt-wizard generates will have custom settings set
|
||
in a separate file in ’accounts/’. You can edit these freely if you want to
|
||
tinker with settings specific to an account.
|
||
• In ’/usr/share/mutt-wizard’ are several global config files, including mutt-
|
||
wizard’s default settings. You can overwride this in your muttrc if you wish.
|
||
• For Gmail accounts, remember also to enable third-party ("less secure") appli-
|
||
cations before attempting installation.
|
||
• Protonmail accounts will require you to set up "Protonmail Bridge" to access
|
||
PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
|
||
• If you have a university email, or enterprise-hosted email for work, there
|
||
might be other hurdles or two-factor authentication you have to jump through.
|
||
Some, for example, will want you to create a separate IMAP password, etc.
|
||
• If you use an email server whose mailboxes are not in English, mutt-wizard
|
||
might not be able to guess which is which, so you may have to manually set
|
||
your Inbox, Sent, Trash, Drafts, etc. in your mutt config file. Do this after
|
||
running the wizard in accounts/NAME.muttrc.
|
||
|
||
Help the project
|
||
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||
• Try mutt-wizard out on weird machines and weird email addresses and report any
|
||
errors.
|
||
• Open a PR to add new server information into ’domains.csv’, so their users can
|
||
more easily use mutt-wizard.
|
||
• If nothing else, donate: https://paypal.me/LukeMSmith !
|
||
|
||
See Luke’s website: https://lukesmith.xyz/ - email him at: luke<at>lukesmith.xyz
|
||
|
||
--> mutt-wizard is free/libre software, licensed under the GPLv3 <--
|
||
EOF
|
||
|
||
|
||
#--------------------------------------------------------------------------------------
|
||
|
||
## Files and directories to be created:
|
||
# /usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
||
# /usr/local/share/mutt-wizard/mutt-wizard-colors.muttrc
|
||
# $HOME/.config/mutt/muttrc
|
||
# $HOME/.config/mutt/colorschemes/colors-gruvbox-shuber-extended.muttrc
|
||
# $HOME/.config/mutt/colorschemes/colors-gruvbox-shuber.muttrc
|
||
# $HOME/.config/mutt/accounts/1-example_profile.muttrc
|
||
|
||
#--------------------------------------------------------------------------------------
|
||
#---------------------------------------------------------------------------------------
|
||
|
||
cat > ${BUILD_DIR}/checkinstall_it.sh << FOE
|
||
set -e
|
||
#set -x
|
||
|
||
echo "******************************"
|
||
echo "ENTERING CHECKINSTALL"
|
||
echo "******************************"
|
||
|
||
echo "Making MUTTDIR: ${MUTTDIR} from ${PWD}"
|
||
|
||
echo "Making MUTTDIR ${MUTTDIR}"
|
||
mkdir -p ${MUTTDIR}
|
||
|
||
echo "Making COLORSCHEMES ${COLORSCHEMES}"
|
||
mkdir -p ${COLORSCHEMES}
|
||
|
||
#echo "Making ACCDIR ${ACCDIR}"
|
||
#mkdir -p ${ACCDIR}
|
||
|
||
echo "Making MUTTDOCS ${MUTTDOCS}"
|
||
mkdir -p ${MUTTDOCS}
|
||
|
||
echo "Making FONTS ${FONTS}"
|
||
mkdir -p ${FONTS}
|
||
|
||
mkdir -p ${EXAMPLES}
|
||
mkdir -p ${EXAMPLES}/colorschemes
|
||
mkdir -p ${EXAMPLES}/accounts
|
||
mkdir -p ${EXAMPLES}/fonts
|
||
|
||
#---------------------------------------------------------------------------------
|
||
mkdir -p ${BUILD_DIR}/skel/${ALIAS_DIR}/
|
||
echo 'alias mutt="neomutt "' >> ${BUILD_DIR}/skel/${ALIAS_DIR}/002_neomutt.zsh
|
||
#---------------------------------------------------------------------------------
|
||
|
||
## git clone https://github.com/sheoak/neomutt-powerline-nerdfonts.git
|
||
|
||
cat <<EOF | tee ${COLORSCHEMES}/gruvbox-powerline.neomuttrc >> ${EXAMPLES}/colorschemes/gruvbox-powerline.neomuttrc
|
||
# cancel theme colors
|
||
color index color223 color234 ~Q
|
||
color index color223 color234 ~P
|
||
color index color223 color234 ~T
|
||
color index color223 color234 ~O
|
||
color index color223 color234 ~F
|
||
color index color223 color234 ~N
|
||
|
||
# add some nice custom coloring to the message list
|
||
# thanks to new neomutt features
|
||
# http://www.mutt.org/doc/manual/#patterns
|
||
# https://neomutt.org/feature/index-color
|
||
color index_subject color109 color234 "~P !~T !~D"
|
||
color index_author color109 color234 "~P !~T !~D"
|
||
color index_subject color243 color234 "~Q !~T !~D"
|
||
color index_author color243 color234 "~Q !~T !~D"
|
||
color index_subject brightcolor142 color234 "~N !~T !~D"
|
||
color index_author brightcolor142 color234 "~N !~T !~D"
|
||
color index_subject color142 color234 "~O !~T !~D"
|
||
color index_author color142 color234 "~O !~T !~D"
|
||
color index_subject color214 color234 "~F !~T !~D"
|
||
color index_author color214 color234 "~F !~T !~D"
|
||
color index_subject brightcolor214 color234 "~F ~N !~T !~D"
|
||
color index_author brightcolor214 color234 "~F ~N !~T !~D"
|
||
color index_subject color167 color234 "~= !~T !~D"
|
||
color index_author color167 color234 "~= !~T !~D"
|
||
color index_subject brightcolor109 color234 "~P ~N !~T !~D"
|
||
color index_author brightcolor109 color234 "~P ~N !~T !~D"
|
||
color index color234 color223 "~T"
|
||
color index color229 color124 "~D"
|
||
|
||
EOF
|
||
|
||
|
||
cat <<EOF | tee ${FONTS}/powerline.neomuttrc >> ${EXAMPLES}/fonts/powerline.neomuttrc
|
||
# ----------------------------------------------------------------------------
|
||
# Powerline / nerdfont
|
||
# This is a bit "hackish" due to neomutt limitations
|
||
#
|
||
# Author: Sheoak <contact [at] sheoak.fr>
|
||
# ----------------------------------------------------------------------------
|
||
set index_format=" %zs %zc %zt %{!%d %b} . %-28.28L %?M?(%1M)& ? %?X?&·? %s"
|
||
set pager_format=" %n %zc %T %s%* %{!%d %b · %H:%M} %?X? %X ? %P "
|
||
set status_format = " %f%?r? %r? %m %?n? %n ? %?d? %d ?%?t? %t ?%?F? %F? %> %?p? %p ?"
|
||
set vfolder_format = " %N %?n?%3n& ? %8m · %f"
|
||
set attach_format = "%u%D %T%-75.75d %?T?%& ? %5s · %m/%M"
|
||
|
||
# no addressed to me, to me, group, cc, sent by me, mailing list
|
||
set to_chars=""
|
||
# unchanged mailbox, changed, read only, attach mode
|
||
set status_chars = " "
|
||
ifdef crypt_chars set crypt_chars = " "
|
||
set flag_chars = " "
|
||
|
||
set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
|
||
tag-transforms "replied" "↻ " \
|
||
"encrytpted" "" \
|
||
"signed" "" \
|
||
"attachment" "" \
|
||
|
||
# The formats must start with 'G' and the entire sequence is case sensitive.
|
||
tag-formats "replied" "GR" \
|
||
"encrypted" "GE" \
|
||
"signed" "GS" \
|
||
"attachment" "GA" \
|
||
|
||
color status white black
|
||
# powerline status bar hack
|
||
color status green black ''
|
||
color status yellow black ''
|
||
color status red black ''
|
||
color status brightblack blue '(.*)' 1
|
||
color status blue black '.*()' 1
|
||
color status black blue '\s* [0-9]+\s*'
|
||
color status blue black '().*$' 1
|
||
color status yellow black '()\s*\s*[0-9]+\s*' 1
|
||
color status black yellow '\s*\s*[0-9]+\s*'
|
||
color status blue yellow '() ([0-9]+%|all|end) \s*' 1
|
||
color status black blue ' ([0-9]+%|all|end) \s*'
|
||
color status yellow black '()\s*' 1
|
||
color status default black ''
|
||
|
||
EOF
|
||
|
||
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/neonwolf-256.neomuttrc
|
||
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/zenburn.neomuttrc
|
||
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/vombatidae.neomuttrc
|
||
wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/solarized-dark-256.neomuttrc
|
||
|
||
#wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber.muttrc;hb=master
|
||
#wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber-extended.muttrc;hb=master
|
||
|
||
cp -a ${COLORSCHEMES} ${EXAMPLES}/colorschemes
|
||
|
||
#cat >${COLORSCHEMES}/colors-gruvbox-shuber-extended.muttrc <<EOF
|
||
cat <<EOF | tee ${COLORSCHEMES}/colors-gruvbox-shuber-extended.muttrc >> ${EXAMPLES}/colorschemes/colors-gruvbox-shuber-extended.muttrc
|
||
color compose header color223 color234
|
||
color compose security_encrypt color175 color234
|
||
color compose security_sign color109 color234
|
||
color compose security_both color142 color234
|
||
color compose security_none color208 color234
|
||
EOF
|
||
|
||
#cat >${COLORSCHEMES}/colors-gruvbox-shuber.muttrc <<EOF
|
||
cat <<EOF | tee ${COLORSCHEMES}/colors-gruvbox-shuber.muttrc >> ${EXAMPLES}/colorschemes/colors-gruvbox-shuber.muttrc
|
||
# gruvbox dark (contrast dark):
|
||
|
||
# bg0 = 234
|
||
# bg1 = 237
|
||
# bg2 = 239
|
||
# bg3 = 241
|
||
# bg4 = 243
|
||
#
|
||
# gray = 245
|
||
#
|
||
# fg0 = 229
|
||
# fg1 = 223
|
||
# fg2 = 250
|
||
# fg3 = 248
|
||
# fg4 = 246
|
||
#
|
||
# red = 167
|
||
# green = 142
|
||
# yellow = 214
|
||
# blue = 109
|
||
# purple = 175
|
||
# aqua = 108
|
||
# orange = 208
|
||
|
||
|
||
# See http://www.mutt.org/doc/manual/#color
|
||
|
||
color attachment color109 color234
|
||
color bold color229 color234
|
||
color error color167 color234
|
||
color hdrdefault color246 color234
|
||
color indicator color223 color237
|
||
color markers color243 color234
|
||
color normal color223 color234
|
||
color quoted color250 color234
|
||
color quoted1 color108 color234
|
||
color quoted2 color250 color234
|
||
color quoted3 color108 color234
|
||
color quoted4 color250 color234
|
||
color quoted5 color108 color234
|
||
color search color234 color208
|
||
color signature color108 color234
|
||
color status color234 color250
|
||
color tilde color243 color234
|
||
color tree color142 color234
|
||
color underline color223 color239
|
||
|
||
color sidebar_divider color250 color234
|
||
color sidebar_new color142 color234
|
||
|
||
color index color142 color234 ~N
|
||
color index color108 color234 ~O
|
||
color index color109 color234 ~P
|
||
color index color214 color234 ~F
|
||
color index color175 color234 ~Q
|
||
color index color167 color234 ~=
|
||
color index color234 color223 ~T
|
||
color index color234 color167 ~D
|
||
|
||
color header color214 color234 "^(To:|From:)"
|
||
color header color142 color234 "^Subject:"
|
||
color header color108 color234 "^X-Spam-Status:"
|
||
color header color108 color234 "^Received:"
|
||
|
||
color body color142 color234 "[a-z]{3,256}://[-a-zA-Z0-9@:%._\\+~#=/?&,]+"
|
||
#color body color142 color234 "[a-zA-Z]([-a-zA-Z0-9_]+\\.){2,256}[-a-zA-Z0-9_]{2,256}"
|
||
color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||
color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
||
color body color234 color214 "[;:]-*[)>(<lt;|]"
|
||
color body color229 color234 "\\*[- A-Za-z]+\\*"
|
||
|
||
color body color214 color234 "^-.*PGP.*-*"
|
||
color body color142 color234 "^gpg: Good signature from"
|
||
color body color167 color234 "^gpg: Can't.*$"
|
||
color body color214 color234 "^gpg: WARNING:.*$"
|
||
color body color167 color234 "^gpg: BAD signature from"
|
||
color body color167 color234 "^gpg: Note: This key has expired!"
|
||
color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
|
||
color body color214 color234 "^gpg: can't handle these multiple signatures"
|
||
color body color214 color234 "^gpg: signature verification suppressed"
|
||
color body color214 color234 "^gpg: invalid node with packet of type"
|
||
EOF
|
||
|
||
|
||
|
||
|
||
|
||
# auto-generated with mutt-wizard: 'mw add' and follow the instructions
|
||
# mailboxes populated from the email account imap server so for a clean
|
||
# account just put in the standard =Inbox =Drafts =Trash =Sent =Junk
|
||
|
||
#mkdir -p $ACCDIR/${PROFILE_NAME}
|
||
|
||
#cat > $ACCDIR/README <<EOF
|
||
# To add additional mail accounts for mutt you can use mutt-wizard:
|
||
#
|
||
# '$ mw add'
|
||
#
|
||
# and follow the prompts.
|
||
#EOF
|
||
|
||
|
||
#cat >> ${MUTTDIR}/muttrc <<'EOF'
|
||
cat <<EOF | tee ${MUTTDIR}/muttrc >> ${EXAMPLES}/muttrc
|
||
source /usr/local/share/mutt-wizard/mutt-wizard.muttrc
|
||
|
||
set editor = nvim
|
||
set sort = threads
|
||
set sort_aux = reverse-last-date-received
|
||
color progress white red
|
||
|
||
source colorschemes/solarized-dark-256.neomuttrc
|
||
|
||
source fonts/powerline.neomuttrc
|
||
|
||
EOF
|
||
|
||
|
||
#mkdir -p $ACCDIR/${PROFILE_NAME}
|
||
|
||
## Since this is an example not a working profile it just gets copied to the examples.
|
||
cat > ${EXAMPLES}/accounts/1-${PROFILE_NAME}.muttrc <<EOF
|
||
# vim: filetype=neomuttrc
|
||
# muttrc file for account ${PROFILE_NAME}
|
||
set realname = ${REAL_NAME}
|
||
set from = "${EMAIL}"
|
||
set sendmail = "msmtp -a ${PROFILE_NAME}"
|
||
alias me ${REAL_NAME} <${EMAIL}>
|
||
set folder = "$HOME/.local/share/mail/${PROFILE_NAME}"
|
||
set header_cache = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/headers
|
||
set message_cachedir = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/bodies
|
||
set mbox_type = Maildir
|
||
EOF
|
||
|
||
|
||
## Checkinstall variables - see defaults in /etc/checkinstallrc
|
||
DOC_DIR=/usr/share/doc
|
||
|
||
# make a new temporary directory for this use to avoid permission issues.
|
||
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
||
mkdir -p '${BASE_TMP_DIR}'
|
||
|
||
# do your work
|
||
checkinstall -y --fstrans \
|
||
--pkgname=mutt-wizard \
|
||
--pkgversion=${VERSION}\
|
||
--pkgrelease=${RELEASE} \
|
||
--pkgarch=amd64 \
|
||
--pkggroup=admin \
|
||
--pkglicense=LICENSE \
|
||
--pkgsource=${LATEST_URL} \
|
||
--maintainer=cyteen@ring-zero.co.uk \
|
||
--requires=neomutt,isync,msmtp,pass \
|
||
--recommends=abook,nomuch,lynx,libnotify-bin,urlview \
|
||
--suggests=mailsync \
|
||
-D \
|
||
bash ${BUILD_DIR}/install.sh
|
||
FOE
|
||
|
||
echo "Writing install.sh to: ${BUILD_DIR}/install.sh"
|
||
cat > ${BUILD_DIR}/install.sh << FOE
|
||
#!/usr/bin/env bash
|
||
set -e
|
||
#set -x
|
||
|
||
|
||
## Download and copy the latest version to /usr/local/bin and make executable
|
||
echo "Creating temporary working directory ${WORKDIR}"
|
||
mkdir -p ${WORKDIR}
|
||
if [ -d "${WORKDIR}" ]; then
|
||
echo "WORKDIR: ${WORKDIR} exists."
|
||
if [ -d "${WORKDIR}"/mutt-wizard ]; then
|
||
echo "Removing exist mutt-wizard directory"
|
||
echo "ERROR:"
|
||
echo "This script cannot delete this directory you will need to 'rm -rf ${WORKDIR}/mutt-wizard' from a terminal.'"
|
||
exit 1
|
||
#rm -rf ${WORKDIR}/mutt-wizard
|
||
fi
|
||
echo "Cloning new repo with:"
|
||
echo "git clone ${LATEST_URL} ${WORKDIR}"
|
||
#GIT_INDEX_FILE="${WORKDIR}/index" git clone ${LATEST_URL} ${WORKDIR}
|
||
git clone ${LATEST_URL} ${WORKDIR}/mutt-wizard
|
||
cd ${WORKDIR}/mutt-wizard
|
||
make install
|
||
fi
|
||
|
||
## split the existing mutt-wizard.muttrc into two to separate the colours from everything else so other colourschemes can be used.
|
||
|
||
if [ -f "${MUTTWIZARDCONF}"/mutt-wizard.muttrc ]; then
|
||
|
||
cd ${MUTTWIZARDCONF} && \
|
||
csplit --suppress-matched ${MUTTWIZARDCONF}/mutt-wizard.muttrc '/^\(# Default index colors:\).*/' && \
|
||
if [ -f ${MUTTWIZARDCONF}/xx00 ]; then
|
||
echo "Moving csplit ${BUILD_DIR}/xx00 to ${MUTTWIZARDCONF}/mutt-wizard.muttrc"
|
||
mv ${MUTTWIZARDCONF}/xx00 ${MUTTWIZARDCONF}/mutt-wizard.muttrc | tee ${EXAMPLES}/mutt-wizard.muttrc
|
||
else
|
||
echo "ERROR: split file is missing."
|
||
fi
|
||
if [ -f ${MUTTWIZARDCONF}/xx01 ]; then
|
||
echo "Moving csplit ${BUILD_DIR}/xx01 to ${MUTTWIZARDCONF}/mutt-wizard-colors.muttrc"
|
||
mv ${MUTTWIZARDCONF}/xx01 ${MUTTWIZARDCONF}/mutt-wizard-colors.muttrc | tee ${EXAMPLES}/mutt-wizard-colors.muttrc
|
||
else
|
||
echo "ERROR: split file is missing."
|
||
fi
|
||
else
|
||
echo "${MUTTWIZARDCONF}/mutt-wizard.muttrc is missing."
|
||
fi
|
||
|
||
## Copy the local contents of the skel directory to /etc/skel
|
||
if [ -d "${BUILD_DIR}"/skel ]; then
|
||
echo "Copying files to /etc/skel from ${BUILD_DIR}/skel"
|
||
cp -dr ${BUILD_DIR}/skel/.config/ /etc/skel/
|
||
else
|
||
echo "Missing ${BUILD_DIR}/skel"
|
||
fi
|
||
FOE
|
||
|
||
bash ${BUILD_DIR}/checkinstall_it.sh
|
||
#mbsync ${PROFILE_NAME}
|
||
|
||
dpkg -c /var/tmp/${PROJECT}-${RELEASE}/mutt-wizard_${VERSION}-${RELEASE}_amd64.deb
|
||
|
||
#lsd --tree /usr/share/doc/mutt-wizard/
|
||
|
||
#lsd --tree /var/tmp/build_mutt-wizard/skel/.config/mutt
|
||
|
||
#lsd --tree /etc/skel/.config/mutt
|