Git Product home page Git Product logo

cask.rs's People

Contributors

axetroy avatar iawia002 avatar ultirequiem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cask.rs's Issues

support template renderer in Hook script

[package]
name = "github.com/axetroy/gpm.rs"
bin = "gpm"
versions = ["0.1.12", "0.1.11"]
authors = ["Axetroy <[email protected]>"]
keywords = ["gpm", "git", "project", "manager"]
repository = "https://github.com/axetroy/gpm.rs"
description = """
A command line tool, manage your hundreds of repository, written with Rust.
"""

[context]
foo = "bar"

[hook.unix.sh]
preinstall = """
echo "Welcome install {package.name}"
echo "hello {context.foo}"
"""
postinstall = """
echo "{package.bin}@{version} has been installed."
echo "Try runing with fllowing command {package.bin} --help"
"""

[darwin]
x86_64 = "https://github.com/axetroy/gpm.rs/releases/download/v{version}/gpm_darwin_amd64.tar.gz"

Get version automatically from git ls-remote command

$ git ls-remote -t https://github.com/axetroy/dvm
c70b12ab73babed5e5d65a5bb2bb2dfb7181ca3f	refs/tags/v0.1.0
13c286ef00d0026ee16bfa98bf150e407fb60c2f	refs/tags/v0.1.1
6c38034fbe23e35262dd2062c83718f7c6297054	refs/tags/v0.1.10
a7d3ef07937c6724881b29be08ba0caecb64dfec	refs/tags/v0.1.11
b5234a34b1da347dcfbeb5c21162fc93c78dab88	refs/tags/v0.1.2
ef28817866c2588d12d274a156a10b9e5166c960	refs/tags/v0.1.3
a7647312094512544296ac7de325a40c5f2aee0d	refs/tags/v0.1.4
c2518391ff2b39621862de301316f4ea3f0b2cea	refs/tags/v0.1.5
daae12e737bd975da2ec90b7f492ffee4a3ee5e3	refs/tags/v0.1.6
19fbb2a0bd929e1c2568452db84a431097d1872a	refs/tags/v0.1.7
3fabb4d92df23cfefc692723dac8b512be8a4827	refs/tags/v0.1.8
272d60788edfbd8f2892006d7d690205f5c6e435	refs/tags/v0.1.9
068b9a97149fb8a95a57606c9c1886fa3f98ef49	refs/tags/v1.0.0
0723cc7ed005ba1f3cc1c8eb1ee246139b3c83ce	refs/tags/v1.0.1
14ed54a90af9d384d3d06394ce611c32f4504a50	refs/tags/v1.0.2
90997aa7206832d3e1c4db981fd4f97aeffac313	refs/tags/v1.0.3
35874bb867ba63cf0373ca22032ae535e3dbb868	refs/tags/v1.1.0
25e772a8e51b7dbcee408e8da07b118a28bc9886	refs/tags/v1.1.1
6a678115eda26b97b9546c474e9bad07262deb7c	refs/tags/v1.1.2
89fc250cc9ccda95b8c8cf4a8b6158f550d412c5	refs/tags/v1.1.3
598f08ed08f9d1c317e230dad2b5b9a30ae7a253	refs/tags/v1.2.0
73ddf27526db3ff83ce75138ea562c6fb7fd415b	refs/tags/v1.2.1
8449e79a4ffb021f728a82edc4ae5c9bb61ad01d	refs/tags/v1.2.2
b20dac8798e02b08abcfa0e47909cc137554c953	refs/tags/v1.2.3
a97db540576524ab10b7030a8fd69a4db964cae3	refs/tags/v1.2.4
722c2cc3d43f00c9403c0eebdf8e690609b64c89	refs/tags/v1.2.5
a02c30a373e6444cd51d219311dd5e3383f3ee25	refs/tags/v1.3.0
459ab664bb6463cb4f3995dbab43265425d17103	refs/tags/v1.3.1
816a28d716ab6daaff26a5746667389712cd39b3	refs/tags/v1.3.10
c706294f12327248d8f9d587dc19c9fc0a120a35	refs/tags/v1.3.11
ca02d625e54aac7d979a9fdc8b27b2b5b7d122b3	refs/tags/v1.3.2
29a5ebdf6a28dc60d856fa2456073a8e7a9e46db	refs/tags/v1.3.3
571b178745ab4082974f4823189543c417539e60	refs/tags/v1.3.4
2bee09d61176e5e32542b02ba8a9b73ea4bae876	refs/tags/v1.3.5
3d667e8151ebfb0f1d26ad0bf2fc208b008dcd9c	refs/tags/v1.3.6
3eccf807f4d4b106c09d826733da3b625ca56b37	refs/tags/v1.3.7
2dc72ef3fe5aa871123a515d265a60b93036450c	refs/tags/v1.3.8
051b2166b4e08f8290d01bf0e2205187e2fb7456	refs/tags/v1.3.9

