Fix bug in gooftool.

1.Fix FindScript() In gooftool. When running gooftool,
sys.path[0] is py directory, but scripts are in sh directory.
Fix the path in Findscript to search files under sh directory instead of
py directory.
2.Fix GetPrimaryDevicePath(). The function returns mmcblk05
instead of mmcblk0p5. Fix the logic so it will not return mmcblk05

BUG=chrome-os-partner:8812
TEST=run /usr/local/factory/gooftool prepare_wipe on DUT, will not fail at finding scripts or
finding rootfs partition.
Change-Id: Ia2af96f275b57882585af1545d877d83387ec517
Reviewed-on: https://gerrit.chromium.org/gerrit/23198
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
diff --git a/py/gooftool.py b/py/gooftool.py
index 2984324..e1972af 100644
--- a/py/gooftool.py
+++ b/py/gooftool.py
@@ -37,17 +37,23 @@
             open(sysfs_path).read().strip() == '0')
   alpha_re = re.compile(r'^/dev/([a-zA-Z]+)[0-9]+$')
   alnum_re = re.compile(r'^/dev/([a-zA-Z]+[0-9]+)p[0-9]+$')
-  dev_set = set(
-      dev
-      for path in Shell('cgpt find -t rootfs').stdout.strip().split()
-      for dev in alpha_re.findall(path) + alnum_re.findall(path)
-      if IsFixed(dev))
+  matched_alnum = False
+  dev_set = set()
+  for path in Shell('cgpt find -t rootfs').stdout.strip().split():
+    for dev in alpha_re.findall(path):
+      if IsFixed(dev):
+        dev_set.add(dev)
+        matched_alnum = False
+    for dev in alnum_re.findall(path):
+      if IsFixed(dev):
+        dev_set.add(dev)
+        matched_alnum = True
   if len(dev_set) != 1:
     raise Error('zero or multiple primary devs: %s' % dev_set)
   dev_path = os.path.join('/dev', dev_set.pop())
   if partition is None:
     return dev_path
-  fmt_str = '%sp%d' if alnum_re.match(dev_path) else '%s%d'
+  fmt_str = '%sp%d' if matched_alnum else '%s%d'
   return fmt_str % (dev_path, partition)
 
 
@@ -60,7 +66,7 @@
 
 
 def FindScript(script_name):
-  script_path = os.path.join(sys.path[0], 'sh', script_name)
+  script_path = os.path.join(os.path.dirname(sys.path[0]), 'sh', script_name)
   if not os.path.exists(script_path):
     raise Error('Needed script %s does not exist.' % script_path)
   return script_path