Add YouTube 14.44

Update parsing of configuration files as well.

Change-Id: I9d63a69448ff7e60d243a8b47ad300209ee62b38
diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index d93e3c0..32ff432 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -15,7 +15,7 @@
 import gmscore_data
 import golem
 import nest_data
-from sanitize_libraries import SanitizeLibraries
+from sanitize_libraries import SanitizeLibraries, SanitizeLibrariesInPgconf
 import toolhelper
 import utils
 import youtube_data
@@ -386,6 +386,19 @@
     return 'deploy' if options.compiler == 'r8' else 'proguarded'
   return options.type
 
+def check_no_injars_and_no_libraryjars(pgconfs):
+  # Ensure that there are no -injars or -libraryjars in the configuration.
+  for pgconf in pgconfs:
+    pgconf_dirname = os.path.abspath(os.path.dirname(pgconf))
+    with open(pgconf) as pgconf_file:
+      for line in pgconf_file:
+        trimmed = line.strip()
+        if trimmed.startswith('-injars'):
+          raise Exception("Unexpected -injars found in " + pgconf)
+        elif trimmed.startswith('-libraryjars'):
+          raise Exception("Unexpected -libraryjars found in " + pgconf)
+
+
 def run_with_options(options, args, extra_args=None, stdout=None, quiet=False):
   if extra_args is None:
     extra_args = []
@@ -451,11 +464,20 @@
     if 'pgconf' in values and not options.k:
       sanitized_lib_path = os.path.join(
           os.path.abspath(outdir), 'sanitized_lib.jar')
-      sanitized_pgconf_path = os.path.join(
-          os.path.abspath(outdir), 'sanitized.config')
-      SanitizeLibraries(
-          sanitized_lib_path, sanitized_pgconf_path, values['pgconf'])
-      args.extend(['--pg-conf', sanitized_pgconf_path])
+      if 'no_inputs_in_pgconf' in values and values['no_inputs_in_pgconf']:
+        check_no_injars_and_no_libraryjars(values['pgconf'])
+        SanitizeLibraries(
+          sanitized_lib_path, values['libraries'], values['inputs'])
+        args.extend(['--lib', sanitized_lib_path])
+        for lib in values['pgconf']:
+          args.extend(['--pg-conf', lib])
+        args.extend(values['inputs'])
+      else:
+        sanitized_pgconf_path = os.path.join(
+            os.path.abspath(outdir), 'sanitized.config')
+        SanitizeLibrariesInPgconf(
+            sanitized_lib_path, sanitized_pgconf_path, values['pgconf'])
+        args.extend(['--pg-conf', sanitized_pgconf_path])
       app_provided_pg_conf = True
     if options.k:
       args.extend(['--pg-conf', options.k])
@@ -470,7 +492,8 @@
       extra_args.append('-Dcom.android.tools.r8.generatedMessageLiteShrinking=1')
       extra_args.append('-Dcom.android.tools.r8.stringSwitchConversion=1')
 
-  if not options.no_libraries and 'libraries' in values:
+  if (not options.no_libraries and 'libraries' in values
+      'no_inputs_in_pgconf' in values and not values['no_inputs_in_pgconf']):
     for lib in values['libraries']:
       args.extend(['--lib', lib])