make package.versions optional.

if versions not provide, then it will fetch tags from repo and pick valid version

Support build for powerpc

https://github.com/axetroy/cask.rs/runs/5643148108?check_suite_focus=true

error: failed to run custom build command for `bzip2-sys v0.1.11+1.0.8`

Caused by:
  process didn't exit successfully: `/home/runner/work/cask.rs/cask.rs/target/release/build/bzip2-sys-a6ccc4bdf2d32a24/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=BZIP2_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_powerpc64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_powerpc64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_ALLOW_CROSS
  cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS
  cargo:rerun-if-env-changed=PKG_CONFIG_powerpc64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_powerpc64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_powerpc64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_powerpc64_unknown_linux_gnu
  cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  TARGET = Some("powerpc64-unknown-linux-gnu")
  OPT_LEVEL = Some("z")
  HOST = Some("x86_64-unknown-linux-gnu")
  CC_powerpc64-unknown-linux-gnu = None
  CC_powerpc64_unknown_linux_gnu = None
  TARGET_CC = None
  CC = None
  CROSS_COMPILE = None
  CFLAGS_powerpc64-unknown-linux-gnu = None
  CFLAGS_powerpc64_unknown_linux_gnu = None
  TARGET_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = None
  running: "powerpc-linux-gnu-gcc" "-Os" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "bzip2-1.0.8" "-D_FILE_OFFSET_BITS=64" "-DBZ_NO_STDIO" "-o" "/home/runner/work/cask.rs/cask.rs/target/powerpc64-unknown-linux-gnu/release/build/bzip2-sys-111e0700d8097fca/out/lib/bzip2-1.0.8/blocksort.o" "-c" "bzip2-1.0.8/blocksort.c"

  --- stderr


  error occurred: Failed to find tool. Is `powerpc-linux-gnu-gcc` installed?

remove bzip2-sys and use in pure-rust impl

安装失败

PS C:\Users\Administrator\Desktop> cask install github.com/iawia002/lux
Fetching github.com/iawia002/lux formula...
thread 'main' panicked at 'install package fail!: can not found package github.com/iawia002/lux

Location:
src\formula.rs:215:17', src/main.rs:210:18
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

install script not working

It doesn't work with or without sudo.

output.mp4

Neofetch

                   -`                    z@frame
                  .o+`                   -------
                 `ooo/                   OS: Arch Linux x86_64
                `+oooo:                  Host: HP 250 G7 Notebook PC
               `+oooooo:                 Kernel: 5.16.13-arch1-1
               -+oooooo+:                Uptime: 3 hours, 49 mins
             `/:-:++oooo+:               Packages: 991 (pacman)
            `/++++/+++++++:              Shell: zsh 5.8.1
           `/++++++++++++++:             Resolution: 1366x768, 1600x900
          `/+++ooooooooooooo/`           WM: i3
         ./ooosssso++osssssso+`          Theme: Adwaita [GTK2/3]
        .oossssso-````/ossssss+`         Icons: Adwaita [GTK2/3]
       -osssssso.      :ssssssso.        Terminal: WezTerm
      :osssssss/        osssso+++.       CPU: Intel i5-1035G1 (8) @ 3.600GHz
     /ossssssss/        +ssssooo/-       GPU: Intel Iris Plus Graphics G1
   `/ossssso+/:-        -:/+osssso+-     GPU: NVIDIA GeForce MX110
  `+sso+:-`                 `.-/+oso:    Memory: 3690MiB / 15785MiB
 `++:.                           `-/+/
 .`                                 `/

