Skip to content

p-x9/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"