gbrlsnchs / pilgo

Configuration-based dotfiles manager
MIT License
85 stars 4 forks source link

provide prebuild binary for raspberry 3b+ #8

Open Micha-Btz opened 4 years ago

Micha-Btz commented 4 years ago

Is your feature request related to a problem? Please describe. I want to use pilgo on my raspberry 3B+ and I'm not able to build it ( and is would take much time I think)

Describe the solution you'd like Provide prebuild binarys.

Describe alternatives you've considered A plan how to build it myself. I have never build a go poject before.

~/source/pilgo [master|✔] $ go get -u github.com/gbrlsnchs/pilgo/cmd/plg
error: unknown switch `u'
go get github.com/gbrlsnchs/pilgo/cmd/plg
error: Pfadspezifikation 'get' stimmt mit keinen git-bekannten Dateien überein.
error: Pfadspezifikation 'github.com/gbrlsnchs/pilgo/cmd/plg' stimmt mit keinen git-bekannten Dateien überein.

Thanks a lot.

Micha

gbrlsnchs commented 4 years ago

I think adding ARM to the release process might solve this. Thanks for opening this issue!

Micha-Btz commented 4 years ago

One question about the config, is it possible to irgnore some files? I have created a dotfile repo and it has a readme. I can remove it from the config file, but if I scan the files again it will be back.

Micha-Btz commented 4 years ago

I'm not able to compile it myself:

go: downloading gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
go: downloading github.com/google/renameio v0.1.0
go: downloading github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f
go: downloading golang.org/x/text v0.3.3
# github.com/gbrlsnchs/cli
../pkg/mod/github.com/gbrlsnchs/cli@v0.7.1/cli.go:94:6: undefined: errors.Is
note: module requires Go 1.13# github.com/gbrlsnchs/pilgo/fs/fsutil
fs/fsutil/os_driver.go:22:31: syntax error: unexpected o755, expecting comma or )
note: module requires Go 1.13# github.com/gbrlsnchs/pilgo/linker
linker/linker.go:72:8: undefined: errors.Is
linker/linker.go:74:8: undefined: errors.Is
linker/linker.go:76:8: undefined: errors.Is
linker/linker.go:78:8: undefined: errors.Is
note: module requires Go 1.13
gbrlsnchs commented 4 years ago

You must use Go 1.13 onwards to compile it from source. 😺

Sorry, I might soon have some free time to add the proper architecture to the releases.

gbrlsnchs commented 4 years ago

One question about the config, is it possible to irgnore some files? I have created a dotfile repo and it has a readme. I can remove it from the config file, but if I scan the files again it will be back.

Take a look at plg scan -h, you can use -exclude for that purpose. 😸

Micha-Btz commented 4 years ago

Hey, after playing a bit around, I have managed to cross compile it on my debian host amd64.

Seems to work fine.

dietpi on DietPi ~/media/dotfiles on  master 
❯ ./binary/arm/pilgo -config=dietpi.yml show
.
├── bash                  
│   ├── bash_aliases      <- /home/dietpi/.bash_aliases
│   ├── bash_aliases_root <- /home/dietpi/.bash_aliases_root
│   ├── bash_colors       <- /home/dietpi/.bash_colors
│   ├── bash_functions    <- /home/dietpi/.bash_functions
│   ├── bash_logout       <- /home/dietpi/.bash_logout
│   ├── bash_profile      <- /home/dietpi/.bash_profile
│   ├── bashrc_dietpi     <- /home/dietpi/.bashrc
│   └── dircolorsrc       <- /home/dietpi/.dircolorsrc
├── gitconfig             <- /home/dietpi/.gitconfig
├── inputrc               <- /home/dietpi/.inputrc
├── netrc                 <- /home/dietpi/.netrc
├── tmux                  
│   ├── tmux.conf         <- /home/dietpi/.tmux.conf
│   └── tmux.conf.local   <- /home/dietpi/.tmux.conf.local
└── vimrc                 <- /home/dietpi/.vimrc
 dietpi on DietPi ~/media/dotfiles on  master 
❯ ./binary/arm/pilgo version
Pilgo unknown version

The only difference I found so far is the version string. Arm doesn't show anything while on my debian it is shown right.

pilgo version
Pilgo 0.5.0

The exclude flag on the cli should do it, but I would prefer an config option, like:

❯ cat pilgo.yml 
targets:
- README.md
- abcde.conf
options:
  abcde.conf:
    link: .abcde.conf
    useHome: true
  README.md:
    link: exclude

This would have the advantage that I don't have to exclude the file always while scanning and we can concentrate on really new files.

Thanks for the nice little tool.

Micha

gbrlsnchs commented 4 years ago

The only difference I found so far is the version string. Arm doesn't show anything while on my debian it is shown right.

You need to set internal.version compile-time via ldflags:

$ go build -o plg -ldflags "-X github.com/gbrlsnchs/pilgo/cmd/internal.version=v5.0.0" ./cmd/plg

The exclude flag on the cli should do it, but I would prefer an config option

I'm thinking that maybe you could benefit from something like a .pilgoignore file. Currently I think it's a good idea, since using exclusion filters is a bit tiresome.

Micha-Btz commented 4 years ago

The way it goes is your decision, for me a .pilgoingore file would be totally fine.