Skip to content

Instantly share code, notes, and snippets.

@alexs77
Last active March 1, 2024 20:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexs77/c526a26f4626ed47d83569a1418fd79a to your computer and use it in GitHub Desktop.
Save alexs77/c526a26f4626ed47d83569a1418fd79a to your computer and use it in GitHub Desktop.
Create QR codes for UUIDs and index.htm
#!/usr/local/bin/fish
mkdir -p qr
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
QR Codes
</title>
' > index.htm
while read uuid;
set label (printf "%s" "$uuid" | cut -c1-8)
set label "$label…"
printf "UUID: %s\tLabel: %s\n" "$uuid" "$label"
qrencode -t png "$uuid" -o - \
| convert - -resize 50% - \
| convert - -mattecolor grey -background grey \
-frame 3x3+0+3 -gravity South -splice 0x15 \
-size 165x70 -pointsize 9 \
-annotate 0x0 "$label" -frame 6x6+3+0 \
"qr/$uuid.png"
printf '\t<img src="%s" title="%s" alt="%s">\n' "qr/$uuid.png" "$label" "$uuid" >> index.htm
end < uuids.txt
# EOF
E9CD2A9B-C205-4E7C-BC2E-50BD1B0E87B3
6F5C3AF4-1B2A-4493-AD26-B8893F5A3A8B
A7BADF1A-7928-4B0A-9D78-9DAF9EFC96F9
DBC69AB9-B11A-44F6-8F22-BE256C4DDCB0
D1B238F1-5A5C-45DD-A25F-6E46C43E40A0
5E60B4DE-B9E3-42F3-913C-FA1BC79C7497
5ADA7AA9-A045-4B4D-8A97-7BD30A3FCAC4
51DB6792-5057-4347-8F28-A4D433110543
7C754433-BBC9-4FFC-9035-0FC306BADE43
43ACC0C2-E161-4A0A-9C34-20D5D911F51C
27548C0D-0CC9-4289-8946-97E6FBF90127
436C9AF8-7256-47DE-8F09-891B1C17D8F2
43FB6755-2BF8-44C9-9087-8299E7CF617A
CA04C4D7-0499-4820-97F2-1202234CE794
45F96401-89E1-412B-9D02-A39F910162E7
8F60E6F8-BDF8-46D3-9EB8-3D03D00B0956
68C51846-06B7-47F3-9274-D0CACD66A50A
A74B737F-6FCF-49C4-B9B7-02B9AF215E16
D3D7E5A1-3BE4-48A4-AB2A-6724BCE50308
5B974262-DE67-4736-9843-7AD115326534
5D5B47DA-0C84-4CFF-AD9F-86532123A688
44AE206F-72DA-4AE7-9D9D-41A7F313F0E7
86D83C53-D4D9-4342-A306-6718E7BE7749
6702F02A-3E72-4F72-8767-15459C79062B
2DD3917B-4879-4CE7-836D-7681049317D0
9F6A590D-C8D8-430A-833C-A6085A451621
72E54088-E72F-4EBB-AD45-474CB0EE20C4
5C9FED47-D112-489E-9ABC-ED763D64A919
F046E16B-260A-4142-B7F0-1AB89A9407ED
83615A52-C8E7-4392-B43E-D0ABF69F9F52
26D18CAE-FD69-4A73-A188-B6FC51EFFC1A
A4B6C997-9C0A-489E-AFDF-046337937596
D895737D-D8B7-4DAD-A472-36EB29B4ACB6
4ECFFBD0-92A4-4750-B555-41F7E43894E6
4A8DE59F-51A0-44A3-9D6F-533073754E49
80CC25BF-79C3-45F4-B51A-7839ED243332
A3DB654E-F61E-4DD7-94FF-7EF5E052DF51
D891A82D-3F13-41F7-841F-3A91AB68CA59
333DB089-6AB9-4256-987D-8EAE431860AA
1BC09150-AADF-4635-A238-D5ABFC3795BD
74B52D69-86AF-490B-8B13-49CDCD20DC06
CE09C8E3-B14C-489C-99DE-3047C877F8D6
DF52F7BC-99C8-45C6-8817-6B16E81F5C6D
DABCD833-0844-4642-B346-898C652AB9AB
A8BDC0A7-EB17-4600-8607-A8FB93DC0073
8E8E043F-14CA-444E-8597-33ED17FDE94A
D1A01797-4049-4671-B345-1750F0B6D1B5
B759B2FC-26E1-48CE-BC1B-5B40BACE7C43
E0314315-4B2A-4906-84CF-7B2DA7EE7FAB
EFDC8123-D955-464E-9BB4-30498854659B
585F4EA0-6440-4312-8A22-0D4C202943E1
52CD07F3-8B7B-410C-872F-4C59EEF971F9
B75DC7AA-308E-48BB-82D9-117AC8F06BB0
99EDAF9A-DC7F-44C0-8738-7283A72D6FB2
726A1C57-A42E-4F78-B59B-6376436462F2
B142A4D2-7367-4BBE-84DD-04DCF4603EC6
84C8D859-075B-488E-BD55-6AABF174B2B5
A76A7560-8A37-41F0-A608-FB08F21DBD35
0A1910EB-E9B2-4B96-B231-BB43D210216F
C29D1C17-6BCC-4C1D-87B4-7B3F4911D25E
819EA401-5EA2-4B70-9DB0-D604977A1F91
C4FCC876-0D33-4F9F-9742-20BD8414A5C2
D0D2766E-9D00-485E-8982-CC6DCBFAE0EA
1826998C-53E6-4B1D-AB14-4F6A8F19AED8
98E479A8-0BD8-4C12-903A-EB03F68D6C3B
9DFC4B03-E14C-4815-9709-EA95DA8E0E01
0FAC24F4-37C3-4CB8-B531-006FF5307293
7822D361-5BCC-4152-A864-ED689ABAA2FA
93A4CD4B-0D2D-428F-A37E-854A58CB3189
F4A05E53-915B-4BA4-9846-5D5CA0CD3836
F46CB8A4-D872-4BB8-9BF0-5FF1A7C80D14
38D40889-9295-44E9-9704-31008A1A9203
D2361285-9069-49FB-AF89-AEB28FDFCE43
2B747577-D196-4526-8A0A-CFEB9BAF754F
62BE3F90-0A25-4E17-8B3C-28CE1BA115CF
762136C2-A84D-4622-B1B9-4C03AD9CC574
11B660D5-D04C-444F-977E-BB271DE626F6
DB91466F-B8DE-46DB-9CD0-B0DA2F7FAFDF
EEF1D5CF-8348-44D4-8EAB-D2C604D8CE01
3BB06908-6A6C-46F4-AE6B-4D484B057E0B
F64725A6-4070-4AE4-A25B-5F3868F5B6EB
88B73ADC-EF05-4B87-8A3E-680C7B9C23A7
3387E934-A0E9-43B2-94D2-3C9358E78F39
603C0070-0C09-4035-9FEE-3B7840F5F1DE
36FB39E7-7E40-4702-AEE7-8D4935768CA6
EED4C283-DE7F-4B6F-B148-6FAC6D62CBAB
7E500F1C-A95B-4857-BAAC-706FA54E10FC
AEDAE30C-57FB-41D3-B0D4-C8EB88686B5F
5E22FC6E-DEC0-473A-980A-5DD086A5334B
F8563B8D-3C8C-4DC7-B0C3-61411DED9A81
E70EFA69-D9D3-46BE-A170-08691D5FC412
E9BC6AE3-6725-499F-A4BE-FFCF9069FFCB
A40BF833-4D77-4E26-92F6-891FBFAB191A
E55DFD28-4DAA-45D3-A17F-FE8D8BD9B82D
3D386FA4-B823-4A18-91E4-24C025097B48
440147C9-1F15-4931-AF5B-8B403C6E241C
26E38E94-BED3-4ADC-823A-65DF476D57F8
13B9B253-406B-4BB3-9D8D-2301BA9E3BE6
B3B633F2-CA5D-4254-8DAF-15E74CE153F1
A530E619-8564-4A07-8072-F50709218991
8C960579-09AD-4214-BAF1-D6D651344FDC
20CCC229-C21A-408B-9BB9-9FBC832A097F
E7F6CAD0-B61C-4B24-B14E-7545B0ABA3C7
507D5DBD-B2C8-47CD-81E4-968CD39A1190
50F5E561-9AC6-4F83-924A-50CFD4D6CF3E
638D3156-ECC2-47AB-80C8-39C6E37802FE
5DBF3F5F-6BAE-4EC5-B34B-661708A9659C
58917191-1698-4B4F-85EC-2D59F39FF0F4
A7C50058-D8F7-4208-9E6A-E7D4F47B13DC
E7C9EF5D-B707-445D-82A0-8EBC9E80C220
38A687FB-4310-4943-A997-CAEC521582A5
7AC1E200-94F5-4086-8EDD-3A462E683E91
E80B47BC-2D57-4CD2-9689-6EE9F9CC9F11
E0C94997-E75D-47C9-8B81-FEF5E2E502E0
6FF66EF8-B285-4F38-820F-EA39EA6111C5
95576D9C-4A03-4909-9627-87D3DF59DDF9
982361AD-C1B6-43BC-B649-3DEA549EAD91
D518FACC-6268-4FFF-9067-3433B802B301
A872694D-C3AE-425C-8EAD-48ACB15469A7
38166774-654E-4D8F-B128-C7C277C518D0
7E7A7C84-D54F-41A7-BF91-7FC5C90374DC
259F37E9-9BFD-4C9C-A1F5-9748B56FF390
3406CB23-3E18-4FA4-8E7F-F93ACE4997D5
ED7BCAAF-CDF4-468E-AED7-45D38125B077
32EE8951-DE27-4943-8851-AE319466A355
7DB5C9A8-CA18-4B64-9ED4-A13FFAC7AB0A
AFDD4D6C-8E70-4E5C-A714-9544F644B3F2
50FC64EA-DA79-42D3-96A8-2117F823FCB2
EF319708-C1F6-4157-B083-3A567DE812D9
32AF1FC2-5583-4A28-B400-72B7BFBE002E
D3A470A4-EE33-41BC-B58F-722F5244EED9
97EB78EB-A865-4314-8C03-F5BAD2D86FE9
B418DB84-E9C3-4ECB-9AD6-836E982F33AC
90F3D1FE-1253-4883-9269-EE656EB4BA17
79C3A1DD-F982-44C8-AB20-076B4A7F0A0C
CE60F843-A61B-40F3-B553-7C5F976F4491
D4F92E81-769B-4953-ACDA-CABACBAA9661
B35CB57C-A69A-4F3C-931A-370F81311FBA
2D480A71-388E-4693-98AB-A9EF61955FC7
E8FFA928-9550-45B1-BF42-BDA9590E2749
3B9B764F-AF84-4167-83A0-1F90E007FF82
64006D27-E343-405E-99EC-16228BB3A02C
05D0EFF8-0A22-460D-83DF-C73006273259
74540547-B175-4CA5-9C14-376A3F3530D7
63D47409-691C-476E-B881-1C3EA0A90149
66B3A2FA-3D83-45EC-9B66-4EB52DB50877
E954FF13-14EC-4F32-947D-8CF31FC5B6AA
52CFED83-7FBD-423E-A334-3B8AFC4DD5CF
D253D990-7D1A-4670-82BF-CCEE09134242
216261DF-4C94-476C-A95C-3079B6427049
@alexs77
Copy link
Author

alexs77 commented Oct 9, 2018

It's a fish-shell script.
Expects that there's a "uuid.txt" file with one UUID per line (or actually, anything…)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment