Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
devcontainer-features
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
eazydevelop-devcontainer-temp
devcontainer-features
Commits
4e303a64
Unverified
Commit
4e303a64
authored
May 11, 2022
by
Samruddhi Khandale
Committed by
GitHub
May 11, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Gradle - Copy contents to install.sh (#8)
copy gradle sh contents
parent
72c8ec81
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
133 additions
and
0 deletions
+133
-0
install.sh
collection/gradle/install.sh
+133
-0
No files found.
collection/gradle/install.sh
View file @
4e303a64
#!/usr/bin/env bash
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
#
# Docs: https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/gradle.md
# Maintainer: The VS Code and Codespaces Teams
#
# Syntax: ./gradle-debian.sh [Gradle version] [SDKMAN_DIR] [non-root user] [Update rc files flag]
GRADLE_VERSION
=
${
1
:-
"latest"
}
export
SDKMAN_DIR
=
${
2
:-
"/usr/local/sdkman"
}
USERNAME
=
${
3
:-
"automatic"
}
UPDATE_RC
=
${
4
:-
"true"
}
set
-e
if
[
"
$(
id
-u
)
"
-ne
0
]
;
then
echo
-e
'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
exit
1
fi
# Ensure that login shells get the correct path if the user updated the PATH using ENV.
rm
-f
/etc/profile.d/00-restore-env.sh
echo
"export PATH=
${
PATH
//
$(
sh
-lc
'echo $PATH'
)
/\
$PATH
}
"
>
/etc/profile.d/00-restore-env.sh
chmod
+x /etc/profile.d/00-restore-env.sh
# Determine the appropriate non-root user
if
[
"
${
USERNAME
}
"
=
"auto"
]
||
[
"
${
USERNAME
}
"
=
"automatic"
]
;
then
USERNAME
=
""
POSSIBLE_USERS
=(
"vscode"
"node"
"codespace"
"
$(
awk
-v
val
=
1000
-F
":"
'$3==val{print $1}'
/etc/passwd
)
"
)
for
CURRENT_USER
in
${
POSSIBLE_USERS
[@]
}
;
do
if
id
-u
${
CURRENT_USER
}
>
/dev/null 2>&1
;
then
USERNAME
=
${
CURRENT_USER
}
break
fi
done
if
[
"
${
USERNAME
}
"
=
""
]
;
then
USERNAME
=
root
fi
elif
[
"
${
USERNAME
}
"
=
"none"
]
||
!
id
-u
${
USERNAME
}
>
/dev/null 2>&1
;
then
USERNAME
=
root
fi
updaterc
()
{
if
[
"
${
UPDATE_RC
}
"
=
"true"
]
;
then
echo
"Updating /etc/bash.bashrc and /etc/zsh/zshrc..."
if
[[
"
$(
cat
/etc/bash.bashrc
)
"
!=
*
"
$1
"
*
]]
;
then
echo
-e
"
$1
"
>>
/etc/bash.bashrc
fi
if
[
-f
"/etc/zsh/zshrc"
]
&&
[[
"
$(
cat
/etc/zsh/zshrc
)
"
!=
*
"
$1
"
*
]]
;
then
echo
-e
"
$1
"
>>
/etc/zsh/zshrc
fi
fi
}
# Function to run apt-get if needed
apt_get_update_if_needed
()
{
if
[
!
-d
"/var/lib/apt/lists"
]
||
[
"
$(
ls
/var/lib/apt/lists/ |
wc
-l
)
"
=
"0"
]
;
then
echo
"Running apt-get update..."
apt-get update
else
echo
"Skipping apt-get update."
fi
}
# Checks if packages are installed and installs them if not
check_packages
()
{
if
!
dpkg
-s
"
$@
"
>
/dev/null 2>&1
;
then
apt_get_update_if_needed
apt-get
-y
install
--no-install-recommends
"
$@
"
fi
}
# Use SDKMAN to install something using a partial version match
sdk_install
()
{
local
install_type
=
$1
local
requested_version
=
$2
local
prefix
=
$3
local
suffix
=
"
${
4
:-
"
\\
s*"
}
"
local
full_version_check
=
${
5
:-
".*-[a-z]+"
}
if
[
"
${
requested_version
}
"
=
"none"
]
;
then return
;
fi
# Blank will install latest stable version
if
[
"
${
requested_version
}
"
=
"lts"
]
||
[
"
${
requested_version
}
"
=
"default"
]
;
then
requested_version
=
""
elif
echo
"
${
requested_version
}
"
|
grep
-oE
"
${
full_version_check
}
"
>
/dev/null 2>&1
;
then
echo
"
${
requested_version
}
"
else
local
regex
=
"
${
prefix
}
\\
K[0-9]+
\\
.[0-9]+
\\
.[0-9]+
${
suffix
}
"
local
version_list
=
"
$(
.
${
SDKMAN_DIR
}
/bin/sdkman-init.sh
&&
sdk list
${
install_type
}
2>&1 |
grep
-oP
"
${
regex
}
"
|
tr
-d
' '
|
sort
-rV
)
"
if
[
"
${
requested_version
}
"
=
"latest"
]
||
[
"
${
requested_version
}
"
=
"current"
]
;
then
requested_version
=
"
$(
echo
"
${
version_list
}
"
|
head
-n
1
)
"
else
set
+e
requested_version
=
"
$(
echo
"
${
version_list
}
"
|
grep
-E
-m
1
"^
${
requested_version
//./\\.
}
([
\\
.
\\
s]|
$)
"
)
"
set
-e
fi
if
[
-z
"
${
requested_version
}
"
]
||
!
echo
"
${
version_list
}
"
|
grep
"^
${
requested_version
//./\\.
}
$"
>
/dev/null 2>&1
;
then
echo
-e
"Version
$2
not found. Available versions:
\n
${
version_list
}
"
>
&2
exit
1
fi
fi
su
${
USERNAME
}
-c
"umask 0002 && .
${
SDKMAN_DIR
}
/bin/sdkman-init.sh && sdk install
${
install_type
}
${
requested_version
}
&& sdk flush archives && sdk flush temp"
}
export
DEBIAN_FRONTEND
=
noninteractive
# Install dependencies
check_packages curl ca-certificates zip unzip
sed
# Install sdkman if not installed
if
[
!
-d
"
${
SDKMAN_DIR
}
"
]
;
then
# Create sdkman group, dir, and set sticky bit
if
!
cat
/etc/group |
grep
-e
"^sdkman:"
>
/dev/null 2>&1
;
then
groupadd
-r
sdkman
fi
usermod
-a
-G
sdkman
${
USERNAME
}
umask
0002
# Install SDKMAN
curl
-sSL
"https://get.sdkman.io?rcupdate=false"
| bash
chown
-R
:sdkman
${
SDKMAN_DIR
}
find
${
SDKMAN_DIR
}
-type
d | xargs
-d
'\n'
chmod
g+s
# Add sourcing of sdkman into bashrc/zshrc files (unless disabled)
updaterc
"export SDKMAN_DIR=
${
SDKMAN_DIR
}
\n
.
\$
{SDKMAN_DIR}/bin/sdkman-init.sh"
fi
# Install gradle
sdk_install gradle
${
GRADLE_VERSION
}
'\s\s'
'\s\s'
'^[0-9]+\.[0-9]+\.[0-9]+$'
updaterc
'[ -z "${GRADLE_USER_HOME}" ] && export GRADLE_USER_HOME=${HOME}/.gradle'
echo
"Done!"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment