Fix error when colleting logs.

- Fix the following 3 errors:
  - sudo: unable to execute /bin/cp: Argument list too long
  - sudo: /opt/google/input/cmt_feedback: command not found
  - ls: cannot access /opt/oem/: No such file or directory
- setting TMPDIR will override the default /tmp for file output directory

BUG=chrome-os-partner:49851
TEST=Ran on terra13

o

Change-Id: I2f6ae130a78bc41e753a8ba5cbcd2b4b80500530
Reviewed-on: https://chromium-review.googlesource.com/324147
Commit-Ready: danny chan <dchan@chromium.org>
Tested-by: danny chan <dchan@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>
diff --git a/generate_logs b/generate_logs
index 542b240..9fd1c4c 100755
--- a/generate_logs
+++ b/generate_logs
@@ -24,7 +24,7 @@
 
 home_dir=/home/chronos
 log_dir=/tmp/diagnostic_logs
-tar_path=/tmp
+tar_path=${TMPDIR:-/tmp}
 
 mkdir -p ${log_dir}
 sudo rm -rf ${log_dir}/*
@@ -84,12 +84,14 @@
     echo "Dumped audio diagnostics"
 
 # Get trackpad user feedback
+[[ -x /opt/google/input/cmt_feedback ]] &&
 sudo /opt/google/input/cmt_feedback > \
     ${log_dir}/trackpad_feedback.dat &&
     echo "Dumped touchpad feedback"
 
-ts_exists="/opt/google/input/inputcontrol --names -t touchscreen"
-if [[ -n $(${ts_exists}) ]]; then
+inputcontrol="/opt/google/input/inputcontrol"
+ts_exists="${inputcontrol} --names -t touchscreen"
+if [[ -x $inputcontrol && -n $(${ts_exists}) ]]; then
   # Get touchscreen user feedback
   sudo /opt/google/input/evdev_feedback > \
       ${log_dir}/touchscreen_feedback.dat &&
@@ -114,6 +116,7 @@
     echo "Copied list of entire stateful contents"
 
 # List what is in the OEM folder
+[[ -d /opt/oem ]] &&
 sudo ls -alR /opt/oem/ > ${log_dir}/oem.txt &&
     echo "Copied list of oem folder contents"
 
@@ -124,8 +127,8 @@
 
 mkdir -p ${log_dir}/system_level_logs ${log_dir}/crashdumps
 # Copying all logs under /var/log/.
-sudo cp -r /var/log/* ${log_dir}/system_level_logs &&
-    echo "Copied all system level logs from /var/log/"
+sudo cp -r /var/log ${log_dir}/system_level_logs &&
+    echo "Copied all system level logs from /var/log"
 
 user_home_dirs=($(mount | grep -o "/home/user/[[:alnum:]]\{,\}" \
                   | sed 's:/home/user/::'))