浏览代码

Better separation of emacs from mutt

So that other editors could potentially be installed
Bob Mottram 8 年前
父节点
当前提交
4a70e40c1c
共有 3 个文件被更改,包括 73 次插入37 次删除
  1. 73
    5
      src/freedombone-app-emacs
  2. 0
    29
      src/freedombone-base-email
  3. 0
    3
      src/freedombone-utils-setup

+ 73
- 5
src/freedombone-app-emacs 查看文件

@@ -33,11 +33,6 @@ VARIANTS='full'
33 33
 emacs_variables=(USB_MOUNT
34 34
                  MY_USERNAME)
35 35
 
36
-function install_interactive_emacs {
37
-    echo -n ''
38
-    APP_INSTALLED=1
39
-}
40
-
41 36
 function change_password_emacs {
42 37
     echo -n ''
43 38
 }
@@ -109,9 +104,27 @@ function remove_emacs {
109 104
     apt-get -y remove --purge emacs24
110 105
     update-alternatives --set editor /usr/bin/nano
111 106
     sed -i '/install_emacs/d' $COMPLETION_FILE
107
+
108
+    # remove emacs as the mutt email editor
109
+    if [ -f /etc/Muttrc ]; then
110
+        if grep -q "set editor=" /etc/Muttrc; then
111
+            sed -i '/set editor=/d' /etc/Muttrc
112
+        fi
113
+        for d in /home/*/ ; do
114
+            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
115
+            if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
116
+                if [ -f /home/$USERNAME/.muttrc ]; then
117
+                    if grep -q "set editor=" /home/$USERNAME/.muttrc; then
118
+                        sed -i '/set editor=/d' /home/$USERNAME/.muttrc
119
+                    fi
120
+                fi
121
+            fi
122
+        done
123
+    fi
112 124
 }
113 125
 
114 126
 function install_emacs {
127
+    apt-get -y install emacs24
115 128
     update-alternatives --set editor /usr/bin/emacs24
116 129
 
117 130
     # A minimal emacs configuration
@@ -186,7 +199,62 @@ function install_emacs {
186 199
     echo '(epa-file-enable)' >> /home/$MY_USERNAME/.emacs
187 200
     cp /home/$MY_USERNAME/.emacs /root/.emacs
188 201
     chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs
202
+
203
+    # add a mutt entry to use emacs to compose emails
204
+    if [ -f /etc/Muttrc ]; then
205
+        if ! grep -q "set editor=" /etc/Muttrc; then
206
+            echo 'set editor="emacs -q --load ~/.emacs-mutt"' >> /etc/Muttrc
207
+        else
208
+            sed -i 's|set editor=.*|set editor="emacs -q --load ~/.emacs-mutt"|g' /etc/Muttrc
209
+        fi
210
+        for d in /home/*/ ; do
211
+            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
212
+            if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
213
+                if [ -f /home/$USERNAME/.muttrc ]; then
214
+                    if ! grep -q "set editor=" /home/$USERNAME/.muttrc; then
215
+                        echo 'set editor="emacs -q --load ~/.emacs-mutt"' >> /home/$USERNAME/.muttrc
216
+                    else
217
+                        sed -i 's|set editor=.*|set editor="emacs -q --load ~/.emacs-mutt"|g' /home/$USERNAME/.muttrc
218
+                    fi
219
+                fi
220
+
221
+                # create an Emacs configuration specifically for use with Mutt, which
222
+                # has word wrap and spell checking on by default
223
+                if [ ! -f /home/$USERNAME/.emacs-mutt ]; then
224
+                    echo "(add-hook 'before-save-hook 'delete-trailing-whitespace)" > /home/$USERNAME/.emacs-mutt
225
+                    echo '(setq org-support-shift-select t)' >> /home/$USERNAME/.emacs-mutt
226
+                    echo '(setq standard-indent 4)' >> /home/$USERNAME/.emacs-mutt
227
+                    echo '(setq-default tab-width 4)' >> /home/$USERNAME/.emacs-mutt
228
+                    echo '(setq c-basic-offset 4)' >> /home/$USERNAME/.emacs-mutt
229
+                    echo '(mouse-wheel-mode t)' >> /home/$USERNAME/.emacs-mutt
230
+                    echo '(setq make-backup-files t)' >> /home/$USERNAME/.emacs-mutt
231
+                    echo '(setq version-control t)' >> /home/$USERNAME/.emacs-mutt
232
+                    echo '(setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))' >> /home/$USERNAME/.emacs-mutt
233
+                    echo "(setq default-major-mode 'text-mode)" >> /home/$USERNAME/.emacs-mutt
234
+                    echo "(dolist (hook '(text-mode-hook))" >> /home/$USERNAME/.emacs-mutt
235
+                    echo '    (add-hook hook (lambda () (flyspell-mode 1))))' >> /home/$USERNAME/.emacs-mutt
236
+                    echo '(setq-default fill-column 72)' >> /home/$USERNAME/.emacs-mutt
237
+                    echo '(setq auto-fill-mode 0)' >> /home/$USERNAME/.emacs-mutt
238
+                    echo "(add-hook 'text-mode-hook 'turn-on-auto-fill)" >> /home/$USERNAME/.emacs-mutt
239
+                    echo "(setq-default auto-fill-function 'do-auto-fill)" >> /home/$USERNAME/.emacs-mutt
240
+                    chown $USERNAME:$USERNAME /home/$USERNAME/.emacs-mutt
241
+
242
+                    # add the emacs mutt configuration to the user profile skeleton
243
+                    if [ ! -f /etc/skel/.emacs-mutt ]; then
244
+                        cp /home/$USERNAME/.emacs-mutt /etc/skel/.emacs-mutt
245
+                        chown root:root /etc/skel/.emacs-mutt
246
+                    fi
247
+                fi
248
+
249
+            fi
250
+        done
251
+    fi
252
+
189 253
     APP_INSTALLED=1
190 254
 }
