Skip to content

Commit f19dfd5

Browse files
authored
feat: add support for 'asdf' sdk manager (#240)
1 parent acb7e30 commit f19dfd5

3 files changed

Lines changed: 40 additions & 0 deletions

File tree

scripts/package/dump

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ source "$DOTLY_PATH/scripts/package/src/dump.sh"
1111
##? * Python
1212
##? * Volta.sh or NPM
1313
##? * Winget
14+
##? * asdf
1415
##?
1516
##? Usage:
1617
##? dump
@@ -34,4 +35,6 @@ fi
3435

3536
platform::command_exists winget.exe && package::winget_dump && output::answer "Windows apps dumped on $WINGET_DUMP_FILE_PATH"
3637

38+
platform::command_exists asdf && package::asdf_dump && output::answer "asdf SDKs dumped on $ASDF_DUMP_FILE_PATH"
39+
3740
output::write 'All packages dumped'

scripts/package/import

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,6 @@ fi
3232

3333
platform::command_exists winget.exe && output::header "Importing Winget apps from $WINGET_DUMP_FILE_PATH" && package::winget_import
3434

35+
platform::command_exists asdf && output::header "Importing Asdf apps from $ASDF_DUMP_FILE_PATH" && package::asdf_import
36+
3537
output::solution 'All packages imported'

scripts/package/src/dump.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ PYTHON_DUMP_FILE_PATH="$DOTFILES_PATH/langs/python/requirements.txt"
1414
SNAP_DUMP_FILE_PATH="$DOTFILES_PATH/os/linux/snap/packages.txt"
1515
VOLTA_DUMP_FILE_PATH="$DOTFILES_PATH/langs/js/volta_dependencies.txt"
1616
WINGET_DUMP_FILE_PATH="$DOTFILES_PATH/os/windows/winget.output"
17+
ASDF_DUMP_FILE_PATH="$DOTFILES_PATH/langs/sdk/asdf.txt"
1718

1819
package::brew_dump() {
1920
if platform::is_macos; then
@@ -124,3 +125,37 @@ package::pacman_import() {
124125
yay -s "$(cat $PACMAN_DUMP_FILE_PATH)"
125126
fi
126127
}
128+
129+
package::asdf_dump() {
130+
mkdir -p "$DOTFILES_PATH/langs/sdk"
131+
echo -n >$ASDF_DUMP_FILE_PATH
132+
133+
for plug in $(asdf plugin-list); do
134+
for ver in $(asdf list $plug | awk '{print $1; }'); do
135+
if [ -z "$ver" ]; then
136+
echo "No versions installed for $plug"
137+
else
138+
echo "$plug $ver" >>$ASDF_DUMP_FILE_PATH
139+
fi
140+
done
141+
done
142+
}
143+
144+
package::asdf_import() {
145+
if [ -f "$ASDF_DUMP_FILE_PATH" ]; then
146+
for plug in $(cat $ASDF_DUMP_FILE_PATH | awk '{ print $1 }' | uniq); do
147+
echo "asdf plugin-add $plug"
148+
done
149+
while read -r line; do
150+
plug=$(echo $line | awk '{print $1; }')
151+
ver=$(echo $line | awk '{print $2; }')
152+
if [[ $ver == \** ]]; then
153+
ver=${ver:1}
154+
echo "asdf install $plug $ver"
155+
echo "asdf global $plug $ver"
156+
else
157+
echo "asdf install $plug $ver"
158+
fi
159+
done <$ASDF_DUMP_FILE_PATH
160+
fi
161+
}

0 commit comments

Comments
 (0)