BREAKING CHANGE: remove {package}-cask.git fallback

cask will priority to requests {package}-cask.git

If that exists. then fetch Cask.toml from it.

if not then fetch from {package}.git

This looks great, but no one seems to want to create one more repository.

So, I want to remove it

detect a repo exist or not

fetch from a not exist repo

$ GIT_TERMINAL_PROMPT=0 git ls-remote -h https://github.com/axetroy/gpm.rsa
fatal: could not read Username for 'https://github.com/axetroy/gpm.rsa': terminal prompts disabled

Running hook in diff platform

Windows:

Cmd or PowerShell

Unix:

sh or shell

Command:

[hook]
preinstall = "echo 'preinstall'"
postinstall = "echo 'postinstall'"

Windows:

# running hook in windows with PowerShell
[hook.windows]
preinstall = "echo 'preinstall'"
postinstall = "echo 'postinstall'"

Unix:

# running hook in windows with sh
[hook.unix]
preinstall = "echo 'preinstall'"
postinstall = "echo 'postinstall'"

Why need a separate repo to store Cask.toml

I see the configuration is only one file, why not just put Cask.toml in the project repo instead of creating a separate one, I understand that Cask.toml should also be part of the project, no need to store it separately.

feat: support build step

[package]
name = "github.com/axetroy/gpm.rs"
bin = "gpm"
versions = ["0.1.12", "0.1.11"]
authors = ["Axetroy <[email protected]>"]
keywords = ["gpm", "git", "project", "manager"]
repository = "https://github.com/axetroy/gpm.rs"
description = """
A command line tool, manage your hundreds of repository, written with Rust.
"""

[build.unix]
sh = """
git clone https://github.com/axetroy/gpm.rs
make
"""
[[build.unix.binary]]
name = "gpm"
path = "./gpm"

[build.windows]
cmd = """
git clone https://github.com/axetroy/gpm.rs
make
"""
[[build.windows.binary]]
name = "gpm"
path = "./gpm.exe"

This formula will clone https://github.com/axetroy/gpm.rs and then run make command.

v1.0 roadmap

  • extrator: drop tar command #21
  • extractor: extract file from sub-folder in tarball #29
  • extractor: support more tarball format
    • .7z it's very rare in the distribution software, so drop it
    • .rar it's very rare in the distribution software, so drop it
    • .tar.bz2
  • Stable Cask.toml
    • Simplify the download url #27
    • Support checksums file
    • Support build step instead of specify download URL
    • Support binary file in sub-folder 7ca7a8a
    • Implement dependencies #28
  • Maybe: drop git command, use pure rust implement Git lib #36
  • Command-line auto-complete
  • Colorful some important information in stdout/stderr d882909
  • Add check for update command #13
  • A documentation website
  • #31
  • Cross compile #33

Simplify the download url

Current:

# Cask.toml
[darwin]
x86_64 = { url = "https://github.com/<username>/<repo>/releases/download/v{version}/darwin_amd64.tar.gz" }

If the CASK.TOML file is just a simple point to binary, we can simplify it.

[darwin]
- x86_64 = { url = "https://github.com/<username>/<repo>/releases/download/v{version}/darwin_amd64.tar.gz" }
+ x86_64 = "https://github.com/<username>/<repo>/releases/download/v{version}/darwin_amd64.tar.gz"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.