Browse Source

file manager api commands

Serghey Rodin 11 years ago
parent
commit
d160b441c7
3 changed files with 133 additions and 0 deletions
  1. 58 0
      bin/v-copy-fs-file
  2. 39 0
      bin/v-list-fs-directory
  3. 36 0
      bin/v-open-fs-file

+ 58 - 0
bin/v-copy-fs-file

@@ -0,0 +1,58 @@
+#!/bin/bash
+# File copier
+
+user=$1
+file_src=$2
+file_dst=$3
+
+# Checking arguments
+if [ -z "$file_dst" ]; then
+    echo "Usage: USER SRC_FILE DST_FILE"
+    exit 1
+fi
+
+# Checking users
+if [ ! -e "$VESTA/data/users/$user" ]; then
+    exit 1
+fi
+
+# Checking homedir
+homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
+if [ -z $homedir ]; then
+    exit 1
+fi
+
+# Checking source file
+if [ ! -e "$file_src" ]; then
+    exit 1
+fi
+
+# Checking source path
+rpath=$(readlink -f "$file_src")
+if [ -z "$(echo $rpath |grep ^/tmp)" ]; then
+    exit 1
+fi
+
+# Checking destination path
+rpath=$(readlink -f "$file_dst")
+if [ -z "$(echo $rpath |grep ^$homedir)" ]; then
+    exit 1
+fi
+
+# Checking dst file permission
+if [ -e "$file_dst" ]; then
+    perms=$(stat --format '%a' $file_dst)
+fi
+
+# Copying file
+cp $file_src $file_dst
+
+# Changing ownership
+chown $user:$user $file_dst
+
+# Changin permissions
+if [ ! -z "$perms" ]; then
+    chmod $perms $file_dst
+fi
+
+exit

+ 39 - 0
bin/v-list-fs-directory

@@ -0,0 +1,39 @@
+#!/bin/bash
+# File list wrapper
+
+user=$1
+path=$2
+
+# Checking arguments
+if [ -z "$user" ]; then
+    echo "Usage: USER [PATH]"
+    exit 1
+fi
+
+# Checking users
+if [ ! -e "$VESTA/data/users/$user" ]; then
+    exit 1
+fi
+
+# Checking homedir
+homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
+if [ -z $homedir ]; then
+    exit 1
+fi
+
+# Checking path
+if [ ! -z "$path" ]; then
+    # Validating absolute path
+    rpath=$(readlink -f "$path")
+    if [ -z "$(echo $rpath |grep $homedir)" ]; then
+        exit 1
+    fi
+else
+    path=$homedir
+fi
+
+# Listing files
+find "$path" -maxdepth 1 -printf "%y/%m/%TY-%Tm-%Td/%TH:%TM:%TS/%u/%g/%s/%P\n"
+
+
+exit

+ 36 - 0
bin/v-open-fs-file

@@ -0,0 +1,36 @@
+#!/bin/bash
+# File reader
+
+user=$1
+path=$2
+
+# Checking arguments
+if [ -z "$path" ]; then
+    echo "Usage: USER PATH"
+    exit 1
+fi
+
+# Checking users
+if [ ! -e "$VESTA/data/users/$user" ]; then
+    exit 1
+fi
+
+# Checking homedir
+homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
+if [ -z $homedir ]; then
+    exit 1
+fi
+
+# Checking path
+if [ ! -z "$path" ]; then
+    # Validating absolute path
+    rpath=$(readlink -f "$path")
+    if [ -z "$(echo $rpath |grep $homedir)" ]; then
+        exit 1
+    fi
+fi
+
+cat "$path"
+
+exit
+