Split out `expand_sdk_name` function. NFC. (#580)

diff --git a/emsdk.py b/emsdk.py
index 2f4393d..1f57332 100755
--- a/emsdk.py
+++ b/emsdk.py
@@ -2635,6 +2635,47 @@
   return 1
 
 
+def expand_sdk_name(name):
+  if name in ('latest', 'sdk-latest', 'latest-64bit', 'sdk-latest-64bit'):
+    # This is effectly the default SDK
+    return str(find_latest_releases_sdk('upstream'))
+  elif name in ('latest-fastcomp', 'latest-releases-fastcomp'):
+    return str(find_latest_releases_sdk('fastcomp'))
+  elif name in ('latest-upstream', 'latest-clang-upstream', 'latest-releases-upstream'):
+    return str(find_latest_releases_sdk('upstream'))
+  elif name in ('tot', 'sdk-tot'):
+    return str(find_tot_sdk('upstream'))
+  elif name == 'tot-upstream':
+    return str(find_tot_sdk('upstream'))
+  elif name in ('tot-fastcomp', 'sdk-nightly-latest'):
+    return str(find_tot_sdk('fastcomp'))
+  else:
+    # check if it's a release handled by an emscripten-releases version,
+    # and if so use that by using the right hash. we support a few notations,
+    #   x.y.z[-(upstream|fastcomp_])
+    #   sdk-x.y.z[-(upstream|fastcomp_])-64bit
+    # TODO: support short notation for old builds too?
+    backend = None
+    fullname = name
+    if '-upstream' in fullname:
+      fullname = name.replace('-upstream', '')
+      backend = 'upstream'
+    elif '-fastcomp' in fullname:
+      fullname = fullname.replace('-fastcomp', '')
+      backend = 'fastcomp'
+    fullname = fullname.replace('sdk-', '').replace('-64bit', '').replace('tag-', '')
+    releases_info = load_releases_info()['releases']
+    release_hash = get_release_hash(fullname, releases_info)
+    if release_hash:
+      if backend is None:
+        if version_key(fullname) >= (1, 39, 0):
+          backend = 'upstream'
+        else:
+          backend = 'fastcomp'
+      return 'sdk-releases-%s-%s-64bit' % (backend, release_hash)
+  return name
+
+
 def main():
   global BUILD_FOR_TESTING, ENABLE_LLVM_ASSERTIONS, TTY_OUTPUT
 
@@ -2808,47 +2849,10 @@
         return 1
   sys.argv = [x for x in sys.argv if not len(x) == 0]
 
-  releases_info = load_releases_info()['releases']
-
   # Replace meta-packages with the real package names.
   if cmd in ('update', 'install', 'activate'):
     for i in range(2, len(sys.argv)):
-      arg = sys.argv[i]
-      if arg in ('latest', 'sdk-latest', 'latest-64bit', 'sdk-latest-64bit'):
-        # This is effectly the default SDK
-        sys.argv[i] = str(find_latest_releases_sdk('upstream'))
-      elif arg in ('latest-fastcomp', 'latest-releases-fastcomp'):
-        sys.argv[i] = str(find_latest_releases_sdk('fastcomp'))
-      elif arg in ('latest-upstream', 'latest-clang-upstream', 'latest-releases-upstream'):
-        sys.argv[i] = str(find_latest_releases_sdk('upstream'))
-      elif arg in ('tot', 'sdk-tot'):
-        sys.argv[i] = str(find_tot_sdk('upstream'))
-      elif arg == 'tot-upstream':
-        sys.argv[i] = str(find_tot_sdk('upstream'))
-      elif arg in ('tot-fastcomp', 'sdk-nightly-latest'):
-        sys.argv[i] = str(find_tot_sdk('fastcomp'))
-      else:
-        # check if it's a release handled by an emscripten-releases version,
-        # and if so use that by using the right hash. we support a few notations,
-        #   x.y.z[-(upstream|fastcomp_])
-        #   sdk-x.y.z[-(upstream|fastcomp_])-64bit
-        # TODO: support short notation for old builds too?
-        backend = None
-        if '-upstream' in arg:
-          arg = arg.replace('-upstream', '')
-          backend = 'upstream'
-        elif '-fastcomp' in arg:
-          arg = arg.replace('-fastcomp', '')
-          backend = 'fastcomp'
-        arg = arg.replace('sdk-', '').replace('-64bit', '').replace('tag-', '')
-        release_hash = get_release_hash(arg, releases_info)
-        if release_hash:
-          if backend is None:
-            if version_key(arg) >= (1, 39, 0):
-              backend = 'upstream'
-            else:
-              backend = 'fastcomp'
-          sys.argv[i] = 'sdk-releases-%s-%s-64bit' % (backend, release_hash)
+      sys.argv[i] = expand_sdk_name(sys.argv[i])
 
   if cmd == 'list':
     print('')
@@ -2879,6 +2883,7 @@
       key=lambda x: [int(v) if v.isdigit() else -1 for v in x.split('.')],
       reverse=True,
     )
+    releases_info = load_releases_info()['releases']
     for ver in releases_versions:
       print('         %s    %s' % (ver, installed_sdk_text('sdk-releases-upstream-%s-64bit' % get_release_hash(ver, releases_info))))
     print()