source: lliurex-emblemador/trunk/fuentes/lliurex-emblemador.install/usr/bin/emblemador @ 2545

Last change on this file since 2545 was 2545, checked in by Juanma, 3 years ago

first xenial release

  • Property svn:executable set to *
File size: 4.4 KB
Line 
1#!/bin/bash
2EMBLEM_CMD=`type -fp gvfs-set-attribute`
3if [ "x$EMBLEM_CMD" = "x" ]; then
4    echo "Package gvfs-bin not found, aborting..."
5    exit 1
6fi
7
8EMBLEM_SRC="shared-symbolic"
9
10if [ "x$1" = "xclear" ];then
11    EMBLEM_SRC="none"
12fi
13
14# Test if we are on a server
15TIPO=""
16
17test_server=`lliurex-version|grep server|wc -l`
18if [ $test_server -gt 0 ]; then
19    TIPO=server
20fi
21
22if [ "x$TIPO" = "x" ]; then
23
24# Server always is PESADO
25#
26# Calculation of boot type:
27# PESADO (mounted folders with bind, into /run),
28# LIGERO (mounted folders with bind,into /net/server-sync),
29# SEMI-LIGERO (linked dirs from /net/server-sync).
30
31test_fat=`mount |grep -i desktop|egrep '^/run'|wc -l`
32test_semi=`ls -l ${HOME}|grep -i desktop|egrep '^lrwx'|wc -l`
33test_lig=`mount |grep -i desktop|egrep '^/net/server'|wc -l`
34
35if [ $test_fat -gt 0 ]; then
36    TIPO=fat$TIPO
37fi
38if [ $test_semi -gt 0 ]; then
39    TIPO=semi$TIPO
40fi
41if [ $test_lig -gt 0 ]; then
42    TIPO=lig$TIPO
43fi
44
45fi
46
47if [ "x$TIPO" != "xfat" -a "x$TIPO" != "xsemi" -a "x$TIPO" != "xlig" -a "x$TIPO" != "xserver" ]; then
48    echo "Error type detected, aborting... "
49    exit 1
50fi
51# Calculation for teachers or students or local user
52
53US=""
54test_local=`cat /etc/passwd|grep ${HOME}|wc -l`
55test_local2=`mount |grep '/dev/nbd0 on /rofs'|wc -l`
56
57if [ $test_local -gt 0 -a $test_local2 -eq 0 ]; then
58    US=local
59else
60    test_student=`mount|grep -i desktop|grep -i student|wc -l`
61    if [ $test_student -gt 0 ]; then
62        US=students
63    else
64        test_teacher=`mount|grep -i desktop|grep -i teacher|wc -l`
65        if [ $test_teacher -gt 0 ]; then
66            US=teachers
67        fi
68        # if type = semi, we've to test the link not the mount
69        if [ $TIPO = 'semi' ]; then
70            test_student=`ls -l ${HOME}|grep -i desktop|egrep '^lrwx'|grep -i student|wc -l`
71            if [ $test_student -gt 0 ]; then
72                US=students
73            else
74                test_teacher=`ls -l ${HOME}|grep -i desktop|egrep '^lrwx'|grep -i teacher|wc -l`
75                if [ $test_teacher -gt 0 ]; then
76                    US=teachers
77                fi
78            fi
79        fi
80    fi
81fi
82
83if [ "x$TIPO" = "x" -o "x$US" = "x" ]; then
84    echo "Error user detected, aborting..."
85    exit 1
86fi
87
88
89PARAMS_CMD="-t stringv metadata::emblems"
90
91# Calculation for dirs
92DIRS=""
93if [ -f ${HOME}/.config/user-dirs.created ]; then
94    . ${HOME}/.config/user-dirs.created
95fi
96
97USERNAME=`basename ${HOME}`
98
99echo Detected $USERNAME type $US into $TIPO
100
101if [ "$US" = "teachers" ]; then
102        case "$TIPO" in
103            fat)
104                DIRS="$DIRS /run/$USERNAME/home/students"
105                DIRS="$DIRS ${HOME}/alum"
106                DIRS="$DIRS /run/$USERNAME/teachers_share"
107                DIRS="$DIRS ${HOME}/$TOKEN_SHARETEACHERS"
108                            ;;
109            semi)
110                DIRS="$DIRS /net/server-sync/home/students"
111                DIRS="$DIRS ${HOME}/alum"
112                DIRS="$DIRS /net/server-sync/teachers_share"
113                DIRS="$DIRS ${HOME}/$TOKEN_SHARETEACHERS"
114                            ;;
115            lig | server)
116                DIRS="$DIRS /net/server-sync/home/students"
117                DIRS="$DIRS ${HOME}/alum"
118                DIRS="$DIRS /net/server-sync/teachers_share"
119                DIRS="$DIRS ${HOME}/$TOKEN_SHARETEACHERS"
120            ;;
121        esac
122fi
123if [ "$US" != "local" ]; then
124        case "$TIPO" in
125            fat)
126                DIRS="$DIRS /run/$USERNAME/share"
127                DIRS="$DIRS ${HOME}/$TOKEN_SHARE"
128                DIRS="$DIRS /run/$USERNAME/groups_share"
129                DIRS="$DIRS ${HOME}/$TOKEN_GROUPSSHARE"
130                DIRS="$DIRS /run/$USERNAME/home/$US/$USERNAME/Documents"
131                DIRS="$DIRS ${HOME}/$TOKEN_DOCUMENTS"
132                DIRS="$DIRS /run/$USERNAME/home/$US/$USERNAME/Desktop"
133                DIRS="$DIRS ${HOME}/$TOKEN_DESKTOP"
134            ;;
135            semi)
136                DIRS="$DIRS /net/server-sync/share"
137                DIRS="$DIRS ${HOME}/$TOKEN_SHARE"
138                DIRS="$DIRS /net/server-sync/groups_share"
139                DIRS="$DIRS ${HOME}/$TOKEN_GROUPSSHARE"
140                DIRS="$DIRS /net/server-sync/home/$US/$USERNAME/Documents"
141                DIRS="$DIRS ${HOME}/$TOKEN_DOCUMENTS"
142                DIRS="$DIRS /net/server-sync/home/$US/$USERNAME/Desktop"
143                DIRS="$DIRS ${HOME}/$TOKEN_DESKTOP"
144            ;;
145            lig | server)
146                DIRS="$DIRS /net/server-sync/share"
147                DIRS="$DIRS ${HOME}/$TOKEN_SHARE"
148                DIRS="$DIRS /net/server-sync/groups_share"
149                DIRS="$DIRS ${HOME}/$TOKEN_GROUPSSHARE"
150                DIRS="$DIRS /net/server-sync/home/$US/$USERNAME/Documents"
151                DIRS="$DIRS ${HOME}/$TOKEN_DOCUMENTS"
152                DIRS="$DIRS /net/server-sync/home/$US/$USERNAME/Desktop"
153                DIRS="$DIRS ${HOME}/$TOKEN_DESKTOP"
154            ;;
155        esac
156fi
157
158# Execution
159i=0
160for one_dir in $DIRS; do 
161    if [ -d $one_dir -o -h $one_dir ]; then
162        i=$(($i+1))
163        CMD="$EMBLEM_CMD $one_dir $PARAMS_CMD $EMBLEM_SRC"
164        $CMD
165        if [ $? -eq 0 ]; then
166            echo $i: OK! $one_dir 
167        else
168            echo $i: FAIL! $one_dir
169        fi
170       
171    fi
172done;
173if [ $i -eq 0 ]; then
174    echo "Nothing to do"
175fi
176exit 0
Note: See TracBrowser for help on using the repository browser.