pull: Add the FSF ID to per-license files as 'id'
authorW. Trevor King <wking@tremily.us>
Thu, 4 Jan 2018 22:06:20 +0000 (14:06 -0800)
committerW. Trevor King <wking@tremily.us>
Thu, 4 Jan 2018 22:06:20 +0000 (14:06 -0800)
This allows you to convert an SPDX ID back to a FSF ID:

  $ curl -s https://wking.github.io/fsf-api/spdx/MIT.json | jq -r .id
  Expat

without scraping the information out of 'uris'.

README.md
pull.py

index ed1d37c26498fea79ab40ad054c2d4bcaf3b9270..b395af579508f4caa7e24a119e1b96aa5ae352b0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -38,7 +38,8 @@ You can pull an individual license from a few places:
 
 Licenses have the following properties:
 
-* FSF ID: a short slug identifying the license.
+* `id`: a short slug identifying the license.
+    In [`licenses-full.json`](#licenses-full.json), this is information is in the in root object key and not duplicated in the value.
 * `name`: a short string naming the license.
 * `uris`: an array of URIs for the license.
     The first entry in this array will always be an entry on the [the FSF's HTML page][fsf-list].
diff --git a/pull.py b/pull.py
index ec471cb6e32a16caf2aaa40ee2c05f6896c4ae01..995e2a707725808848b25a82bd10cdf0b0e5455c 100755 (executable)
--- a/pull.py
+++ b/pull.py
@@ -286,7 +286,8 @@ def save(licenses, dir=os.curdir):
         license = license.copy()
         if 'tags' in license:
             license['tags'] = sorted(license['tags'])
-        full_index[id] = license
+        full_index[id] = license.copy()
+        license['id'] = id
         license_path = os.path.join(dir, '{}.json'.format(id))
         with open(license_path, 'w') as f:
             json.dump(obj=license, fp=f, indent=2, sort_keys=True)