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 -> currently implemented with `depends_HANDLER` files
### Planned ### Planned
- detection mechanism for handlers and features - detection mechanism for handler features
(e.g. batch-install support) (e.g. batch-install support)
- Ability to use multiple repos, including remote ones - Ability to use multiple repos, including remote ones
- Cope with missing versions in repositories of older OS versions - 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 - helper/hook for adding packages to groups upon install
(at least for `pacman`) (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 - Somehow installing doom emacs has a dependency tree resolution issue
- Debug corner cases: Not working on Windows when run as Admin - Debug corner cases: Not working on Windows when run as Admin
- Handler preparation - update repos and cache last update time in /tmp - Handler preparation - update repos and cache last update time in /tmp
- Handler for downloaded scripts (e.g. passff-host, funkwhale) - Handler for downloaded scripts (e.g. passff-host, funkwhale)
- Enable services after install, e.g. syncthing and docker - Enable services after install, e.g. syncthing and docker
#### Windows Flow #### Windows Offline Flow
- Install choco and git offline - Install choco and git offline
- Run in git bash - Run in git bash
- TODO: Use choco-offline sources - TODO: Use choco-offline sources
### Flow ### Flow v2
This is a revamped concept This is a revamped concept
that would ease setting up new devices with different systems that would ease setting up new devices with different systems
by adding a mapping of functions to applications 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 such as `yay` for arch and aur
+ how about `providers/<handler>/<provider>[_<ext>]`? + how about `providers/<handler>/<provider>[_<ext>]`?
Same duplication issue, now spread out... 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, - Use system subdirectories for handlers and groups,
which are used by default when system is detected 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 - portable: base but with packages for installations on removable media
### Handlers ## Related Projects
...
## Notable Projects
- another universal package manager, - another universal package manager,
but without affecting the system: but without affecting the system:

1
depends_brew Normal file
View file

@ -0,0 +1 @@
docker

View file

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

View file

@ -4,3 +4,4 @@ android-fs
android-tools android-tools
aafm-git aafm-git
libguestfs 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))" -maxdepth 1 -name "handlers.available*" 2>/dev/null | head -1))"
handlersfile="$dir_home/handlers.available" handlersfile="$dir_home/handlers.available"
dir_packages="$dir_home/packages" dir_packages="$dir_home/packages"
which tac || alias tac="tail -r"
highlight() { echo $2 "$1" >&2; } highlight() { ${2:-echo} "$1" >&2; }
destress() { echo $2 "$1" >&2; } destress() { ${2:-echo} "$1" >&2; }
listhandlers() { listhandlers() {
( (
@ -98,7 +99,7 @@ installpkg() {
pkg_entry="$(find "$handler" -name "install") $1" pkg_entry="$(find "$handler" -name "install") $1"
fi fi
else else
destress " running unhandled" -n destress " running unhandled" printf
fi fi
destress " $pkg_entry" destress " $pkg_entry"
$pkg_entry $pkg_entry
@ -193,9 +194,9 @@ if ! test -f "$handlersfile"
then then
copy="$(case "$(uname)" in copy="$(case "$(uname)" in
(MINGW64*) echo "$dir_home/handlers.available.windows";; (MINGW64*) echo "$dir_home/handlers.available.windows";;
(DARWIN) echo "$dir_home/handlers.available.mac";; (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'; } | (*) os="$({ cat /etc/os-release | grep -E '^ID(_LIKE)?=' || lsb_release -s -i; })" &&
sed 's/^/handlers.available./' | paste -d' ' -s)" 2>/dev/null | head -1;; 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)" && esac)" &&
test -n "$copy" && test -n "$copy" &&
echo "Bootstrapping available handlers from $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 #!/bin/sh
emacsd="${XDG_CONFIG_HOME:-$HOME/.config}/emacs" emacsd="${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
git clone https://github.com/hlissner/doom-emacs "$emacsd" 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 #!/bin/sh -ex
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 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