Last active
August 14, 2025 19:32
-
-
Save zainab-ali/ef7eea79b32b1e265c216e818eb96dab to your computer and use it in GitHub Desktop.
London Scala User Group Talks Thank-you Template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //> using dep com.indoorvivants::decline-derive::latest.release | |
| import decline_derive.* | |
| case class Attributes( | |
| @Name("intro-slides") | |
| introSlides: String, | |
| @Name("venue") | |
| venue: String, | |
| @Name("venue-bsky") | |
| venueBsky: String, | |
| @Name("speaker-1-name") | |
| speaker1Name: String, | |
| @Name("speaker-1-bsky") | |
| speaker1Bsky: String, | |
| @Name("speaker-1-talk-title") | |
| talk1: String, | |
| @Name("speaker-1-slides") | |
| speaker1Slides: String, | |
| @Name("speaker-2-name") | |
| speaker2Name: String, | |
| @Name("speaker-2-bsky") | |
| speaker2Bsky: String, | |
| @Name("speaker-2-talk-title") | |
| talk2: String, | |
| @Name("speaker-2-slides") | |
| speaker2Slides: String, | |
| @Name("next-talk-date") | |
| nextTalksDate: String, | |
| @Name("next-talk-link") | |
| nextTalksLink: String, | |
| @Name("next-hack-date") | |
| nextHackDate: String, | |
| @Name("next-hack-link") | |
| nextHackLink: String, | |
| @Name("next-wis-date") | |
| nextWomenInScalaDate: String, | |
| @Name("next-wis-link") | |
| nextWomenInScalaLink: String | |
| ) derives CommandApplication | |
| @main def main(args: String*) = | |
| fillIn(CommandApplication.parseOrExit[Attributes](args)) | |
| def fillIn(attributes: Attributes): Unit = { | |
| val template = """ | |
| === Bluesky === | |
| Thank you for attending yesterday's Scala Talks! Thanks go to @<venue-bsky> for having us round for pizza, drinks and a beautiful venue. Special thanks go to our fantastic speakers @<speaker-1-bsky> and @<speaker-2-bsky>. See you next time! | |
| π from us <intro-slides> | |
| π from "<talk-1>" by @<speaker-1-bsky> : <speaker-1-slides> | |
| π from "<talk-2>" by @<speaker-2-bsky> : <speaker-2-slides> | |
| Join our Discord for video announcements https://discord.gg/aRCVCHmHES! | |
| === LinkedIn === | |
| Thank you for attending yesterday's Scala Talks! Thank go to <venue> for having us round for pizza, drinks and a beautiful venue. Special thanks go to our fantastic speakers <speaker-1> and <speaker-2>. See you next time! | |
| π Slides from us <intro-slides> | |
| π Slides from "<talk-1>" by <speaker-1> : <speaker-1-slides> | |
| π Slides from "<talk-2>" by <speaker-2> : <speaker-2-slides> | |
| π Enter our Scala Days Underrepresented Group Discount Ticket Raffle: https://forms.gle/cKjqBHW36VsgMB3u7 | |
| π Save the date for our next meetup on <next-talks-date> <next-talks-link> | |
| π Come along to the OSS hack on <next-hack-date> <next-hack-link> | |
| π Come along to ScalaBridge on <next-bridge-date> <next-bridge-link> | |
| π’Join our Discord for video announcements: https://discord.gg/aRCVCHmHES! | |
| π·Join our Discord #jobs channel for job postings: https://discord.gg/aRCVCHmHES! | |
| === Meetup === | |
| Thank you for attending yesterday's Scala Talks! We hope you enjoyed it as much as we did. Thanks go to <venue> for having us round for pizza, drinks and a beautiful venue. Special thanks go to our fantastic speakers <speaker-1> and <speaker-2>. | |
| - π [slides from us](<intro-slides>) | |
| - π [slides from "<talk-1>" by <speaker-1>](<speaker-1-slides>) | |
| - π [slides from "<talk-2>" by <speaker-2>](<speaker-2-slides>) | |
| - π [Enter our Scala Days Underrepresented Group Discount Ticket Raffle](https://forms.gle/cKjqBHW36VsgMB3u7) | |
| - π [Save the date for our next meetup on <next-talks-date>](<next-talks-link>) | |
| - π [Come along to the OSS hack on <next-hack-date>](<next-hack-link>) | |
| - π [Come along to Women In Scala on <next-wis-date>](<next-wis-link>) | |
| - π’[Join our Discord for video announcements](https://discord.gg/aRCVCHmHES) | |
| - π·[Join our Discord jobs channel for job postings](https://discord.gg/aRCVCHmHES) | |
| See you soon! | |
| London Scala User Group | |
| """ | |
| val filledIn = template | |
| .replaceAll("<intro-slides>", attributes.introSlides) | |
| .replaceAll("<venue>", attributes.venue) | |
| .replaceAll("<venue-bsky>", attributes.venueBsky) | |
| .replaceAll("<speaker-1-bsky>", attributes.speaker1Bsky) | |
| .replaceAll("<speaker-1>", attributes.speaker1Name) | |
| .replaceAll("<talk-1>", attributes.talk1) | |
| .replaceAll("<speaker-1-slides>", attributes.speaker1Slides) | |
| .replaceAll("<speaker-2-bsky>", attributes.speaker2Bsky) | |
| .replaceAll("<speaker-2>", attributes.speaker2Name) | |
| .replaceAll("<talk-2>", attributes.talk2) | |
| .replaceAll("<speaker-2-slides>", attributes.speaker2Slides) | |
| .replaceAll("<next-talks-date>", attributes.nextTalksDate) | |
| .replaceAll("<next-talks-link>", attributes.nextTalksLink) | |
| .replaceAll("<next-hack-date>", attributes.nextHackDate) | |
| .replaceAll("<next-hack-link>", attributes.nextHackLink) | |
| .replaceAll("<next-wis-date>", attributes.nextWomenInScalaDate) | |
| .replaceAll("<next-wis-link>", attributes.nextWomenInScalaLink) | |
| println(filledIn) | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment