initial json file generator

keyboards_json
Jack Humbert 7 years ago
parent 5ad103fa51
commit 9b3b9cdfbf

@ -0,0 +1,312 @@
[
{
"name": "Alps64 keyboard firmware",
"shortname": "alps64",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "AMJ40 keyboard firmware",
"shortname": "amj40",
"date_added": "2017-07-26T12:46:04+02:00"
},
{
"name": "AMJ60 keyboard firmware",
"shortname": "amj60",
"date_added": "2016-08-18T13:06:16+02:00"
},
{
"name": "amjpad",
"shortname": "amjpad",
"date_added": "2016-12-31T13:19:05-05:00"
},
{
"name": "Atomic",
"shortname": "atomic",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "atreus keyboard firmware",
"shortname": "atreus",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "atreus62 keyboard firmware",
"shortname": "atreus62",
"date_added": "2016-11-16T23:52:36-05:00"
},
{
"name": "bananasplit",
"shortname": "bananasplit",
"date_added": "2017-08-03T03:51:34+02:00"
},
{
"name": "Bantam44 keyboard firmware",
"shortname": "bantam44",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "chibios_test",
"shortname": "chibios_test",
"date_added": "2016-07-05T13:48:12+03:00"
},
{
"name": "Clueboard 66%",
"shortname": "clueboard",
"date_added": "2016-06-29T16:21:41-04:00"
},
{
"name": "Cluecard",
"shortname": "cluecard",
"date_added": "2016-08-08T16:11:54-07:00"
},
{
"name": "Cluepad",
"shortname": "cluepad",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "DeltaSplit75",
"shortname": "deltasplit75",
"date_added": "2017-07-23T16:30:51-04:00"
},
{
"name": "DK60",
"shortname": "dk60",
"date_added": "2017-05-07T22:56:27+02:00"
},
{
"name": "ECO",
"shortname": "eco",
"date_added": "2017-07-04T14:14:26-04:00"
},
{
"name": "Ergodox EZ",
"shortname": "ergodox-ez",
"date_added": "2016-07-07T22:28:28+03:00"
},
{
"name": "Ergodox Infinity",
"shortname": "ergodox-infinity",
"date_added": "2016-07-07T22:28:28+03:00"
},
{
"name": "frosty_flake keyboard firmware",
"shortname": "frosty_flake",
"date_added": "2017-03-18T15:38:03-07:00"
},
{
"name": "#gh60 Rev C keyboard firmware",
"shortname": "gh60",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "gherkin",
"shortname": "gherkin",
"date_added": "2017-06-02T12:32:00+01:00"
},
{
"name": "GON NerD keyboard firmware",
"shortname": "gonnerd",
"date_added": "2017-02-11T16:46:13+01:00"
},
{
"name": "",
"shortname": "hadron",
"date_added": "2017-07-11T13:53:50-04:00"
},
{
"name": "hhkb_qmk keyboard firmware",
"shortname": "hhkb",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "Infinity 60% keyboard firmware",
"shortname": "infinity60",
"date_added": "2016-08-27T23:14:27+03:00"
},
{
"name": "JC65",
"shortname": "jc65",
"date_added": "2017-08-04T16:05:10-07:00"
},
{
"name": "#jd40 mkii keyboard firmware",
"shortname": "jd40",
"date_added": "2016-09-02T16:14:40-07:00"
},
{
"name": "JD45 keyboard firmware",
"shortname": "jd45",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "kbd75",
"shortname": "kbd75",
"date_added": "2017-06-19T22:59:17-07:00"
},
{
"name": "KC60 (version 2.0) keyboard firmware",
"shortname": "kc60",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "kinesis-advantage keyboard firmware",
"shortname": "kinesis-alvicstep",
"date_added": "2017-01-08T22:02:01-08:00"
},
{
"name": "kinesis_stapelberg keyboard firmware",
"shortname": "kinesis-stapelberg",
"date_added": "2017-01-08T22:02:01-08:00"
},
{
"name": "kitten_paw keyboard firmware",
"shortname": "kitten_paw",
"date_added": "2016-08-22T20:34:29+02:00"
},
{
"name": "KMAC keyboard firmware",
"shortname": "kmac",
"date_added": "2017-06-04T22:13:17+02:00"
},
{
"name": "Let's Split",
"shortname": "lets_split",
"date_added": "2016-07-05T23:27:10-04:00"
},
{
"name": "m10a",
"shortname": "m10a",
"date_added": "2017-05-18T18:55:07-04:00"
},
{
"name": "Maxipad keyboard firmware",
"shortname": "maxipad",
"date_added": "2016-11-10T18:19:13-05:00"
},
{
"name": "mechmini",
"shortname": "mechmini",
"date_added": "2017-06-09T10:11:34-04:00"
},
{
"name": "MiniDox",
"shortname": "minidox",
"date_added": "2017-07-10T00:46:19-04:00"
},
{
"name": "Mitosis Keyboard Firmware",
"shortname": "mitosis",
"date_added": "2017-04-19T20:12:50+10:00"
},
{
"name": "miuni32 keyboard firmware",
"shortname": "miuni32",
"date_added": "2016-11-21T08:22:14-08:00"
},
{
"name": "The Nyquist Keyboard",
"shortname": "nyquist",
"date_added": "2017-05-29T15:37:19-04:00"
},
{
"name": "QMK Firmware for 大橘子外设 (Large Orange Peripheral)'s 60% Org60 PCB",
"shortname": "org60",
"date_added": "2017-08-09T09:47:16-04:00"
},
{
"name": "Orthodox",
"shortname": "orthodox",
"date_added": "2017-06-25T22:30:07-03:00"
},
{
"name": "pegasushoof",
"shortname": "pegasushoof",
"date_added": "2016-05-29T02:48:56+02:00"
},
{
"name": "Phantom keyboard firmware",
"shortname": "phantom",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "Planck",
"shortname": "planck",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "Preonic",
"shortname": "preonic",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "ps2avrGB",
"shortname": "ps2avrGB",
"date_added": "2017-01-21T12:30:06-05:00"
},
{
"name": "roadkit keyboard firmware",
"shortname": "roadkit",
"date_added": "2017-02-27T21:42:25-05:00"
},
{
"name": "S60-x keyboard firmware",
"shortname": "s60_x",
"date_added": "2017-04-30T10:48:17-04:00"
},
{
"name": "S65-x keyboard firmware",
"shortname": "s65_x",
"date_added": "2017-06-10T21:04:16-04:00"
},
{
"name": "Satan GH60 keyboard firmware",
"shortname": "satan",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "Techkeys SixKeyBoard",
"shortname": "sixkeyboard",
"date_added": "2016-06-21T22:39:54-04:00"
},
{
"name": "TADA68 keyboard firmware",
"shortname": "tada68",
"date_added": "2016-09-22T23:33:22-04:00"
},
{
"name": "tiger_lily keyboard firmware",
"shortname": "tiger_lily",
"date_added": "2017-05-07T17:23:19-04:00"
},
{
"name": "tv44 keyboard firmware",
"shortname": "tv44",
"date_added": "2016-08-13T10:36:08-07:00"
},
{
"name": "UK78",
"shortname": "uk78",
"date_added": "2017-08-06T22:23:40+01:00"
},
{
"name": "vision_division keyboard firmware",
"shortname": "vision_division",
"date_added": "2016-08-20T10:26:36-05:00"
},
{
"name": "WhiteFox keyboard firmware",
"shortname": "whitefox",
"date_added": "2017-01-03T23:41:52-08:00"
},
{
"name": "QMK Firmware for XIUDI's 60% XD60 PCB",
"shortname": "xd60",
"date_added": "2016-12-18T15:35:03-08:00"
},
{
"name": "xd75 keyboard firmware",
"shortname": "xd75",
"date_added": "2017-07-29T14:22:09-06:00"
},
]

