diff options
Diffstat (limited to 'mail/mew/files/user-install.tmpl')
-rw-r--r-- | mail/mew/files/user-install.tmpl | 374 |
1 files changed, 374 insertions, 0 deletions
diff --git a/mail/mew/files/user-install.tmpl b/mail/mew/files/user-install.tmpl new file mode 100644 index 0000000..ee1a7ad --- /dev/null +++ b/mail/mew/files/user-install.tmpl @@ -0,0 +1,374 @@ +#!/bin/sh + +PREFIX=%%PREFIX%% +EMACSDIR=%%EMACSDIR%% +ELISPDIR=%%ELISPDIR%% +SAMPLEDIR=%%SAMPLEDIR%% + +AWK=%%AWK%% +CAT=%%CAT%% +CP=%%CP%% +ECHO=%%ECHO%% +MKDIR="%%MKDIR%%" +RM=%%RM%% +SED=%%SED%% +TOUCH=%%TOUCH%% +DIALOG=/usr/bin/dialog + +select() +{ + local Language key + Language="\ +Choose a language when you write mails.\n\ + (Now is \"${language}\" selected.)" + ${DIALOG} --title "Choose the Language" \ + --hline "Select Items and Quit when finished" \ + --menu "${Language}" -1 -1 2 \ + English "English" \ + Japanese "japanese" \ + 2> /tmp/menu.$$ + retval=$? + key=`${CAT} /tmp/menu.$$|${SED} -e 's/\"//g'` + ${RM} -f /tmp/menu.$$ + case $retval in + 0) if [ -z ${key} ]; then return; fi ;; + 1) return ;; + 255) return ;; + esac + language=${key} +# echo citation:key=${key},dot_emacs=${dot_emacs}>>/tmp/temp +} + +input_data() +# argument No.1 ($1) : Key words (string) +# argument No.2 ($2) : Variable for the Key words (string) +# argument No.3 ($3) : unit for the variable (string) +{ + local key +# echo '$1='$1 +# echo '$2='$2 +# echo '$3='$3 +# exit 1 +# echo '${nameserver}='${mail_address} +# eval echo '${'$2'}' + eval key='${'$2'}' +# echo key=${key} +# exit 1 + if [ ! -z ${key} ]; then + ${DIALOG} --title "Confirm $1" \ + --hline "Press Yes/No" \ + --yesno "$1 $3 has set \"${key}\". Is this OK?" -1 -1 + retval=$? + if [ X"${retval}" = "X0" -o X"${retval}" = "X255" ]; then return; fi + fi + ${DIALOG} --title "Set $1 $3" \ + --hline "Write $1 $3" \ + --inputbox "Specify $1 $3" -1 -1 \ + 2> /tmp/input.$$ + eval $2=`${CAT} /tmp/input.$$` + ${RM} -f /tmp/input.$$ +} + +options() +{ + local Options keys del_keys + Options="\ +Please select Mew functions that you want to. To select a function, \n\ +use the arrow keys to move to it and press [SPACE]. To de-select it, \n\ +press [SPACE] again. Select OK or Cancel to leave this menu." + del_keys="Highlight Citation Cite_Change Sign_Change" + ${DIALOG} --title "Select Mew functions" \ + --hline "" \ + --checklist "${Options}" -1 -1 4 \ + Highlight "highlight body for Mew(Japanese)" ${options_Highlight} \ + Citation "Citation with the mail." ${options_Citation} \ + Cite_Change "Change citation English <--> Japanese." ${options_Cite_Change} \ + Sign_Change "Change signature English <--> Japanese." ${options_Sign_Change} \ + 2> /tmp/checklist.$$ + retval=$? + keys=`${CAT} /tmp/checklist.$$|${SED} -e 's/\"//g'` + ${RM} -f /tmp/checklist.$$ + case $retval in + 1) return ;; + 255) return ;; + esac + dot_emacs="" +# echo keys=$keys + for k in ${keys}; do + del_keys=`${ECHO} ${del_keys}|${SED} -e "s/ *${k}//g"` +# echo del_keys=${del_keys} +# echo k=$k + case ${k} in + Highlight) + dot_emacs="${dot_emacs} dot.emacs-highlight-body.el" + options_Highlight=ON + ;; + Citation) + citation +# echo options:key=${k},dot_emacs=${dot_emacs}>>/tmp/temp + options_Citation=ON + ;; + Cite_Change) + dot_emacs="${dot_emacs} dot.emacs-cite-change.el" + options_Cite_Change=ON + ;; + Sign_Change) + dot_emacs="${dot_emacs} dot.emacs-signature-change.el" + options_Sign_Change=ON + ;; + esac + done +# exit 1 + for k in ${del_keys}; do +# echo k=$k + case ${k} in + Highlight) + dot_emacs=`${ECHO} ${dot_emacs}|${SED} -e "s/ *dot\.emacs-highlight-body\.el//"` + options_Highlight=OFF + ;; + Citation) + options_Citation=OFF + ;; + Cite_Change) + dot_emacs=`${ECHO} ${dot_emacs}|${SED} -e "s/ *dot\.emacs-cite-change\.el//"` + options_Cite_Change=OFF + ;; + Sign_Change) + dot_emacs=`${ECHO} ${dot_emacs}|${SED} -e "s/ *dot\.emacs-signature-change\.el//"` + options_Sign_Change=OFF + ;; + esac + done +# echo dot_emacs=${dot_emacs} +# echo del_keys=${del_keys} +# exit 1 +} + +citation() +{ + dot_emacs=`${ECHO} ${dot_emacs}|${SED} -e "s/ *dot\.emacs-cite.[a-z]*//g"` + case ${language} in + English) + dot_emacs="${dot_emacs} dot.emacs-cite.el" + ;; + Japanese) + dot_emacs="${dot_emacs} dot.emacs-cite.ja.el" + ;; + esac +# echo citation:key=${key},dot_emacs=${dot_emacs}>>/tmp/temp +} + +case ${TERM} in +emacs) + ${ECHO} "Here is \"Emacs\" shell. Try on other terminal." + exit 1 + ;; +esac + +version="%%VERSION%%" +#version="1.92" + +SEDCMD='${SED} + -e "s,%%prefix%%,${PREFIX},g" + -e "s,%%emacsdir%%,${EMACSDIR},g" + -e "s,%%elispdir%%,${ELISPDIR},g" + -e "s,%%version%%,${version},g" + -e "s,%%nameserver%%,${nameserver},g" + -e "s,%%mail_address%%,${mail_address},g" + -e "s,%%domain_name%%,${domain_name},g" + -e "s,%%default_domain_name%%,${default_domain_name},g" + -e "s,%%signature%%,${signature},g"' + +### +# Check ~/.backup directory exist. +# +${MKDIR} ${HOME}/.backup + +### +# Backup all files. +# +${CP} ${HOME}/${dot_emacs_file} ${HOME}/.backup/${dot_emacs_file}.$$ +${CP} ${HOME}/.im/Config ${HOME}/.backup/Config.$$ + +### +# Check ~/.im/Config file exist. +# +if [ ! -f ${HOME}/.im/Config ]; then + ${ECHO} "${HOME}/.im/Config: Not found. Do imsetup first." + exit 1 +else + mail_address=`${AWK} '/^Address=/{sub(/^Address=/,"");print}' ${HOME}/.im/Config` + domain_name=`${AWK} '/^FromDomain=/{sub(/^FromDomain=/,"");print}' ${HOME}/.im/Config` + default_domain_name=`${AWK} '/^ToDomain=/{sub(/^ToDomain=/,"");print}' ${HOME}/.im/Config` + if [ X"${mail_address}" = "X%%mail_address%%" ]; then + mail_address="" + else + ${CP} ${HOME}/.im/Config ${HOME}/.backup/Config + ${SED} -e 's/^\(Address=\).*$/\1%%mail_address%%/' \ + < ${HOME}/.backup/Config > ${HOME}/.im/Config + fi + if [ X"${domain_name}" = "X%%domain_name%%" ]; then + domain_name="" + else + ${CP} ${HOME}/.im/Config ${HOME}/.backup/Config + ${SED} -e 's/^\(FromDomain=\).*$/\1%%domain_name%%/' \ + < ${HOME}/.backup/Config > ${HOME}/.im/Config + fi + if [ X"${default_domain_name}" = "X%%default_domain_name%%" ]; then + default_domain_name="" + else + ${CP} ${HOME}/.im/Config ${HOME}/.backup/Config + ${SED} -e 's/^\(ToDomain=\).*$/\1%%default_domain_name%%/' \ + < ${HOME}/.backup/Config > ${HOME}/.im/Config + fi +fi + +### +# Copy "aliases" if none +# +if [ ! -f ${HOME}/.im/Aliases ]; then + ${CP} ${SAMPLEDIR}/Aliases ${HOME}/.im +fi + +### +# Set user environment : nameserver, signature +# +options_Highlight=OFF +options_Citation=OFF +options_Cite_Change=OFF +options_Sign_Change=OFF +language=English +dot_emacs_file=.emacs + +PreSet="\ +This is the main menu of the Mew configuration pre-settings. Please \n\ +select one of the options below by using the arrow keys or typing the \n\ +first character of the option name you intend to set. Invoke an option \n\ +by pressing [ENTER] or [TAB-ENTER] to exit the settings." + +answer=None +while [ ! X"${answer}" = "XQuit" ]; do + ${DIALOG} --title "Pre-set Mew configurations" \ + --hline "To select an item press [Enter] on the item" \ + --menu "${PreSet}" -1 -1 3 \ + Language "Determine language in use on Mew" \ + DotEmacs "Choose dot.emacs files being to use" \ + Quit "Quit this menu" \ + 2> /tmp/menu.$$ + retval=$? + answer=`${CAT} /tmp/menu.$$|${SED} -e 's/\"//g'` + ${RM} -f /tmp/menu.$$ + case $retval in + 0) if [ -z ${answer} ]; then ${ECHO} "Nothing selected"; contiue; fi ;; + 1) break ;; + 255) break ;; + esac + case ${answer} in + Language) + select + ;; + DotEmacs) + input_data "Emacs dot.emacs file name" "dot_emacs_file" "" + ;; + Quit) + answer=Quit + ;; + esac +done + +#echo language=${language} +#echo dot_emacs_file=${dot_emacs_file} +#exit 1 + +MainMenu="\ +This is the main menu of the Mew configuration settings. Please select \n\ +one of the options below by using the arrow keys or typing the first \n\ +character of the option name you intend to set. Invoke an option by \n\ +pressing [ENTER] or [TAB-ENTER] to exit the settings." + +answer=None +while [ ! X"${answer}" = "XQuit" ]; do + ${DIALOG} --title "Set Mew configurations" \ + --hline "Select Items and Quit when finished" \ + --menu "${MainMenu}" -1 -1 6 \ + NameServer "Name server Domain name" \ + MailAddress "Your mail address (with FQDN)" \ + DomainName "Your domain name" \ + DefaultDomain "Default domain name in abbrivation" \ + Options "Various options on using Mew" \ + Quit "Quit this menu" \ + 2> /tmp/menu.$$ + retval=$? + answer=`${CAT} /tmp/menu.$$` + ${RM} -f /tmp/menu.$$ + case $retval in + 0) if [ -z ${answer} ]; then + ${ECHO} "Nothing selected" + exit 1 + fi + ;; + 1) ${ECHO} "Cancel pressed." + exit 1 + ;; + 255) ${ECHO} "ESC pressed." + exit 1 + ;; + esac + case ${answer} in + NameServer) + input_data "Name Server" "nameserver" "" + ;; + MailAddress) + input_data "Mail Address" "mail_address" "" + ;; + DomainName) + input_data "Domain Name" "domain_name" "" + ;; + DefaultDomain) + input_data "Default Domain Name" "default_domain_name" "" + ;; + Options) +# options + ;; + Quit) + answer=Quit + ;; + esac +done + +#echo 'nameserver='${nameserver} +#echo 'mail_address='${mail_address} +#echo 'domain_name='${domain_name} +#echo 'defaut_domain_name='${default_domain_name} + +#exit 1 + +### +# Custumize startup files with selected options. +# +dot_emacs="dot.emacs.el ${dot_emacs}" +eval ${SEDCMD} < ${HOME}/.im/Config > ${HOME}/.backup/Config + +### +# Add Mew startup setting to ~/.emacs +# +if [ -f ${dot_emacs_file} ]; then + ${SED} -e '/^;;;* Mew ;*$/,/^;;; *Mew end$/d' < ${HOME}/${dot_emacs_file} \ + > ${HOME}/.backup/${dot_emacs_file} +else + ${ECHO} "Create new \"dot.emacs\" file: ${dot_emacs_file}" +fi + +#echo 'dot_emacs='${dot_emacs} +for f in ${dot_emacs}; do + ${CAT} ${SAMPLEDIR}/dot.emacs/${f} |\ + eval ${SEDCMD} >> ${HOME}/.backup/${dot_emacs_file} +done +${ECHO} ";;; Mew end" \ + >> ${HOME}/.backup/${dot_emacs_file} +${CP} ${HOME}/.backup/${dot_emacs_file} ${HOME}/${dot_emacs_file} + +### +# Copy im Config file to ~/.im +# +${CP} ${HOME}/.backup/Config ${HOME}/.im/Config |