Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1461 commits
Select commit Hold shift + click to select a range
863c017
Set scripts as executable
raycastbot Feb 6, 2023
8774717
Update Script Commands documentation
raycastbot Feb 6, 2023
a93703f
Add escaping character to iOS Device Logs folder to delete
jfdoradotr Feb 11, 2023
0cfe57a
Open Bing in Safari with Edge User-Agent (#820)
smxl Feb 16, 2023
1e279a0
Fix file encoding
xwjdsh Feb 17, 2023
aedc28f
Update Script Commands documentation
raycastbot Feb 20, 2023
6afc6ec
Updated functionality of is-it-up.sh
willfeldman Feb 22, 2023
e34c122
Enhanced clarity on is-it-up.sh (#824)
willfeldman Feb 22, 2023
e4f3d17
Update Script Commands documentation
raycastbot Feb 22, 2023
660dcfb
Update 'Default Browser' scripts
dehesa Feb 22, 2023
172b10b
Update Script Commands documentation
raycastbot Feb 22, 2023
95f1906
[new] add eudic command
cdpath Feb 25, 2023
760330e
Update Script Commands documentation
raycastbot Feb 27, 2023
6f64219
upd create-task.template.sh
romanwrites Mar 18, 2023
c4305b6
feat(zoom): add zoom rename profile script
leovoon Mar 31, 2023
cc0eaca
Set scripts as executable
raycastbot Mar 31, 2023
b9354ee
Update Script Commands documentation
raycastbot Mar 31, 2023
db3962f
Add OpenSecrets.org to Web Searches
selfagency Apr 20, 2023
cd78eff
Fix typo
selfagency Apr 20, 2023
b562756
Set scripts as executable
raycastbot Apr 24, 2023
41ac384
Update Script Commands documentation
raycastbot Apr 24, 2023
8dd5b54
add check open api usage
nagauta May 3, 2023
0e58d9f
expain dependency
nagauta May 3, 2023
a8631e5
add an acknowledgement
nagauta May 4, 2023
5b62b3b
Create dismiss-notifications.applescript
benyn May 6, 2023
b3f7ecb
Update Script Commands documentation
raycastbot May 8, 2023
1e8d22b
Set scripts as executable
raycastbot May 8, 2023
0133736
Add chatgpt applescript and icon
gintonyc Jun 5, 2023
51acea8
Added Bartender Search script
taglia Jun 2, 2023
11b33d0
Set scripts as executable
raycastbot Jun 5, 2023
c0ef671
Update Script Commands documentation
raycastbot Jun 5, 2023
cb9bbc6
"let me google that for you" script command
leofritsch Jun 26, 2023
fdd8fe1
Update Script Commands documentation
raycastbot Jun 27, 2023
5a6ccfb
Migrate script to proper directory
dehesa Jun 27, 2023
a53d9f5
Set scripts as executable
raycastbot Jun 27, 2023
abcd6a4
Update Script Commands documentation
raycastbot Jun 27, 2023
f9a849c
Low Power Mode script (#852)
kyellareddy Jul 3, 2023
7b990cb
feat: html to rich text on clipboard (#851)
iloveitaly Jul 3, 2023
494a333
Set scripts as executable
raycastbot Jul 3, 2023
2e598fc
Update Script Commands documentation
raycastbot Jul 3, 2023
4da6af9
Network Info.sh
kyellareddy Jul 4, 2023
b94f5aa
Set scripts as executable
raycastbot Jul 4, 2023
f2a06c1
Update Script Commands documentation
raycastbot Jul 4, 2023
8b4b503
Update imgur-upload-clipboard-image.template.sh to fix url parsing.
Lincest Jul 12, 2023
823ffe7
Create and edit Quip documents (#855)
zzamboni Jul 12, 2023
0e4e881
Update Script Commands documentation
raycastbot Jul 12, 2023
e96053f
All repos stars (#860)
valdirjunior011 Jul 25, 2023
7f45960
Set scripts as executable
raycastbot Jul 25, 2023
2f220a7
Update Script Commands documentation
raycastbot Jul 25, 2023
a84d3f7
Youtube Shorts in video player (#861)
kyellareddy Jul 25, 2023
b14e78a
Set scripts as executable
raycastbot Jul 25, 2023
842ef16
Update Script Commands documentation
raycastbot Jul 25, 2023
cfda5e9
Add Warp reauth command (#864)
Aug 10, 2023
863e081
✨ add command to convert twitter link to nitter (#863)
noidwasavailable Aug 10, 2023
0773b9b
Update Script Commands documentation
raycastbot Aug 10, 2023
3cc2737
Add Record Screen With Keystroke Pro command (#866)
danulqua Aug 16, 2023
3445618
Update Script Commands documentation
raycastbot Aug 16, 2023
fa3b984
feat: adding google docs to markdown (#867)
iloveitaly Aug 16, 2023
b27a165
Update Script Commands documentation
raycastbot Aug 16, 2023
7fe1474
Delete toolkit
mathieudutour Aug 28, 2023
e744320
Delete toolkit
mathieudutour Aug 28, 2023
652e1a4
Add command to join clipboard lines by delimiter (#871)
decaylala Sep 5, 2023
84fa6c8
✨ combinations calculator (#872)
noidwasavailable Sep 5, 2023
56bc4a4
Set scripts as executable
raycastbot Sep 5, 2023
d608ad3
Update Script Commands documentation
raycastbot Sep 5, 2023
65ec780
fix : default browser firefox is Incorrect
Aug 31, 2023
40fbb36
Update Script Commands documentation
raycastbot Sep 7, 2023
3aea198
Update cheat.sh
MustCodeAl Sep 7, 2023
f7025b9
added command to toggle sleep when laptop lid's closed
ivribalko Sep 6, 2023
f980972
Update Script Commands documentation
raycastbot Sep 7, 2023
1ef9ab9
updated command to toggle sleep when laptop lid's closed (#877)
ivribalko Sep 7, 2023
843c395
Update Script Commands documentation
raycastbot Sep 7, 2023
df523d8
feat: add command to convert inputs to markdown link
atzzCokeK Oct 10, 2023
e9dfe43
Update Script Commands documentation
raycastbot Oct 12, 2023
212044b
Improvement: Add Description and Set Default Title with Optional Argu…
atzzCokeK Oct 17, 2023
424d16a
Update Script Commands documentation
raycastbot Oct 17, 2023
4b16857
Add View Scripting Dictionary command (#885)
SKaplanOfficial Nov 8, 2023
405f311
Update Script Commands documentation
raycastbot Nov 8, 2023
f7bca8b
Add docs for dropdown arguments
mathieudutour Dec 13, 2023
3f177c7
Update ARGUMENTS.md
unnamedd Dec 13, 2023
9e015d3
Merge pull request #892 from unnamedd/unnamedd-fix-documentation
mathieudutour Dec 13, 2023
3f3e71d
Create reset-launchpad.sh (#895)
zdawz Dec 22, 2023
cb8ca31
Set scripts as executable
raycastbot Dec 22, 2023
3335fbb
Update Script Commands documentation
raycastbot Dec 22, 2023
0e72085
Adds current browser check for compatibility with Chrome confirmation…
scottaw66 Jan 6, 2024
6b65d6f
Speaker Setup.py (#898)
kyellareddy Jan 9, 2024
c97b327
Set scripts as executable
raycastbot Jan 9, 2024
566f858
Update Script Commands documentation
raycastbot Jan 9, 2024
0b29337
Remove python script from Speaker Setup
dehesa Jan 9, 2024
69ab20b
Update Script Commands documentation
raycastbot Jan 9, 2024
ab26c65
Create toggle-desktop-widget.sh
FezVrasta Jan 20, 2024
fe900e2
Set scripts as executable
raycastbot Jan 22, 2024
62a9e84
Update Script Commands documentation
raycastbot Jan 22, 2024
f1c0a0b
Add script to delete line at current cursor position (#903)
annietma Jan 26, 2024
1e44afb
Set scripts as executable
raycastbot Jan 26, 2024
b68f2f7
Update Script Commands documentation
raycastbot Jan 26, 2024
bc8aff3
toggle mute
annietma Jan 26, 2024
71e78c3
Set scripts as executable
raycastbot Feb 1, 2024
16271c5
Update Script Commands documentation
raycastbot Feb 1, 2024
2d49bc7
Create new BusyCal event or task (#904)
annietma Feb 6, 2024
2e2278e
Set scripts as executable
raycastbot Feb 6, 2024
c26117b
Update Script Commands documentation
raycastbot Feb 6, 2024
d374d01
CI: update to action to node20
grzegorzkrukowski Feb 14, 2024
d189948
Fix `search-script-command-marketplace` domain
pondorasti Feb 20, 2024
1874c0e
update the script API for apple music love song action to match curre…
Feb 19, 2024
d0b0ebb
Update apple-music-love-current-track.applescript
hgois Feb 27, 2024
28622ba
feat(apps/mail): add copy-captcha-from-mail script
RealTong Mar 2, 2024
8b4255c
feat(communication/slack): slack-dev-mode script (#910)
nysos3 Mar 10, 2024
80841b6
Fixed title issue
maximilianzuern Mar 1, 2024
df7a410
Set scripts as executable
raycastbot Mar 10, 2024
5002430
Update Script Commands documentation
raycastbot Mar 10, 2024
28fc1d9
feat(apps/mail): add copy-captcha-from-mail script
RealTong Mar 2, 2024
a067a63
Update Script Commands documentation
raycastbot Mar 10, 2024
3cd3e45
simplify title encoding logic and change the params to pass correctly
Mar 12, 2024
7fd13c1
Merge branch 'raycast:master' into master
RealTong Mar 21, 2024
8fd5100
feat(Conversions/Space-fixer): add Space-fixer script
RealTong Mar 21, 2024
485b573
Merge pull request #916 from teepobharu/image-code-param-fix
samuelkraft Mar 21, 2024
53fd1d2
Fix(Conversions/Space-fixer): Automatically detect pangu paths
RealTong Mar 22, 2024
0d05ce0
Merge pull request #920 from RealTong/master
grzegorzkrukowski Mar 27, 2024
dbbd521
Update Script Commands documentation
raycastbot Mar 27, 2024
b76e5b8
Rename Speaker Setup.sh to speaker-setup.sh
theopavlove Apr 7, 2024
0055bcf
Update Script Commands documentation
raycastbot Apr 8, 2024
f132baa
Add iPerf Speed Test to dashboards (#926)
Samywamy10 Apr 11, 2024
cfe4de3
Set scripts as executable
raycastbot Apr 11, 2024
0ef31d1
Update Script Commands documentation
raycastbot Apr 11, 2024
7035516
Update default-browser-front-most-app - Firefoc dev and SigmaOS (#925)
timothyBoye Apr 22, 2024
ea44ba2
feat: Add Dock Orientation/Autohide (#933)
j3lte Apr 22, 2024
77076af
feat: add inline-cpu-usage-percent script (#932)
JuanluR8 Apr 22, 2024
9ddee34
Update Script Commands documentation
raycastbot Apr 22, 2024
5d752ef
Set scripts as executable
raycastbot Apr 22, 2024
bf02897
Fix: Natural Scrolling Script for latest macos versions
koiralakiran1 Apr 25, 2024
88fe21f
Update Script Commands documentation
raycastbot Apr 26, 2024
61b35ef
Script for convert Markdown formatting to Telegram format (#936)
borzov May 21, 2024
503da2e
Update Script Commands documentation
raycastbot May 21, 2024
ce38219
Script for open a iterm window with a specific profile (#938)
sunrisewestern May 23, 2024
04ab6fc
Set scripts as executable
raycastbot May 23, 2024
f659757
Update Script Commands documentation
raycastbot May 23, 2024
572f553
[script] amazon s3 download script (#942)
zirkelc Jun 14, 2024
de305ec
Set scripts as executable
raycastbot Jun 14, 2024
40ebc89
Update Script Commands documentation
raycastbot Jun 14, 2024
58b1f65
Fix: ocr command by updating recognitionlangues params
sivagao Jun 22, 2024
2a01cbd
Remove superfluous period from all script template renaming instructions
dmatt Jun 22, 2024
71e08d9
fix(duckduckgo-email-protection): address parsing
WangEdward Jul 14, 2024
09b8bc3
Update and rename prayer-times-diyanet.sh to prayer-times.sh
emircanerkul Jul 20, 2024
3611492
Update Script Commands documentation
raycastbot Jul 22, 2024
c767229
system: copy selected finder file(s) to clipboard (#952)
iloveitaly Aug 5, 2024
c50cc84
Update Script Commands documentation
raycastbot Aug 5, 2024
7fe7201
Add script to open Claude and submit prompt
nimobeeren Aug 7, 2024
d15c3fd
Hide Application
that70schris Aug 13, 2024
0024090
[script] Tailscale Switch: Make it switch account without logout
quatauta Aug 16, 2024
fab19ab
change title "Prompt Claude" -> "Ask Claude"
nimobeeren Aug 16, 2024
35c0ac6
change placeholder "prompt" -> "Prompt"
nimobeeren Aug 16, 2024
3ed48c0
open in new tab instead of new window
nimobeeren Aug 16, 2024
1a72d32
change icon 🧠 -> ✨
nimobeeren Aug 16, 2024
e3bc371
list node as dependency
nimobeeren Aug 16, 2024
045d7da
add note to tell the user to enable JS from apple events
nimobeeren Aug 16, 2024
1d6845d
[script] Tailscale Switch: Add myself as contributor
quatauta Aug 19, 2024
30675f7
download current safari url
iloveitaly Aug 21, 2024
f8979d8
fix(rich-text-clipboard-to-markdown.sh): execution error
Ji4n1ng Aug 28, 2024
4432307
add sh file, commands/browsing/open-multiple-websites-on-safari.sh
ystknsh Aug 29, 2024
4c4fc50
Fix typo "ANSII"
akx Aug 29, 2024
b81ac5e
Merge pull request #961 from akx/patch-1
adilrc Aug 30, 2024
69fbaf7
Merge pull request #959 from Ji4n1ng/master
adilrc Aug 30, 2024
d6efbd9
Merge pull request #958 from iloveitaly/safari-download-url
adilrc Aug 30, 2024
70ed227
Merge pull request #957 from quatauta/feature/commands-apps-tailscale…
adilrc Aug 30, 2024
307d670
Set scripts as executable
raycastbot Aug 30, 2024
282b3bd
Update Script Commands documentation
raycastbot Aug 30, 2024
803776e
Merge pull request #954 from nimobeeren/master
adilrc Aug 30, 2024
e59aadb
Merge pull request #956 from that70schris/master
adilrc Aug 30, 2024
a99cebc
Set scripts as executable
raycastbot Aug 30, 2024
b38d4a7
Update Script Commands documentation
raycastbot Aug 30, 2024
f379cbf
Rename open-multiple-websites-on-safari.sh to include .template suffix
ystknsh Aug 30, 2024
f3f1961
Merge pull request #960 from ystknsh/master
grzegorzkrukowski Sep 3, 2024
4587350
Set scripts as executable
raycastbot Sep 3, 2024
ce1a19b
Update Script Commands documentation
raycastbot Sep 3, 2024
b40f0b5
fix: handle file, folder and bucket downloads
zirkelc Sep 17, 2024
44fbfcc
Add Rust docs web search
lemorage Sep 19, 2024
9a03ab6
Merge pull request #963 from zirkelc/fix-s3-download
giedreblekaite Sep 19, 2024
ce7fcb9
Merge pull request #964 from lemorage/rust-docs-search
giedreblekaite Sep 20, 2024
3bea3b8
Update Script Commands documentation
raycastbot Sep 20, 2024
51a84ea
Add CAGR calculation script within math folder (#965)
samueldbarton Nov 18, 2024
315385d
Add OPT command (One-Time Password) in system folder (#966)
miagg Nov 18, 2024
0cc57e1
add lowfi command
nohzafk Nov 24, 2024
4818187
add dependency description
nohzafk Nov 24, 2024
3b56827
Update README.md
pernielsentikaer Dec 4, 2024
8ada719
Update search-script-command-marketplace.sh
pernielsentikaer Dec 4, 2024
7a05f44
CI: update to macos-15
grzegorzkrukowski Dec 4, 2024
795efa5
CI: update to Xcode 16.1
grzegorzkrukowski Dec 4, 2024
71d5c85
Update Script Commands documentation
raycastbot Dec 4, 2024
62522c6
allow only second argument
cstadler333 Dec 5, 2024
4b0811a
Merge pull request #972 from cstadler333/patch-1
giedreblekaite Dec 6, 2024
51f9f30
add instruction to install lowfi
nohzafk Dec 6, 2024
ad8406f
Update dismiss-notifications.applescript to work on Sequoia
dlvhdr Dec 8, 2024
43da0f6
Update dismiss-notifications.applescript
dlvhdr Dec 9, 2024
0db64cf
Merge pull request #973 from dlvhdr/patch-1
giedreblekaite Dec 10, 2024
1fe320e
Update Script Commands documentation
raycastbot Dec 10, 2024
d8fc64c
use background execution (&) when starting WezTerm to allow the scrip…
nohzafk Dec 11, 2024
0c68505
Merge pull request #970 from nohzafk/master
giedreblekaite Dec 11, 2024
eb472c2
Set scripts as executable
raycastbot Dec 11, 2024
789b2f9
Update Script Commands documentation
raycastbot Dec 11, 2024
6ae833a
Add a new script of rename-vedios-pictures.py
StepaniaH Dec 16, 2024
80a19a9
Fix some problems based on reviewer's comments.
StepaniaH Dec 18, 2024
89e5792
Merge pull request #975 from StepaniaH/master
grzegorzkrukowski Dec 19, 2024
118d390
Update Script Commands documentation
raycastbot Dec 19, 2024
85d897b
Add Random Emoji command
Sixeight Jan 23, 2025
63d5c3d
Set scripts as executable
raycastbot Jan 28, 2025
312bc01
Update Script Commands documentation
raycastbot Jan 28, 2025
66fe9ab
Added sleep timer script command
AndriiBarabash Mar 9, 2025
c99075e
Added sleep timer script command (#985)
AndriiBarabash Mar 10, 2025
68acedb
CI: fix script-commands SOC2 commits (fixes RAY-16840)
grzegorzkrukowski Mar 10, 2025
07f691b
Update Script Commands documentation
raycastbot Mar 10, 2025
b6fdfb8
Update random-emoji to support old bash
Sixeight Mar 25, 2025
e465aa6
Merge pull request #986 from Sixeight/sixeight/support-old-bash
giedreblekaite Mar 28, 2025
867d369
feat: add script to open gemini tab and submit prompt
est7 Apr 24, 2025
0dceb4c
Update commands/ai/gemini/gemini.js
est7 May 12, 2025
7630801
Update commands/ai/gemini/gemini.js
est7 May 12, 2025
87508c1
fix: Move icon-gemini.svg to the correct directory
est7 May 12, 2025
aba5735
Set scripts as executable
raycastbot May 13, 2025
cb0cd05
Update Script Commands documentation
raycastbot May 13, 2025
776800e
feat: update dismiss notifications script
benyn May 18, 2025
72c09b3
Merge pull request #990 from benyn/dismiss-notifications-update
grzegorzkrukowski May 29, 2025
0cc95c1
Update Script Commands documentation
raycastbot May 29, 2025
b966052
Update badges
LitoMore Jun 1, 2025
0bc35e8
Add Find My Phone sound playing script using Playwright (#992)
vsvaidya27 Jun 12, 2025
6cea785
Update Script Commands documentation
raycastbot Jun 12, 2025
1ebc35d
Add natural scrolling toggle script for macOS 15.6.1+
Raphael-KR Aug 23, 2025
4426810
Set scripts as executable
raycastbot Aug 25, 2025
472e4f5
Update Script Commands documentation
raycastbot Aug 25, 2025
7d16686
adds script to copy a summary of today's meetings to the clipboard
kelseyleftwich Sep 5, 2025
3ab1d51
adding magic keyboard switcher script
blastik Sep 24, 2025
2f893ad
check blueutil dependency and add comment
blastik Sep 24, 2025
d0e43ba
fix space in readme
blastik Sep 24, 2025
38a7a07
update readme
blastik Sep 24, 2025
58da691
Merge branch 'raycast:master' into master
AndriiBarabash Sep 27, 2025
975739c
Added SSH Tunnel SOCKS Proxy script command
AndriiBarabash Sep 27, 2025
589b449
Added SSH Tunnel SOCKS Proxy script command
AndriiBarabash Sep 27, 2025
a8c2db6
Merge pull request #1001 from kelseyleftwich/calendar-meeting-summary…
grzegorzkrukowski Sep 29, 2025
0c54816
Update Script Commands documentation
raycastbot Sep 29, 2025
6fd9c62
Merge pull request #1003 from blastik/feat/magic-keyboard-switcher
grzegorzkrukowski Sep 29, 2025
81688a6
Merge pull request #1004 from AndriiBarabash/master
grzegorzkrukowski Sep 29, 2025
d54f4f6
Update Script Commands documentation
raycastbot Sep 29, 2025
577158e
Set scripts as executable
raycastbot Sep 29, 2025
b55bd77
Update Script Commands documentation
raycastbot Sep 29, 2025
bbb4605
Added Kill Processes Running od specific ports (#1005)
aaqifshafi Oct 24, 2025
9250fe3
Add script to type clipboard content character by character (#1006)
AlexGadd Oct 24, 2025
4c49372
Update Script Commands documentation
raycastbot Oct 24, 2025
2b66097
Set scripts as executable
raycastbot Oct 24, 2025
0933fd7
Update Script Commands documentation
raycastbot Oct 24, 2025
dfd9acb
Add script to delete selected files in Finder (#1008)
vigosan Oct 29, 2025
0b49ddc
Update Script Commands documentation
raycastbot Oct 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
47 changes: 31 additions & 16 deletions .github/workflows/script-commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,26 @@ name: Set as Executable and Generate Documentation

on:
push:
branches: [ master ]
branches: [master]
paths-ignore:
- commands/README.md
- commands/extensions.json

jobs:
scriptCommands:
runs-on: macos-latest
runs-on: macos-15

steps:
- uses: actions/checkout@v2

- uses: maxim-lobanov/setup-xcode@v1
- uses: actions/checkout@v4
with:
xcode-version: latest-stable
fetch-depth: 0
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

- name: Setup Xcode
uses: raycast/github-actions/[email protected]

- name: Setup GIT
uses: raycast/github-actions/[email protected]

- name: Build Toolkit
run: |
Expand All @@ -27,20 +35,27 @@ jobs:
run: |
make gen-docs-and-commit

- name: Push changes
- name: Rebase
if: success()
run: git pull origin ${{ github.ref }} --autostash --rebase -X ours

- name: Push
if: success()
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.RAYCAST_BOT_ACCESS_TOKEN }}
branch: ${{ github.ref }}
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

- name: Re-pull on failure
- name: Notify Failure
if: failure()
run: git pull origin ${{ github.ref }} --autostash --rebase -X ours

- name: Re-push on failure
if: failure()
uses: ad-m/github-push-action@master
uses: edge/simple-slack-notify@master
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.GITHUB_TOKEN }}
color: "danger"
text: ":no_entry_sign: ${env.GITHUB_WORKFLOW} has failed"
fields: |
[
{ "title": "Action logs:", "value": "${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}"},
{ "title": "Commit:", "value": "${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/commit/${ env.GITHUB_SHA }"}
]
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_STREAM_INFRA_CHANNEL_WEBHOOK_URL }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
*.xcodeproj
xcuserdata/
.swiftpm
.idea
22 changes: 21 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ Thank you for your interest in contributing to Raycast Script Commands! Here you
- [Guidelines](#guidelines)
- [Git and Pull Requests](#git-and-pull-requests)
- [Folder structure](#folder-structure)
- [English style convention](#english-style-convention)
- [File naming convention](#file-naming-convention)
- [Metadata convention](#metadata-convention)
- [Scripts that require additional modification](#scripts-that-require-additional-modification)
- [Scripts that require installation of runtimes and dependencies](#scripts-that-require-installation-of-runtimes-and-dependencies)
- [Scripts that require installation of apps](#scripts-that-require-installation-of-apps)
- [Bash profiles and environmental variables](#bash-profiles-and-environmental-variables)
- [Auto generated files](#auto-generated-files)
- [Examples](#examples)
Expand Down Expand Up @@ -48,9 +50,14 @@ Images should go into dedicated `images` folder:
└─ spotify-prev-track.applescript
```

### English style convention

Use American English spelling and style for your command metadata.
To make sure you use the right version, refer to [Wikipedia](https://en.wikipedia.org/wiki/Comparison_of_American_and_British_English) or use [British to American English Converter](https://www.infoenglish.net/british-to-american-english/)

### File naming convention

Use dash-case format for script files and directories, and use proper file extensions: Applescript should be `.applescript`, Swift should be `.swift`, Bash should be `.sh`, etc.
Use lowercased, dash-case format for script files and directories, and use proper file extensions: Applescript should be `.applescript`, Swift should be `.swift`, Bash should be `.sh`, etc.
Example: `spotify-next-track.applescript`

### Metadata convention
Expand Down Expand Up @@ -99,6 +106,19 @@ If you still need a dependency, follow these guidelines:
exit 1;
fi
```

### Scripts that require installation of apps

Some Scripts control apps and therefore require them to be installed. Make sure to hint the requirement and add guidance on how to install it at the top of the script:

```
#!/bin/bash

# Note: Plash v2.2.0 required
# Install via Mac App Store: https://apps.apple.com/app/id1494023538

# @raycast.schemaVersion 1
```

### Bash profiles and environmental variables

Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,7 @@ lint:
swiftlint lint

fix:
swiftlint autocorrect --format
swiftlint --fix

open:
open -a /Applications/Xcode.app $(TOOLKIT_PATH)
198 changes: 67 additions & 131 deletions README.md

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions Tools/Toolkit/Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Tools/Toolkit/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ let package = Package(
dependencies: [
.package(
url: "https://github.com/apple/swift-tools-support-core.git",
.upToNextMinor(from: "0.1.11")
.upToNextMinor(from: "0.2.4")
),
.package(
url: "https://github.com/apple/swift-argument-parser.git",
.upToNextMinor(from: "0.3.0")
.upToNextMinor(from: "1.0.0")
),
],
targets: [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import ArgumentParser
import ToolkitLibrary
import TSCBasic

extension ToolkitCommand {
struct GenerateDocumentation: ParsableCommand {
Expand All @@ -23,11 +22,14 @@ extension ToolkitCommand {
var outputJSONFilename: String = "extensions.json"

func run() throws {
let fileSystem = TSCBasic.localFileSystem

do {
let dataManager = try DataManager(
extensionsPath: path,
extensionsFilename: outputJSONFilename
)

let toolkit = Toolkit(
path: fileSystem.absolutePath(for: path)
dataManager: dataManager
)

try toolkit.generateDocumentation(
Expand Down
9 changes: 5 additions & 4 deletions Tools/Toolkit/Sources/Toolkit/SubCommands/Report.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import ArgumentParser
import SwiftUI
import ToolkitLibrary
import TSCBasic

extension ToolkitCommand {
struct Report: ParsableCommand {
Expand All @@ -32,11 +31,13 @@ extension ToolkitCommand {
var noColor: Bool = false

func run() throws {
let fileSystem = TSCBasic.localFileSystem

do {
let dataManager = try DataManager(
extensionsPath: path
)

let toolkit = Toolkit(
path: fileSystem.absolutePath(for: path)
dataManager: dataManager
)

try toolkit.report(
Expand Down
9 changes: 5 additions & 4 deletions Tools/Toolkit/Sources/Toolkit/SubCommands/SetExecutable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import ArgumentParser
import ToolkitLibrary
import TSCBasic

extension ToolkitCommand {
struct SetExecutable: ParsableCommand {
Expand All @@ -17,11 +16,13 @@ extension ToolkitCommand {
var path: String = "./commands"

func run() throws {
let fileSystem = TSCBasic.localFileSystem

do {
let dataManager = try DataManager(
extensionsPath: path
)

let toolkit = Toolkit(
path: fileSystem.absolutePath(for: path)
dataManager: dataManager
)

try toolkit.setScriptCommandsAsExecutable()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ private extension Documentation {
sortedGroups.forEach { group in
contentString += .newLine + group.sectionTitle

contentString += renderMarkdown(for: group, leadingPath: "\(group.path)/")
contentString += renderMarkdown(for: group)
}

let markdown = """
Expand Down Expand Up @@ -106,7 +106,7 @@ private extension Documentation {
return contentData
}

func renderMarkdown(for group: Group, headline: Bool = false, leadingPath: String = .empty) -> String {
func renderMarkdown(for group: Group, headline: Bool = false) -> String {
var contentString = String.empty

if group.scriptCommands.isEmpty == false {
Expand All @@ -117,31 +117,33 @@ private extension Documentation {

contentString += .newLine
contentString += .newLine + "| Icon | Title | Description | Author | Args | Templ | Lang |"
contentString += .newLine + "| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |"
contentString += .newLine + "| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |"

for var scriptCommand in group.scriptCommands.sorted() {
scriptCommand.configure(leadingPath: leadingPath)
for scriptCommand in group.scriptCommands.sorted() {
contentString += scriptCommand.markdownDescription
}
}

if let subGroups = group.subGroups?.sorted() {
for subGroup in subGroups {
contentString += renderMarkdown(for: subGroup, headline: true, leadingPath: "\(leadingPath)\(subGroup.path)/")
contentString += renderMarkdown(
for: subGroup,
headline: true
)
}
}

return contentString
}

func renderBadges() -> String {
let logo = "data:image/png;base64,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"

let style = "for-the-badge"
let labelColor = "202123"
let dataURL = "https:%2F%2Fraw.githubusercontent.com%2Fraycast%2Fscript-commands%2Fmaster%2Fcommands%2Fextensions.json"
let jsonPath = "$.totalScriptCommands"

let badges = """
<div align="center">
<a href="https://github.com/raycast/script-commands">
Expand All @@ -158,7 +160,7 @@ private extension Documentation {
</a>
</div>
"""

return badges
}
}
60 changes: 60 additions & 0 deletions Tools/Toolkit/Sources/ToolkitLibrary/Core/GitShell.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
//
// MIT License
// Copyright (c) 2020-2021 Raycast. All rights reserved.
//

import TSCBasic
import TSCUtility

struct GitError: Error {
let result: ProcessResult
}

struct GitShell {
init() {}

func run(_ args: String..., environment: [String: String] = Git.environment, path: AbsolutePath) throws -> String {
do {
return try execute(
["-C", path.dirname] + args,
environment: environment
)
} catch {
throw error
}
}

private func execute(_ args: [String], environment: [String: String] = Git.environment) throws -> String {
let process = Process(arguments: [Git.tool] + args, environment: environment)
let result: ProcessResult

do {
try process.launch()
result = try process.waitUntilExit()

guard result.exitStatus == .terminated(code: 0) else {
throw GitError(
result: result
)
}

let content = try result.utf8Output().spm_chomp()

return content
} catch let error as GitError {
throw error
} catch {
let result = ProcessResult(
arguments: process.arguments,
environment: process.environment,
exitStatus: .terminated(code: -1),
output: .failure(error),
stderrOutput: .failure(error)
)

throw GitError(
result: result
)
}
}
}
Loading