@ -0,0 +1,48 @@
#/bin/bash
# {
# "name": "Planck",
# "shortname": "planck"
# }
printf "[" > keyboards.json
for project in $(find . -regex '\./keyboards/[a-z0-9_\-]+/config.h')
do
shortname=$(printf $project | sed -r "s/\.\/keyboards\/([a-zA-Z0-9_\-]+).*/\1/g")
subprojects=$(find . -regex "\./keyboards/$shortname/[a-z0-9_\-]+/readme.md" | grep -vwE "keymaps")
if [ -z "$subprojects" ]; then
readme=$(find . -regex "\./keyboards/$shortname/readme.md")
if [ -z $readme ]; then
name=$shortname
else
name=$(head -n 1 $readme | sed -r "s/# //")
fi
# https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository
date_added=$(git log --diff-filter=A --follow --format=%aI -- keyboards/$shortname | tail -1)
printf "
{
\"name\": \"%s\",
\"shortname\": \"%s\",
\"date_added\": \"%s\"
}," "$name" "$shortname" "$date_added" >> keyboards.json
else
for subproject in $subprojects
do
subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${shortname}\/([a-zA-Z0-9_\-]+).*/\1/g")
readme=$(find . -regex "\./keyboards/$shortname/$subproject_name/readme.md")
if [ -z $readme ]; then
name=$shortname
else
name=$(head -n 1 $readme | sed -r "s/# //")
fi
# https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository
date_added=$(git log --diff-filter=A --follow --format=%aI -- keyboards/$shortname/$subproject_name | tail -1)
printf "
{
\"name\": \"%s\",
\"shortname\": \"%s-%s\",
\"date_added\": \"%s\"
}," "$name" "$shortname" "$subproject_name" "$date_added" >> keyboards.json
done
fi
done
printf "
]" >> keyboards.json
Loading…
Cancel
Save