root/src/vfs/shell/shelldef.h

/* [previous][next][first][last][top][bottom][index][help]  */

INCLUDED FROM


   1 
   2 /**
   3  * \file
   4  * \brief Header: SHELL script defaults
   5  */
   6 
   7 #ifndef MC__VFS_SHELL_DEF_H
   8 #define MC__VFS_SHELL_DEF_H
   9 
  10 /*** typedefs(not structures) and defined constants **********************************************/
  11 
  12 /* default 'ls' script */
  13 #define VFS_SHELL_LS_DEF_CONTENT                                                                   \
  14     ""                                                                                             \
  15     "export LC_TIME=C\n"                                                                           \
  16     "ls -Qlan \"/${SHELL_FILENAME}\" 2>/dev/null | grep '^[^cbt]' | (\n"                           \
  17     "while read p l u g s m d y n; do\n"                                                           \
  18     "    echo \"P$p $u.$g\"\n"                                                                     \
  19     "    echo \"S$s\"\n"                                                                           \
  20     "    echo \"d$m $d $y\"\n"                                                                     \
  21     "    echo \":$n\"\n"                                                                           \
  22     "    echo\n"                                                                                   \
  23     "done\n"                                                                                       \
  24     ")\n"                                                                                          \
  25     "ls -Qlan \"/${SHELL_FILENAME}\" 2>/dev/null | grep '^[cb]' | (\n"                             \
  26     "while read p l u g a i m d y n; do\n"                                                         \
  27     "    echo \"P$p $u.$g\"\n"                                                                     \
  28     "    echo \"E$a$i\"\n"                                                                         \
  29     "    echo \"d$m $d $y\"\n"                                                                     \
  30     "    echo \":$n\"\n"                                                                           \
  31     "    echo\n"                                                                                   \
  32     "done\n"                                                                                       \
  33     ")\n"                                                                                          \
  34     "echo \"### 200\"\n"
  35 
  36 /* default file exists script */
  37 #define VFS_SHELL_EXISTS_DEF_CONTENT                                                               \
  38     ""                                                                                             \
  39     "ls -l \"/${SHELL_FILENAME}\" >/dev/null 2>/dev/null\n"                                        \
  40     "echo '### '$?\n"
  41 
  42 /* default 'mkdir' script */
  43 #define VFS_SHELL_MKDIR_DEF_CONTENT                                                                \
  44     ""                                                                                             \
  45     "if mkdir \"/${SHELL_FILENAME}\" 2>/dev/null; then\n"                                          \
  46     "    echo \"### 000\"\n"                                                                       \
  47     "else\n"                                                                                       \
  48     "    echo \"### 500\"\n"                                                                       \
  49     "fi\n"
  50 
  51 /* default 'unlink' script */
  52 #define VFS_SHELL_UNLINK_DEF_CONTENT                                                               \
  53     ""                                                                                             \
  54     "if rm -f \"/${SHELL_FILENAME}\" 2>/dev/null; then\n"                                          \
  55     "    echo \"### 000\"\n"                                                                       \
  56     "else\n"                                                                                       \
  57     "    echo \"### 500\"\n"                                                                       \
  58     "fi\n"
  59 
  60 /* default 'chown' script */
  61 #define VFS_SHELL_CHOWN_DEF_CONTENT                                                                \
  62     ""                                                                                             \
  63     "if chown ${SHELL_FILEOWNER}:${SHELL_FILEGROUP} \"/${SHELL_FILENAME}\"; then\n"                \
  64     "    echo \"### 000\"\n"                                                                       \
  65     "else\n"                                                                                       \
  66     "    echo \"### 500\"\n"                                                                       \
  67     "fi\n"
  68 
  69 /* default 'chmod' script */
  70 #define VFS_SHELL_CHMOD_DEF_CONTENT                                                                \
  71     ""                                                                                             \
  72     "if chmod ${SHELL_FILEMODE} \"/${SHELL_FILENAME}\" 2>/dev/null; then\n"                        \
  73     "    echo \"### 000\"\n"                                                                       \
  74     "else\n"                                                                                       \
  75     "    echo \"### 500\"\n"                                                                       \
  76     "fi\n"
  77 
  78 /* default 'utime' script */
  79 #define VFS_SHELL_UTIME_DEF_CONTENT                                                                \
  80     ""                                                                                             \
  81     "#UTIME \"$SHELL_TOUCHATIME_W_NSEC\" \"$SHELL_TOUCHMTIME_W_NSEC\" $SHELL_FILENAME\n"           \
  82     "if TZ=UTC touch -h -m -d \"$SHELL_TOUCHMTIME_W_NSEC\" \"/${SHELL_FILENAME}\" 2>/dev/null && " \
  83     "\\\n"                                                                                         \
  84     "   TZ=UTC touch -h -a -d \"$SHELL_TOUCHATIME_W_NSEC\" \"/${SHELL_FILENAME}\" 2>/dev/null; "   \
  85     "then\n"                                                                                       \
  86     "  echo \"### 000\"\n"                                                                         \
  87     "elif TZ=UTC touch -h -m -t $SHELL_TOUCHMTIME \"/${SHELL_FILENAME}\" 2>/dev/null && \\\n"      \
  88     "     TZ=UTC touch -h -a -t $SHELL_TOUCHATIME \"/${SHELL_FILENAME}\" 2>/dev/null; then\n"      \
  89     "  echo \"### 000\"\n"                                                                         \
  90     "elif [ -n \"$SHELL_HAVE_PERL\" ] && \\\n"                                                     \
  91     "   perl -e 'utime '$SHELL_FILEATIME','$SHELL_FILEMTIME',@ARGV;' \"/${SHELL_FILENAME}\" "      \
  92     "2>/dev/null; then\n"                                                                          \
  93     "  echo \"### 000\"\n"                                                                         \
  94     "else\n"                                                                                       \
  95     "  echo \"### 500\"\n"                                                                         \
  96     "fi\n"
  97 
  98 /* default 'rmdir' script */
  99 #define VFS_SHELL_RMDIR_DEF_CONTENT                                                                \
 100     ""                                                                                             \
 101     "if rmdir \"/${SHELL_FILENAME}\" 2>/dev/null; then\n"                                          \
 102     "   echo \"### 000\"\n"                                                                        \
 103     "else\n"                                                                                       \
 104     "   echo \"### 500\"\n"                                                                        \
 105     "fi\n"
 106 
 107 /* default 'ln -s' symlink script */
 108 #define VFS_SHELL_LN_DEF_CONTENT                                                                   \
 109     ""                                                                                             \
 110     "if ln -s \"/${SHELL_FILEFROM}\" \"/${SHELL_FILETO}\" 2>/dev/null; then\n"                     \
 111     "   echo \"### 000\"\n"                                                                        \
 112     "else\n"                                                                                       \
 113     "   echo \"### 500\"\n"                                                                        \
 114     "fi\n"
 115 
 116 /* default 'mv' script */
 117 #define VFS_SHELL_MV_DEF_CONTENT                                                                   \
 118     ""                                                                                             \
 119     "if mv \"/${SHELL_FILEFROM}\" \"/${SHELL_FILETO}\" 2>/dev/null; then\n"                        \
 120     "   echo \"### 000\"\n"                                                                        \
 121     "else\n"                                                                                       \
 122     "   echo \"### 500\"\n"                                                                        \
 123     "fi\n"
 124 
 125 /* default 'ln' hardlink script */
 126 #define VFS_SHELL_HARDLINK_DEF_CONTENT                                                             \
 127     ""                                                                                             \
 128     "if ln \"/${SHELL_FILEFROM}\" \"/${SHELL_FILETO}\" 2>/dev/null; then\n"                        \
 129     "   echo \"### 000\"\n"                                                                        \
 130     "else\n"                                                                                       \
 131     "   echo \"### 500\"\n"                                                                        \
 132     "fi\n"
 133 
 134 /* default 'retr'  script */
 135 #define VFS_SHELL_GET_DEF_CONTENT                                                                  \
 136     ""                                                                                             \
 137     "export LC_TIME=C\n"                                                                           \
 138     "if dd if=\"/${SHELL_FILENAME}\" of=/dev/null bs=1 count=1 2>/dev/null ; then\n"               \
 139     "    ls -ln \"/${SHELL_FILENAME}\" 2>/dev/null | (\n"                                          \
 140     "       read p l u g s r\n"                                                                    \
 141     "       echo $s\n"                                                                             \
 142     "    )\n"                                                                                      \
 143     "    echo \"### 100\"\n"                                                                       \
 144     "    cat \"/${SHELL_FILENAME}\"\n"                                                             \
 145     "    echo \"### 200\"\n"                                                                       \
 146     "else\n"                                                                                       \
 147     "    echo \"### 500\"\n"                                                                       \
 148     "fi\n"
 149 
 150 /* default 'stor'  script */
 151 #define VFS_SHELL_SEND_DEF_CONTENT                                                                 \
 152     ""                                                                                             \
 153     "FILENAME=\"/${SHELL_FILENAME}\"\n"                                                            \
 154     "FILESIZE=${SHELL_FILESIZE}\n"                                                                 \
 155     "echo \"### 001\"\n"                                                                           \
 156     "{\n"                                                                                          \
 157     "    while [ $FILESIZE -gt 0 ]; do\n"                                                          \
 158     "        cnt=`expr \\( $FILESIZE + 255 \\) / 256`\n"                                           \
 159     "        n=`dd bs=256 count=$cnt | tee -a \"${FILENAME}\" | wc -c`\n"                          \
 160     "        FILESIZE=`expr $FILESIZE - $n`\n"                                                     \
 161     "    done\n"                                                                                   \
 162     "}; echo \"### 200\"\n"
 163 
 164 /* default 'appe'  script */
 165 #define VFS_SHELL_APPEND_DEF_CONTENT                                                               \
 166     ""                                                                                             \
 167     "FILENAME=\"/${SHELL_FILENAME}\"\n"                                                            \
 168     "FILESIZE=${SHELL_FILESIZE}\n"                                                                 \
 169     "echo \"### 001\"\n"                                                                           \
 170     "res=`exec 3>&1\n"                                                                             \
 171     "(\n"                                                                                          \
 172     "    head -c $FILESIZE -q - || echo DD >&3\n"                                                  \
 173     ") 2>/dev/null | (\n"                                                                          \
 174     "    cat > \"${FILENAME}\"\n"                                                                  \
 175     "    cat > /dev/null\n"                                                                        \
 176     ")`; [ \"$res\" = DD ] && {\n"                                                                 \
 177     "    > \"${FILENAME}\"\n"                                                                      \
 178     "    while [ $FILESIZE -gt 0 ]\n"                                                              \
 179     "    do\n"                                                                                     \
 180     "       cnt=`expr \\( $FILESIZE + 255 \\) / 256`\n"                                            \
 181     "       n=`dd bs=256 count=$cnt | tee -a \"${FILENAME}\" | wc -c`\n"                           \
 182     "       FILESIZE=`expr $FILESIZE - $n`\n"                                                      \
 183     "    done\n"                                                                                   \
 184     "}; echo \"### 200\"\n"
 185 
 186 /* default 'info'  script */
 187 #define VFS_SHELL_INFO_DEF_CONTENT                                                                 \
 188     ""                                                                                             \
 189     "export LC_TIME=C\n"                                                                           \
 190     "#SHELL_HAVE_HEAD         1\n"                                                                 \
 191     "#SHELL_HAVE_SED          2\n"                                                                 \
 192     "#SHELL_HAVE_AWK          4\n"                                                                 \
 193     "#SHELL_HAVE_PERL         8\n"                                                                 \
 194     "#SHELL_HAVE_LSQ         16\n"                                                                 \
 195     "#SHELL_HAVE_DATE_MDYT   32\n"                                                                 \
 196     "#SHELL_HAVE_TAIL        64\n"                                                                 \
 197     "res=0\n"                                                                                      \
 198     "if `echo yes| head -c 1 > /dev/null 2>&1` ; then\n"                                           \
 199     "    res=`expr $res + 1`\n"                                                                    \
 200     "fi\n"                                                                                         \
 201     "if `sed --version >/dev/null 2>&1` ; then\n"                                                  \
 202     "    res=`expr $res + 2`\n"                                                                    \
 203     "fi\n"                                                                                         \
 204     "if `awk --version > /dev/null 2>&1` ; then\n"                                                 \
 205     "    res=`expr $res + 4`\n"                                                                    \
 206     "fi\n"                                                                                         \
 207     "if `perl -v > /dev/null 2>&1` ; then\n"                                                       \
 208     "    res=`expr $res + 8`\n"                                                                    \
 209     "fi\n"                                                                                         \
 210     "if `ls -Q / >/dev/null 2>&1` ; then\n"                                                        \
 211     "    res=`expr $res + 16`\n"                                                                   \
 212     "fi\n"                                                                                         \
 213     "dat=`ls -lan / 2>/dev/null | head -n 3 | tail -1 | (\n"                                       \
 214     "    while read p l u g s rec; do\n"                                                           \
 215     "        if [ -n \"$g\" ]; then\n"                                                             \
 216     "            if [ -n \"$l\" ]; then\n"                                                         \
 217     "                echo \"$rec\"\n"                                                              \
 218     "            fi\n"                                                                             \
 219     "        fi\n"                                                                                 \
 220     "    done\n"                                                                                   \
 221     ") | cut -c1 2>/dev/null`\n"                                                                   \
 222     "r=`echo \"0123456789\"| grep \"$dat\"`\n"                                                     \
 223     "if [ -z \"$r\" ]; then\n"                                                                     \
 224     "    res=`expr $res + 32`\n"                                                                   \
 225     "fi\n"                                                                                         \
 226     "if `echo yes| tail -c +1 - > /dev/null 2>&1` ; then\n"                                        \
 227     "    res=`expr $res + 64`\n"                                                                   \
 228     "fi\n"                                                                                         \
 229     "echo $res\n"                                                                                  \
 230     "echo \"### 200\"\n"
 231 
 232 /*** enums ***************************************************************************************/
 233 
 234 /*** structures declarations (and typedefs of structures)*****************************************/
 235 
 236 /*** global variables defined in .c file *********************************************************/
 237 
 238 /*** declarations of public functions ************************************************************/
 239 
 240 /*** inline functions ****************************************************************************/
 241 
 242 #endif

/* [previous][next][first][last][top][bottom][index][help]  */