From 9d10a419d0ebef2f5ec5c61a2e606c4959aeb77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Wed, 6 May 2009 02:02:58 +0200 Subject: Reorganize structure and add config file --- conf.d/moztmp | 1 + init.d/moztmp | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ moztmp | 146 ---------------------------------------------------------- 3 files changed, 147 insertions(+), 146 deletions(-) create mode 100644 conf.d/moztmp create mode 100755 init.d/moztmp delete mode 100755 moztmp diff --git a/conf.d/moztmp b/conf.d/moztmp new file mode 100644 index 0000000..57f0718 --- /dev/null +++ b/conf.d/moztmp @@ -0,0 +1 @@ +USERS="necoro root" diff --git a/init.d/moztmp b/init.d/moztmp new file mode 100755 index 0000000..79e74b1 --- /dev/null +++ b/init.d/moztmp @@ -0,0 +1,146 @@ +#!/sbin/runscript + +opts="save load" + +depend() { + need localmount + after bootmisc +} + +MOZMOUNT=${MOZMOUNT:-/tmp/moztmp/} +MOZDIR=${MOZDIR:-.mozilla} +MOZSAVEDIR=${MOZSAVEDIR:-.mozilla_save} + +homedir() { + echo $(eval echo ~$1) +} + +get_size() { + local size=0 + for u in $USERS; do + local dir=$(homedir $u)/${MOZDIR} + if [ -d $dir ]; then + s=$(du -s $dir | cut -f 1) + size=$(( size + s )) + else + if [ -e $dir ]; then + echo "$home is not a directory!" + + else + # save default: 50 MB + size=$(( size + 51200 )) + fi + fi + done + + size=$(( size * 2 )) + veinfo "Taking ${size}k as the size." + + echo $size +} + +set_folder() { + local user=$1 + local mdir=$(homedir $u)/$MOZDIR + local sdir=$(homedir $u)/$MOZSAVEDIR + local mntdir=$MOZMOUNT/$user + + if [ -e $sdir ]; then + eerror "$sdir already existing. Skipping user $user." + return 1 + else + checkpath -d -o $user $mntdir || return 1 + + if [ -e $mdir ]; then + mv $mdir $sdir || return 1 + fi + + if ! ln -s $mntdir $mdir; then + rm -f $mdir + [ -e $sdir ] && mv $sdir $mdir + eerror "Linking failed" + return 1 + fi + + einfo "Rsyncing" + if ! rsync -qai --delete $sdir/ $mntdir ; then + rm -f $mdir + [ -e $sdir ] && mv $sdir $mdir + eerror "RSync failed" + return 1 + fi + + fi + + return 0 +} + +get_folder() { + local user=$1 + local mdir=$(homedir $u)/$MOZDIR + local sdir=$(homedir $u)/$MOZSAVEDIR + local mntdir=$MOZMOUNT/$user + + if [ ! -L $mdir ]; then + eerror "$mdir is not a link. Skipping user $user." + return 1 + else + rm $mdir + einfo "Rsyncing" + rsync -aiq --delete $mntdir/ $sdir/ || return 1 + mv $sdir $mdir + fi + + return 0 +} + +save() { + for u in $USERS; do + ebegin "Deleting moztmp for user $u" + eindent + get_folder $u + eoutdent + eend $? + done + + if yesno $(service_get_value mnted); then + ebegin "Unmounting ${MOZMOUNT}" + umount ${MOZMOUNT} + eend $? + fi +} + +load() { + local size=$(get_size) + + if ! mountinfo -q ${MOZMOUNT}; then + ebegin "Mounting ${MOZMOUNT}" + checkpath -d ${MOZMOUNT} + mount -t tmpfs -o size=${size}k tmpfs ${MOZMOUNT} + eend $? + + service_set_value mnted YES + else + service_set_value mnted NO + fi + + for u in $USERS; do + ebegin "Setting moztmp for user $u" + eindent + set_folder $u + eoutdent + eend $? + done + + return 0 +} + +start() { + load +} + +stop() { + save +} + +# vim:ft=gentoo-init-d diff --git a/moztmp b/moztmp deleted file mode 100755 index 79e74b1..0000000 --- a/moztmp +++ /dev/null @@ -1,146 +0,0 @@ -#!/sbin/runscript - -opts="save load" - -depend() { - need localmount - after bootmisc -} - -MOZMOUNT=${MOZMOUNT:-/tmp/moztmp/} -MOZDIR=${MOZDIR:-.mozilla} -MOZSAVEDIR=${MOZSAVEDIR:-.mozilla_save} - -homedir() { - echo $(eval echo ~$1) -} - -get_size() { - local size=0 - for u in $USERS; do - local dir=$(homedir $u)/${MOZDIR} - if [ -d $dir ]; then - s=$(du -s $dir | cut -f 1) - size=$(( size + s )) - else - if [ -e $dir ]; then - echo "$home is not a directory!" - - else - # save default: 50 MB - size=$(( size + 51200 )) - fi - fi - done - - size=$(( size * 2 )) - veinfo "Taking ${size}k as the size." - - echo $size -} - -set_folder() { - local user=$1 - local mdir=$(homedir $u)/$MOZDIR - local sdir=$(homedir $u)/$MOZSAVEDIR - local mntdir=$MOZMOUNT/$user - - if [ -e $sdir ]; then - eerror "$sdir already existing. Skipping user $user." - return 1 - else - checkpath -d -o $user $mntdir || return 1 - - if [ -e $mdir ]; then - mv $mdir $sdir || return 1 - fi - - if ! ln -s $mntdir $mdir; then - rm -f $mdir - [ -e $sdir ] && mv $sdir $mdir - eerror "Linking failed" - return 1 - fi - - einfo "Rsyncing" - if ! rsync -qai --delete $sdir/ $mntdir ; then - rm -f $mdir - [ -e $sdir ] && mv $sdir $mdir - eerror "RSync failed" - return 1 - fi - - fi - - return 0 -} - -get_folder() { - local user=$1 - local mdir=$(homedir $u)/$MOZDIR - local sdir=$(homedir $u)/$MOZSAVEDIR - local mntdir=$MOZMOUNT/$user - - if [ ! -L $mdir ]; then - eerror "$mdir is not a link. Skipping user $user." - return 1 - else - rm $mdir - einfo "Rsyncing" - rsync -aiq --delete $mntdir/ $sdir/ || return 1 - mv $sdir $mdir - fi - - return 0 -} - -save() { - for u in $USERS; do - ebegin "Deleting moztmp for user $u" - eindent - get_folder $u - eoutdent - eend $? - done - - if yesno $(service_get_value mnted); then - ebegin "Unmounting ${MOZMOUNT}" - umount ${MOZMOUNT} - eend $? - fi -} - -load() { - local size=$(get_size) - - if ! mountinfo -q ${MOZMOUNT}; then - ebegin "Mounting ${MOZMOUNT}" - checkpath -d ${MOZMOUNT} - mount -t tmpfs -o size=${size}k tmpfs ${MOZMOUNT} - eend $? - - service_set_value mnted YES - else - service_set_value mnted NO - fi - - for u in $USERS; do - ebegin "Setting moztmp for user $u" - eindent - set_folder $u - eoutdent - eend $? - done - - return 0 -} - -start() { - load -} - -stop() { - save -} - -# vim:ft=gentoo-init-d -- cgit v1.2.3