Compare commits

...

4 commits

Author SHA1 Message Date
MoturiFranklin
58d4643523 packages: add some homebrew packages 2025-06-23 18:13:54 +02:00
xeruf
64aa9c49d0 packages: rustup 2025-01-13 10:49:05 +01:00
xeruf
75ee9901ce docs: homebrew todo 2024-07-13 20:43:38 +03:00
MoturiFranklin
70273256e5 feat: implement homebrew as handler for mac 2024-07-13 20:38:59 +03:00
18 changed files with 31 additions and 19 deletions

View file

@ -163,7 +163,7 @@ and ideas that need to be fleshed out.
-> currently implemented with `depends_HANDLER` files
### Planned
- detection mechanism for handlers and features
- detection mechanism for handler features
(e.g. batch-install support)
- Ability to use multiple repos, including remote ones
- Cope with missing versions in repositories of older OS versions
@ -171,21 +171,22 @@ and ideas that need to be fleshed out.
- helper/hook for adding packages to groups upon install
(at least for `pacman`)
- Log Installs for reuse
- log installs for reuse
### TODOs
### Issues
- Homebrew for Mac - partially implemented but resolution not working (e.g. docker automatically installing brew first)
- Somehow installing doom emacs has a dependency tree resolution issue
- Debug corner cases: Not working on Windows when run as Admin
- Handler preparation - update repos and cache last update time in /tmp
- Handler for downloaded scripts (e.g. passff-host, funkwhale)
- Enable services after install, e.g. syncthing and docker
#### Windows Flow
#### Windows Offline Flow
- Install choco and git offline
- Run in git bash
- TODO: Use choco-offline sources
### Flow
### Flow v2
This is a revamped concept
that would ease setting up new devices with different systems
by adding a mapping of functions to applications
@ -222,7 +223,7 @@ but the details still need to be fleshed out.
such as `yay` for arch and aur
+ how about `providers/<handler>/<provider>[_<ext>]`?
Same duplication issue, now spread out...
+ underscore extension might be superfluous through that, since `ext` was somewhat a proxy for a proper `provider` configuraion
+ underscore extension might be superfluous through that, since `ext` was somewhat a proxy for a proper `provider` configuration
- Use system subdirectories for handlers and groups,
which are used by default when system is detected
@ -245,11 +246,7 @@ but the details still need to be fleshed out.
- portable: base but with packages for installations on removable media
### Handlers
...
## Notable Projects
## Related Projects
- another universal package manager,
but without affecting the system:

1
depends_brew Normal file
View file

@ -0,0 +1 @@
docker

View file

@ -1,2 +1,4 @@
auto-cpufreq
tlp
fw-ectool-git
inputmodule-control

View file

@ -4,3 +4,4 @@ android-fs
android-tools
aafm-git
libguestfs
ifuse

View file

@ -15,9 +15,10 @@ export dir_home="$(dirname $(find "$INSTALEE_HOME" \
-maxdepth 1 -name "handlers.available*" 2>/dev/null | head -1))"
handlersfile="$dir_home/handlers.available"
dir_packages="$dir_home/packages"
which tac || alias tac="tail -r"
highlight() { echo $2 "$1" >&2; }
destress() { echo $2 "$1" >&2; }
highlight() { ${2:-echo} "$1" >&2; }
destress() { ${2:-echo} "$1" >&2; }
listhandlers() {
(
@ -98,7 +99,7 @@ installpkg() {
pkg_entry="$(find "$handler" -name "install") $1"
fi
else
destress " running unhandled" -n
destress " running unhandled" printf
fi
destress " $pkg_entry"
$pkg_entry
@ -193,9 +194,9 @@ if ! test -f "$handlersfile"
then
copy="$(case "$(uname)" in
(MINGW64*) echo "$dir_home/handlers.available.windows";;
(DARWIN) echo "$dir_home/handlers.available.mac";;
(*) ls "$dir_home/$({ cat /etc/os-release | grep -E '^ID(_LIKE)?=' | cut -d= -f2 | grep . || lsb_release -s -i | tr 'A-Z' 'a-z'; } |
sed 's/^/handlers.available./' | paste -d' ' -s)" 2>/dev/null | head -1;;
(Darwin) echo "$dir_home/handlers.available.mac";;
(*) os="$({ cat /etc/os-release | grep -E '^ID(_LIKE)?=' || lsb_release -s -i; })" &&
ls "$dir_home/$(echo "$os" | tr 'A-Z' 'a-z' | cut -d= -f2 | sed 's/^/handlers.available./' | paste -d' ' -s)" 2>/dev/null | head -1;;
esac)" &&
test -n "$copy" &&
echo "Bootstrapping available handlers from $copy" &&

2
packages/brew/bash Executable file
View file

@ -0,0 +1,2 @@
#!/bin/bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

View file

1
packages/docker/brew Normal file
View file

@ -0,0 +1 @@
docker calima

View file

@ -1,4 +1,4 @@
#!/bin/sh
emacsd="${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
git clone https://github.com/hlissner/doom-emacs "$emacsd"
unbuffer "$emacsd/bin/doom" --force install --env --no-hooks --install | head -19
$(command unbuffer) "$emacsd/bin/doom" --force install --env --no-hooks --install | head -19

1
packages/emacs/brew Normal file
View file

@ -0,0 +1 @@

1
packages/fd/brew Normal file
View file

@ -0,0 +1 @@

1
packages/hunspell/brew Normal file
View file

@ -0,0 +1 @@

1
packages/ripgrep/brew Normal file
View file

@ -0,0 +1 @@

0
packages/rustup/arch Normal file
View file

3
packages/rustup/bash Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
# https://www.rust-lang.org/tools/install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

View file

@ -1,3 +1,3 @@
#!/bin/sh -ex
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable
curl -sSL https://get.rvm.io | bash -s stable