Skip to content

🏃SwiftPackage Plugin for executing arbitrary ShellScript.

License

Notifications You must be signed in to change notification settings

perrystreetsoftware/RunScriptPlugin

 
 

Repository files navigation

RunScriptPlugin

SwiftPackage Plugin for executing arbitrary ShellScript.

Feature

  • BuildToolPlugin: RunScriptPlugin
  • CommandPlugin: RunScriptCommandPlugin
  • XcodeBuildToolPlugin: RunScriptPlugin
  • XcodeCommandPlugin: RunScriptCommandPlugin

Usage

Place the file named runscript.yml(or .runscript.yml) in the root of the project. Write the shell script you want to run in this file.

The format is as follows.

prebuild: # prebuild Command
  - name: "Hello"
    script: "echo Hello" # Write scripts directly
  - name: "Show current path"
    script: "pwd"
  - name: "Write file"
    script: "echo Hello >> test.txt"

  - name: "SwiftLint"
    launchPath: "/bin/bash" # bash, zsh, etc. can be specified
    script: "swiftlint lint --fix"

  - name: "SwiftLint" # Another way to write ↑↑
    launchPath: "/usr/local/bin/swiftlint"
    arguments:
      - "lint"
      - "--fix"

  - name: "Update schema"
    file: "update_schema.sh" # Execute .sh file

build: # build Command
   - name: "Hello"
     script: "echo Hello"

command: # Command Plugin
  - name: "Hello from Command"
    script: "echo 'Hello from Command'"

all: # run in `prebuild`, `build`...
   - name: "Hello(all)"
     script: "echo Hello(all)"

Example

  • SwiftLint You can run Lint in SPM without using the SwiftLint plugin.
- name: "SwiftLint"
  script: "swiftlint lint"
  • Build Log
- name: "Build Log"
  script: "echo \"[$(date)] Build >> build.log\""
  • Theos(Orion) install You can install the Tweak from the Build button in SPM.
- name: "Theos make package and install"
  script: "make do"
  • SwiftFormat
- name: "SwiftFormat"
  script: "swiftformat ."
  • SwiftGen
- name: "SwiftGen"
  script: "swiftgen config run"

About

🏃SwiftPackage Plugin for executing arbitrary ShellScript.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 89.5%
  • Shell 10.5%