#path #scripting-language #dynamic #projects #quick #feedback #generate

bin+lib shelly

生成具有依赖项的动态脚本语言项目,以便快速 CLI 反馈循环

5 个不稳定版本

0.3.0 2021年12月7日
0.2.2 2020年10月17日
0.2.1 2020年10月17日
0.2.0 2020年10月17日
0.1.0 2020年10月16日

#546 in 编程语言

MIT/Apache

29KB
697

Shelly

一个生成/复制项目模板的工具,您可以将项目“shell”到其中。

USAGE:
    shelly [FLAGS] [OPTIONS] [path]

ARGS:
    <path>    Path to create project [default: .]

FLAGS:
    -h, --help        Prints help information
        --no-cache
    -s, --shell       Drop into REPL after building
    -V, --version     Prints version information

OPTIONS:
    -c, --config <config>
    -t, --target <target>    A target is a language and dependencies pairing

模板

有一些默认模板,还可以选择将 git 仓库设置为模板。

语言

nodeelixir 支持内部目标,您可以在其中指定语言、名称和依赖项。

否则,可以提供 GitHub 仓库,它将使用提供的命令克隆和构建。希望这些示例是说明性的。

默认模板生成在 ~/.config/shelly/shelly.yml

build_dir: /tmp/shelly
cache: true
default_target: elixir
targets:
  phoenix_react:
    Repo:
      build_args:
        - build
      build_command: docker-compose
      path: "https://github.com/rawhat/phoenix-react.git"
      shell:
        command: docker-compose
        args:
          - up
  node:
    Internal:
      language: node
      name: node
      deps:
        - name: axios
          version: 0.20.0
        - name: cheerio
          version: 1.0.0-rc.3
        - name: papaparse
          version: 5.3.0
  react:
    Repo:
      build_args:
        - install
      build_command: npm
      path: "https://github.com/rawhat/serve-react.git"
      shell:
        command: "./serve.sh"
        args: []
  rust:
    Internal:
      language: rust
      name: rust
      deps:
        - name: clap
          version: "1.0"
        - name: tokio
          version: "0.9"
  elixir:
    Internal:
      language: elixir
      name: elixir
      deps:
        - name: httpoison
          version: "1.7"
        - name: jason
          version: "1.2"
        - name: nimble_csv
          version: "1.1"
        - name: floki
          version: "0.29"

依赖项

~3–12MB
~129K SLoC