191 255
 
256
+function install_interactive_emacs {
257
+    install_emacs
258
+}
259
+
192 260
 # NOTE: deliberately no exit 0

+ 0
- 29
src/freedombone-base-email 查看文件

@@ -279,7 +279,6 @@ function email_client {
279 279
     echo 'set trash="+Trash"' >> /etc/Muttrc
280 280
     echo 'set spoolfile="~/Maildir"' >> /etc/Muttrc
281 281
     echo 'auto_view text/x-vcard text/html text/enriched' >> /etc/Muttrc
282
-    echo 'set editor="emacs -q --load ~/.emacs-mutt"' >> /etc/Muttrc
283 282
     echo 'set header_cache="+.cache"' >> /etc/Muttrc
284 283
     echo '' >> /etc/Muttrc
285 284
     echo 'macro index S "<tag-prefix><decode-save>=.learn-spam<enter>" "move to learn-spam"' >> /etc/Muttrc
@@ -356,36 +355,10 @@ function email_client {
356 355
     echo '# Optional relay of SMTP via ISP' >> /etc/Muttrc
357 356
     echo '#set smtp_url="smtps://username:password@isp_mail_domain:465/"' >> /etc/Muttrc
358 357
 
359
-    # create an Emacs configuration specifically for use with Mutt, which
360
-    # has word wrap and spell checking on by default
361
-    echo "(add-hook 'before-save-hook 'delete-trailing-whitespace)" > /home/$MY_USERNAME/.emacs-mutt
362
-    echo '(setq org-support-shift-select t)' >> /home/$MY_USERNAME/.emacs-mutt
363
-    echo '(setq standard-indent 4)' >> /home/$MY_USERNAME/.emacs-mutt
364
-    echo '(setq-default tab-width 4)' >> /home/$MY_USERNAME/.emacs-mutt
365
-    echo '(setq c-basic-offset 4)' >> /home/$MY_USERNAME/.emacs-mutt
366
-    echo '(mouse-wheel-mode t)' >> /home/$MY_USERNAME/.emacs-mutt
367
-    echo '(setq make-backup-files t)' >> /home/$MY_USERNAME/.emacs-mutt
368
-    echo '(setq version-control t)' >> /home/$MY_USERNAME/.emacs-mutt
369
-    echo '(setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))' >> /home/$MY_USERNAME/.emacs-mutt
370
-    echo "(setq default-major-mode 'text-mode)" >> /home/$MY_USERNAME/.emacs-mutt
371
-    echo "(dolist (hook '(text-mode-hook))" >> /home/$MY_USERNAME/.emacs-mutt
372
-    echo '    (add-hook hook (lambda () (flyspell-mode 1))))' >> /home/$MY_USERNAME/.emacs-mutt
373
-    echo '(setq-default fill-column 72)' >> /home/$MY_USERNAME/.emacs-mutt
374
-    echo '(setq auto-fill-mode 0)' >> /home/$MY_USERNAME/.emacs-mutt
375
-    echo "(add-hook 'text-mode-hook 'turn-on-auto-fill)" >> /home/$MY_USERNAME/.emacs-mutt
376
-    echo "(setq-default auto-fill-function 'do-auto-fill)" >> /home/$MY_USERNAME/.emacs-mutt
377
-
378
-    # add the emacs mutt configuration to the user profile skeleton
379
-    if [ ! -f /etc/skel/.emacs-mutt ]; then
380
-        cp /home/$MY_USERNAME/.emacs-mutt /etc/skel/.emacs-mutt
381
-        chown root:root /etc/skel/.emacs-mutt
382
-    fi
383
-
384 358
     cp -f /etc/Muttrc /home/$MY_USERNAME/.muttrc
385 359
     cp -f /etc/Muttrc /etc/skel/.muttrc
386 360
     touch /home/$MY_USERNAME/.mutt-alias
387 361
     cp /home/$MY_USERNAME/.mutt-alias /etc/skel/.mutt-alias
388
-    chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs-mutt
389 362
     chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.muttrc
390 363
     chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.mutt-alias
391 364
 
@@ -395,8 +368,6 @@ function email_client {
395 368
         chown ${GENERIC_IMAGE_USERNAME}:${GENERIC_IMAGE_USERNAME} /home/${GENERIC_IMAGE_USERNAME}/.muttrc
396 369
         touch /home/${GENERIC_IMAGE_USERNAME}/.mutt-alias
397 370
         chown ${GENERIC_IMAGE_USERNAME}:${GENERIC_IMAGE_USERNAME} /home/${GENERIC_IMAGE_USERNAME}/.mutt-alias
398
-        cp /etc/skel/.emacs-mutt /home/${GENERIC_IMAGE_USERNAME}/.emacs-mutt
399
-        chown ${GENERIC_IMAGE_USERNAME}:${GENERIC_IMAGE_USERNAME} /home/${GENERIC_IMAGE_USERNAME}/.emacs-mutt
400 371
     fi
401 372
 
402 373
     echo 'email_client' >> $COMPLETION_FILE

+ 0
- 3
src/freedombone-utils-setup 查看文件

@@ -332,9 +332,6 @@ function setup_utils {
332 332
     function_check enforce_good_passwords
333 333
     enforce_good_passwords
334 334
 
335
-    function_check install_emacs
336
-    install_emacs
337
-
338 335
     function_check change_login_message
339 336
     change_login_message
340 337