generated from Templates/Baseline
Compare commits
25 Commits
2c590a91bc
...
v1.0.0-rc1
Author | SHA1 | Date | |
---|---|---|---|
3791bce7a8 | |||
a1a4c2b1e9 | |||
e700e7b477 | |||
26754e83f9 | |||
7fe6062a8f | |||
d18eac86bb | |||
1ed6a4a7d5 | |||
78c91dceba | |||
c55408b4b3 | |||
c6e65b7782 | |||
33f8bc90c0 | |||
8c9c9e5138 | |||
5922aabe3d | |||
a25b231654 | |||
330f852e56 | |||
dba751f036 | |||
88612ad71c | |||
6d2e8fb05f | |||
859eb479c5 | |||
e648c50c62 | |||
903478f746 | |||
7a1b293188 | |||
88d228ad07 | |||
40684f5a3b | |||
6931ca6baf |
@ -6,9 +6,11 @@
|
|||||||
|
|
||||||
> :bulb: Select your test plan for the code changes.
|
> :bulb: Select your test plan for the code changes.
|
||||||
|
|
||||||
- [x] CI pipeline tests
|
| Choice | Test Method |
|
||||||
- [ ] Custom test
|
| :----: | :----------- |
|
||||||
- [ ] No test plan
|
| ✅ | CI pipeline tests |
|
||||||
|
| | Custom test |
|
||||||
|
| | No test plan |
|
||||||
|
|
||||||
##### Details / Justification
|
##### Details / Justification
|
||||||
|
|
||||||
|
1
.vscode/dictionaries/project-words.txt
vendored
1
.vscode/dictionaries/project-words.txt
vendored
@ -22,3 +22,4 @@ srv
|
|||||||
tbd
|
tbd
|
||||||
traefik
|
traefik
|
||||||
tuanpham
|
tuanpham
|
||||||
|
volta
|
||||||
|
@ -23,14 +23,20 @@ pipeline:
|
|||||||
buildTag:
|
buildTag:
|
||||||
image: woodpeckerci/plugin-docker-buildx
|
image: woodpeckerci/plugin-docker-buildx
|
||||||
settings:
|
settings:
|
||||||
registry: gitea.ocram85.com
|
repo: gitea.ocram85.com/codeserver/arkanum,ocram85/arkanum
|
||||||
repo: gitea.ocram85.com/codeserver/arkanum
|
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
auto_tag: true
|
auto_tag: true
|
||||||
username:
|
logins:
|
||||||
from_secret: gitea_user
|
- registry: https://gitea.ocram85.com
|
||||||
password:
|
username:
|
||||||
from_secret: gitea_passwd
|
from_secret: gitea_user
|
||||||
|
password:
|
||||||
|
from_secret: gitea_passwd
|
||||||
|
- registry: https://index.docker.io/v1/
|
||||||
|
username:
|
||||||
|
from_secret: docker_user
|
||||||
|
password:
|
||||||
|
from_secret: docker_passwd
|
||||||
build_args:
|
build_args:
|
||||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||||
- TAG=${CI_COMMIT_TAG}
|
- TAG=${CI_COMMIT_TAG}
|
||||||
|
@ -24,7 +24,7 @@ pipeline:
|
|||||||
triggerPortainer:
|
triggerPortainer:
|
||||||
image: ocram85/portainer-serviceupdate
|
image: ocram85/portainer-serviceupdate
|
||||||
settings:
|
settings:
|
||||||
#VERBOSE: true
|
VERBOSE: true
|
||||||
URI: "https://portainer.ocram85.com"
|
URI: "https://portainer.ocram85.com"
|
||||||
TOKEN:
|
TOKEN:
|
||||||
from_secret: NEXT_TOKEN
|
from_secret: NEXT_TOKEN
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
pipeline:
|
|
||||||
DockerBaseImage:
|
|
||||||
image: renovate/renovate:34.77-slim
|
|
||||||
commands:
|
|
||||||
- "renovate"
|
|
||||||
secrets:
|
|
||||||
- RENOVATE_TOKEN
|
|
||||||
environment:
|
|
||||||
#LOG_LEVEL: debug
|
|
||||||
RENOVATE_PLATFORM: "gitea"
|
|
||||||
RENOVATE_ENDPOINT: "https://gitea.ocram85.com"
|
|
||||||
RENOVATE_REPOSITORIES: "${CI_REPO}"
|
|
||||||
RENOVATE_LABELS: "renovate"
|
|
||||||
#RENOVATE_DRY_RUN: "full"
|
|
||||||
RENOVATE_TOKEN: "${RENOVATE_TOKEN}"
|
|
||||||
RENOVATE_GITHUB_TOKEN_WARN: "false"
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
branch:
|
|
||||||
- master
|
|
||||||
- updDeps
|
|
38
CHANGELOG.md
38
CHANGELOG.md
@ -35,7 +35,7 @@
|
|||||||
* Add woodpecker manager in renovate-bot (#14)
|
* Add woodpecker manager in renovate-bot (#14)
|
||||||
* fixes logo file path (#8)
|
* fixes logo file path (#8)
|
||||||
* Adds basic container setup with pipeline (#1)
|
* Adds basic container setup with pipeline (#1)
|
||||||
|
|
||||||
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
|
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
|
||||||
|
|
||||||
* 📦 BUILD
|
* 📦 BUILD
|
||||||
@ -45,3 +45,39 @@
|
|||||||
* fix renovate config keys (#34)
|
* fix renovate config keys (#34)
|
||||||
* Update renovate/renovate Docker tag to v34.62 (#33)
|
* Update renovate/renovate Docker tag to v34.62 (#33)
|
||||||
* Update renovate/renovate Docker tag to v34.57 (#32)
|
* Update renovate/renovate Docker tag to v34.57 (#32)
|
||||||
|
|
||||||
|
## [v0.2.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.2.0) - 2023-01-04
|
||||||
|
|
||||||
|
* 🐛 BUGFIXES
|
||||||
|
* fix typo (#39)
|
||||||
|
* 🛠️ ENHANCEMENTS
|
||||||
|
* Add proxy support (#38)
|
||||||
|
* 🤖 DEPENDENCIES
|
||||||
|
* Update renovate/renovate Docker tag to v34.82 (#37)
|
||||||
|
* Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
|
||||||
|
|
||||||
|
## [v0.3.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.0) - 2023-03-30
|
||||||
|
|
||||||
|
* 🛠️ ENHANCEMENTS
|
||||||
|
* Add tea cli in gitea block (#41)
|
||||||
|
* 📦 BUILD
|
||||||
|
* Remove repo defined renovate (#44)
|
||||||
|
* 🤖 DEPENDENCIES
|
||||||
|
* Update quay.io/linuxserver.io/code-server Docker tag to v4.11.0 (#45)
|
||||||
|
* Update quay.io/linuxserver.io/code-server Docker tag to v4.10.0 (#43)
|
||||||
|
|
||||||
|
## [v0.3.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.1) - 2023-07-04
|
||||||
|
|
||||||
|
* 🤖 DEPENDENCIES
|
||||||
|
* Update quay.io/linuxserver.io/code-server Docker tag to v4.14.1 (#47)
|
||||||
|
|
||||||
|
## [v0.4.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.4.0) - 2023-07-19
|
||||||
|
|
||||||
|
* 🐛 BUGFIXES
|
||||||
|
* Fix shellcheck issues (#55)
|
||||||
|
* Disable starship python module (#52)
|
||||||
|
* ✨ FEATURES
|
||||||
|
* Add docker-cli (#54)
|
||||||
|
* Adds Volta as default version manager for NodeJs (#53)
|
||||||
|
* 🛠️ ENHANCEMENTS
|
||||||
|
* Bump go version (#49)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM quay.io/linuxserver.io/code-server:4.8.3
|
FROM quay.io/linuxserver.io/code-server:4.16.1
|
||||||
|
|
||||||
#LABEL build_version=""
|
#LABEL build_version=""
|
||||||
LABEL maintainer="OCram85"
|
LABEL maintainer="OCram85"
|
||||||
@ -40,7 +40,7 @@ RUN \
|
|||||||
chmod +x /etc/bash_completion.d/arkanum-completion && \
|
chmod +x /etc/bash_completion.d/arkanum-completion && \
|
||||||
echo 'source /etc/bash_completion.d/arkanum-completion' >> /etc/bash.bashrc && \
|
echo 'source /etc/bash_completion.d/arkanum-completion' >> /etc/bash.bashrc && \
|
||||||
touch "$HOME/enable_motd" && \
|
touch "$HOME/enable_motd" && \
|
||||||
echo "if [[ ! -e \"$HOME/data/User/settings.json\" ]]; then arkanum --install-extensions && arkanum --reset-codesetting && \
|
echo "if [[ ! -e \"$HOME/data/User/settings.json\" ]]; then arkanum config install-extensions && arkanum config reset-codesettings && \
|
||||||
echo -e \"🧙 \\e[32markanum\\e[0m: Please reload Arkanum to finalize the setup...\" && read foo; fi" >> /etc/bash.bashrc && \
|
echo -e \"🧙 \\e[32markanum\\e[0m: Please reload Arkanum to finalize the setup...\" && read foo; fi" >> /etc/bash.bashrc && \
|
||||||
echo "if [[ -e \"$HOME/enable_motd\" ]]; then echo -e \"Use 🧙 \\e[32m'arkanum'\\e[0m to install missing runtimes like dotnet or NodeJs.\"; fi" >> /etc/bash.bashrc
|
echo "if [[ -e \"$HOME/enable_motd\" ]]; then echo -e \"Use 🧙 \\e[32m'arkanum'\\e[0m to install missing runtimes like dotnet or NodeJs.\"; fi" >> /etc/bash.bashrc
|
||||||
|
|
||||||
|
61
README.md
61
README.md
@ -34,7 +34,9 @@ You can download the image from the gitea embedded container registry: `gitea.oc
|
|||||||
|
|
||||||
- `latest` - Is based on the lasted master branch commit.
|
- `latest` - Is based on the lasted master branch commit.
|
||||||
- `next` - Is a test build based on the pull request
|
- `next` - Is a test build based on the pull request
|
||||||
- `1`, `0.1`, `0.1.0` - tag based version. See [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for available tags.
|
- `1`, `0.1`, `0.1.0` - tag based version.
|
||||||
|
|
||||||
|
> **💡 NOTE: See the [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for latest version and all other available tags.**
|
||||||
|
|
||||||
### 2.a Run as Docker Swarm Stack
|
### 2.a Run as Docker Swarm Stack
|
||||||
|
|
||||||
@ -53,7 +55,7 @@ Therefore you need
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
services:
|
services:
|
||||||
arkanum:
|
arkanum:
|
||||||
image: gitea.ocram85.com/codeserver/arkanum:0.0.1
|
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||||
environment:
|
environment:
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
@ -75,10 +77,11 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
# store workspace and use config in volume.
|
# store workspace and use config in volume.
|
||||||
- codedata:/config
|
- codedata:/config
|
||||||
|
# mount docker socket to manage host docker
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
# no need to expose the port. traefik acts as reverse proxy and handles the https access.
|
# no need to expose the port. traefik acts as reverse proxy and handles the https access.
|
||||||
#ports:
|
#ports:
|
||||||
# - 8443:8443
|
# - 8443:8443
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
networks:
|
||||||
- arkanum-sphere
|
- arkanum-sphere
|
||||||
- traefik-public
|
- traefik-public
|
||||||
@ -104,7 +107,7 @@ See their [docs](https://github.com/linuxserver/docker-code-server#parameters) a
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
services:
|
services:
|
||||||
arkanum:
|
arkanum:
|
||||||
image: gitea.ocram85.com/codeserver/arkanum:0.0.1
|
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||||
container_name: code-server
|
container_name: code-server
|
||||||
environment:
|
environment:
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
@ -167,24 +170,39 @@ Added `arkanum` to help installing common runtimes in container.
|
|||||||
This helps reducing the image size.
|
This helps reducing the image size.
|
||||||
|
|
||||||
```
|
```
|
||||||
🧙 arkanum ✨🌌☄️💥 is used to install optional runtimes for developing in a
|
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a
|
||||||
code-server container environment.
|
code-server container environment.
|
||||||
|
|
||||||
Syntax: arkanum RUNTIME ...
|
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
|
||||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
COMMAND
|
||||||
dotnet Installs latest LTS dotnet core sdk + runtime.
|
config The config command is used to modify arkanum itself.
|
||||||
gitea Installs gitea tools like the changelog generator.
|
git The git command is a wrapper for git helpers.
|
||||||
golang Installs golang 1.19.3.
|
install The install command is used to add different tools
|
||||||
nodejs Installs latest NodeJs LTS version.
|
help Shows this help text.
|
||||||
powershell Installs latest PowerShell LTS version.
|
|
||||||
--disable-motd Disables hint in new bash terminal.
|
|
||||||
--install-extensions Installs predefined recommended extensions.
|
|
||||||
--reset-codesetting Sets VS Code user setting with basic (Fira Code).
|
|
||||||
-h Prints this help message.
|
|
||||||
|
|
||||||
Example 1: arkanum dotnet
|
OPTION
|
||||||
Example 2: arkanum golang nodejs
|
config:
|
||||||
Example 3: arkanum --disable-motd
|
disable-motd Disables hint in new bash terminal.
|
||||||
|
install extensions Installs predefined recommended extensions.
|
||||||
|
reset-codesettings Sets VS Code user setting with basic (Fira Code).
|
||||||
|
|
||||||
|
git:
|
||||||
|
setup Takes two arguments to setup the git client:
|
||||||
|
1) Username
|
||||||
|
2) Email address
|
||||||
|
|
||||||
|
install:
|
||||||
|
docker-cli Installs the latest docker-cli.
|
||||||
|
dotnet Installs latest LTS dotnet core sdk + runtime.
|
||||||
|
gitea Installs gitea tools like the changelog generator.
|
||||||
|
golang Installs golang 1.19.3.
|
||||||
|
nodejs Installs latest NodeJs LTS version using Volta.
|
||||||
|
volta Installs Volta as NodeJS version manager.
|
||||||
|
powershell Installs latest PowerShell LTS version.
|
||||||
|
|
||||||
|
Example 1: arkanum git setup "my-name" "my-email"
|
||||||
|
Example 2: arkanum install golang
|
||||||
|
Example 3: arkanum config disable-motd
|
||||||
```
|
```
|
||||||
### 📝 Fira Code (NerdFont patched)
|
### 📝 Fira Code (NerdFont patched)
|
||||||
|
|
||||||
@ -216,6 +234,11 @@ Additionally we install these extensions on container startup:
|
|||||||
|
|
||||||
## 💣 Known Issues
|
## 💣 Known Issues
|
||||||
|
|
||||||
|
### Starship.rs
|
||||||
|
|
||||||
|
Starship detects workspaces as active python projects. It always appends the prompt
|
||||||
|
fragment `via 🐍 (lsiopy)`. For now I disabled the python module in starship.
|
||||||
|
|
||||||
### 🐛 Default extensions installation timing error
|
### 🐛 Default extensions installation timing error
|
||||||
|
|
||||||
If the automatic installation of the default extension fails, you can always retry he installation with the
|
If the automatic installation of the default extension fails, you can always retry he installation with the
|
||||||
|
219
arkanum
219
arkanum
@ -4,24 +4,39 @@ set -e
|
|||||||
|
|
||||||
function showHelp() {
|
function showHelp() {
|
||||||
cat << HELP
|
cat << HELP
|
||||||
🧙 arkanum ✨🌌☄️💥 is used to install optional runtimes for developing in a
|
🧙 arkanum ✨🌌☄️💥 is used to install optional tools for developing in a
|
||||||
code-server container environment.
|
code-server container environment.
|
||||||
|
|
||||||
Syntax: arkanum RUNTIME ...
|
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
|
||||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
COMMAND
|
||||||
dotnet Installs latest LTS dotnet core sdk + runtime.
|
config The config command is used to modify arkanum itself.
|
||||||
gitea Installs gitea tools like the changelog generator.
|
git The git command is a wrapper for git helpers.
|
||||||
golang Installs golang 1.19.3.
|
install The install command is used to add different tools
|
||||||
nodejs Installs latest NodeJs LTS version.
|
help Shows this help text.
|
||||||
powershell Installs latest PowerShell LTS version.
|
|
||||||
--disable-motd Disables hint in new bash terminal.
|
|
||||||
--install-extensions Installs predefined recommended extensions.
|
|
||||||
--reset-codesetting Sets VS Code user setting with basic (Fira Code).
|
|
||||||
-h Prints this help message.
|
|
||||||
|
|
||||||
Example 1: arkanum dotnet
|
OPTION
|
||||||
Example 2: arkanum golang nodejs
|
config:
|
||||||
Example 3: arkanum --disable-motd
|
disable-motd Disables hint in new bash terminal.
|
||||||
|
install extensions Installs predefined recommended extensions.
|
||||||
|
reset-codesettings Sets VS Code user setting with basic (Fira Code).
|
||||||
|
|
||||||
|
git:
|
||||||
|
setup Takes two arguments to setup the git client:
|
||||||
|
1) Username
|
||||||
|
2) Email address
|
||||||
|
|
||||||
|
install:
|
||||||
|
docker-cli Installs the latest docker-cli.
|
||||||
|
dotnet Installs latest LTS dotnet core sdk + runtime.
|
||||||
|
gitea Installs gitea tools like the changelog generator.
|
||||||
|
golang Installs golang 1.19.3.
|
||||||
|
nodejs Installs latest NodeJs LTS version using Volta.
|
||||||
|
volta Installs Volta as NodeJS version manager.
|
||||||
|
powershell Installs latest PowerShell LTS version.
|
||||||
|
|
||||||
|
Example 1: arkanum git setup "my-name" "my-email"
|
||||||
|
Example 2: arkanum install golang
|
||||||
|
Example 3: arkanum config disable-motd
|
||||||
HELP
|
HELP
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,6 +44,8 @@ function disableMotd() {
|
|||||||
if [[ -e "$HOME/enable_motd" ]]; then
|
if [[ -e "$HOME/enable_motd" ]]; then
|
||||||
say "Disabling 'arkanum' motd..." "disableMotd"
|
say "Disabling 'arkanum' motd..." "disableMotd"
|
||||||
rm -f "$HOME/enable_motd"
|
rm -f "$HOME/enable_motd"
|
||||||
|
else
|
||||||
|
sayW "Arkanum Motd already disabled" "disableMotd"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,22 +65,52 @@ function sayE() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sayW() {
|
||||||
|
if [[ -n "$2" ]]; then
|
||||||
|
echo -e "🧙 \e[33markanum\e[0m \e[34m[⚒️ $2]\e[0m: $1" 1>&2
|
||||||
|
else
|
||||||
|
echo -e "🧙 \e[33markanum\e[0m: $1" 1>&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function instDockerCLI() {
|
||||||
|
say "Installing docker-cli..." "docker-cli"
|
||||||
|
say "Getting requires packages..." "docker-cli"
|
||||||
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install ca-certificates curl gnupg
|
||||||
|
say "Setting up docker repository..." "docker-cli"
|
||||||
|
sudo -E install -m 0755 -d /etc/apt/keyrings
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo -E gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
|
sudo -E chmod a+r /etc/apt/keyrings/docker.gpg
|
||||||
|
# shellcheck disable=SC2046,SC2027
|
||||||
|
echo \
|
||||||
|
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||||||
|
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
|
||||||
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
say "Installing docker-ce-cli package" "docker-cli"
|
||||||
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
|
docker-ce-cli
|
||||||
|
say "docker-cli done." "docker-cli"
|
||||||
|
}
|
||||||
|
|
||||||
function instDotNet() {
|
function instDotNet() {
|
||||||
say "Installing dotnet requirements..." "dotnet"
|
say "Installing dotnet requirements..." "dotnet"
|
||||||
sudo apt-get update > /dev/null
|
sudo -E apt-get update > /dev/null
|
||||||
sudo apt-get install --no-install-recommends -y \
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
libicu70
|
libicu70
|
||||||
|
|
||||||
say "Downloading latest install script..." "dotnet"
|
say "Downloading latest install script..." "dotnet"
|
||||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
curl -#fSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
||||||
chmod +x /tmp/dotnet-install.sh
|
chmod +x /tmp/dotnet-install.sh
|
||||||
|
|
||||||
say "Installing latest .NET Core LTS release..." "dotnet"
|
say "Installing latest .NET Core LTS release..." "dotnet"
|
||||||
/tmp/dotnet-install.sh --channel LTS
|
/tmp/dotnet-install.sh --channel LTS
|
||||||
|
# shellcheck disable=SC2016
|
||||||
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
|
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
|
||||||
|
|
||||||
say "Cleaning up..." "dotnet"
|
say "Cleaning up..." "dotnet"
|
||||||
sudo apt-get clean
|
sudo -E apt-get clean
|
||||||
sudo rm -rf \
|
sudo rm -rf \
|
||||||
/tmp/* \
|
/tmp/* \
|
||||||
/var/lib/apt/lists/* \
|
/var/lib/apt/lists/* \
|
||||||
@ -73,16 +120,17 @@ function instDotNet() {
|
|||||||
|
|
||||||
function instGoLang() {
|
function instGoLang() {
|
||||||
if [[ -z "$1" ]]; then
|
if [[ -z "$1" ]]; then
|
||||||
GOVERSION="1.19.3"
|
GOVERSION="1.20.6"
|
||||||
else
|
else
|
||||||
GOVERSION="$1"
|
GOVERSION="$1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
say "Downloading golang ($GOVERSION)..." "GoLang"
|
say "Downloading golang ($GOVERSION)..." "GoLang"
|
||||||
curl -fsSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz
|
curl -#fSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz
|
||||||
say "Installing golang ($GOVERSION)...." "GoLang"
|
say "Installing golang ($GOVERSION)...." "GoLang"
|
||||||
sudo rm -rf /usr/local/go
|
sudo rm -rf /usr/local/go
|
||||||
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
||||||
|
# shellcheck disable=SC2016
|
||||||
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/bash.bashrc > /dev/null
|
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/bash.bashrc > /dev/null
|
||||||
say "Cleaning up..." "GoLang"
|
say "Cleaning up..." "GoLang"
|
||||||
rm -f /tmp/golang.tar.gz
|
rm -f /tmp/golang.tar.gz
|
||||||
@ -92,13 +140,13 @@ function instGoLang() {
|
|||||||
|
|
||||||
function instNodeJs() {
|
function instNodeJs() {
|
||||||
say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
|
say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
|
||||||
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
curl -#fSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
||||||
say "Updating package lists and installing NodeJS LTS..." "NodeJs"
|
say "Updating package lists and installing NodeJS LTS..." "NodeJs"
|
||||||
sudo apt-get install --no-install-recommends -y \
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
nodejs
|
nodejs
|
||||||
|
|
||||||
say "Cleaning up..." "NodeJs"
|
say "Cleaning up..." "NodeJs"
|
||||||
sudo apt-get clean
|
sudo -E apt-get clean
|
||||||
sudo rm -rf \
|
sudo rm -rf \
|
||||||
/tmp/* \
|
/tmp/* \
|
||||||
/var/lib/apt/lists/* \
|
/var/lib/apt/lists/* \
|
||||||
@ -107,32 +155,57 @@ function instNodeJs() {
|
|||||||
say "done." "NodeJs"
|
say "done." "NodeJs"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function instNodeJS2() {
|
||||||
|
say "Installing NodeJS LTS via Volta..." "NodeJS"
|
||||||
|
volta install node@lts
|
||||||
|
say "done." "NodeJS"
|
||||||
|
}
|
||||||
|
|
||||||
|
function instVolta() {
|
||||||
|
say "Installing Volta as NodeJS version manager..." "Volta"
|
||||||
|
curl -#fSl https://get.volta.sh | bash
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
source ~/.profile
|
||||||
|
say "done." "Volta"
|
||||||
|
}
|
||||||
|
|
||||||
function instPwsh() {
|
function instPwsh() {
|
||||||
say "Installing PowerShell requirements..." "PowerShell"
|
say "Installing PowerShell requirements..." "PowerShell"
|
||||||
sudo apt-get install --no-install-recommends -y \
|
sudo -E apt-get update > /dev/null
|
||||||
|
sudo -E apt-get install --no-install-recommends -y \
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
software-properties-common
|
software-properties-common
|
||||||
|
|
||||||
say "Adding powershell package sources..." "PowerShell"
|
say "Adding powershell package sources..." "PowerShell"
|
||||||
# Download the Microsoft repository GPG keys
|
# Download the Microsoft repository GPG keys
|
||||||
curl -fsSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb
|
curl -#fSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb
|
||||||
# Register the Microsoft repository GPG keys
|
# Register the Microsoft repository GPG keys
|
||||||
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
||||||
# Update the list of packages after we added packages.microsoft.com
|
# Update the list of packages after we added packages.microsoft.com
|
||||||
sudo apt-get update
|
sudo -E apt-get update
|
||||||
|
|
||||||
say "Installing PowerShell..." "PowerShell"
|
say "Installing PowerShell..." "PowerShell"
|
||||||
# Install PowerShell
|
# Install PowerShell
|
||||||
sudo apt-get install --no-install-recommends -y powershell
|
sudo -E apt-get install --no-install-recommends -y powershell
|
||||||
|
|
||||||
say "done." "PowerShell"
|
say "done." "PowerShell"
|
||||||
}
|
}
|
||||||
|
|
||||||
function instGiteaTools() {
|
function instGiteaTools() {
|
||||||
|
TEA_VERSION="0.9.0"
|
||||||
|
CHANGELOG_VERSION="main"
|
||||||
say "Installing Gitea tools..." "Gitea"
|
say "Installing Gitea tools..." "Gitea"
|
||||||
sudo curl -fsSL https://dl.gitea.io/changelog-tool/main/changelog-main-linux-amd64 -o /usr/bin/changelog
|
|
||||||
|
say "Downloading 'changelog' ($CHANGELOG_VERSION)..." "Gitea"
|
||||||
|
sudo -E curl -#fSL "https://dl.gitea.io/changelog-tool/$CHANGELOG_VERSION/changelog-$CHANGELOG_VERSION-linux-amd64" -o /usr/bin/changelog
|
||||||
sudo chmod +x /usr/bin/changelog
|
sudo chmod +x /usr/bin/changelog
|
||||||
say "'changelog' command installed." "Gitea"
|
say "'changelog' command installed." "Gitea"
|
||||||
|
|
||||||
|
say "Downloading 'tea' ($TEA_VERSION)..." "Gitea"
|
||||||
|
sudo -E curl -#fSL https://dl.gitea.io/tea/$TEA_VERSION/tea-$TEA_VERSION-linux-amd64 -o /usr/bin/tea
|
||||||
|
sudo chmod +x /usr/bin/tea
|
||||||
|
say "'tea' command installed." "Gitea"
|
||||||
|
|
||||||
say "done." "Gitea"
|
say "done." "Gitea"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,15 +213,15 @@ function instCodeExtension() {
|
|||||||
say "Downloading required extensions...." "Extension"
|
say "Downloading required extensions...." "Extension"
|
||||||
# Gitlens
|
# Gitlens
|
||||||
say "Downloading 'gitlens'..." "Extension"
|
say "Downloading 'gitlens'..." "Extension"
|
||||||
curl -fsSL https://open-vsx.org/api/eamodio/gitlens/13.1.1/file/eamodio.gitlens-13.1.1.vsix -o /tmp/eamodio.gitlens-13.1.1.vsix
|
curl -#fSL https://open-vsx.org/api/eamodio/gitlens/14.0.1/file/eamodio.gitlens-14.0.1.vsix -o /tmp/eamodio.gitlens-13.1.1.vsix
|
||||||
say "Installing 'gitlens'..." "Extension"
|
say "Installing 'gitlens'..." "Extension"
|
||||||
install-extension /tmp/eamodio.gitlens-13.1.1.vsix
|
install-extension /tmp/eamodio.gitlens-13.1.1.vsix
|
||||||
say "Cleaning up 'gitlens' install files" "Extension"
|
say "Cleaning up 'gitlens' install files" "Extension"
|
||||||
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
|
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
|
||||||
|
|
||||||
# OneDarkPro
|
# OneDarkPro
|
||||||
say "Downloading 'One Dark Pro' theme..." "V"
|
say "Downloading 'One Dark Pro' theme..." "Extension"
|
||||||
curl -fsSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.15.6/file/zhuangtongfa.material-theme-3.15.6.vsix -o /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
curl -#fSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.15.18/file/zhuangtongfa.material-theme-3.15.18.vsix -o /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||||
say "Installing 'One Dark Pro' theme..." "Extension"
|
say "Installing 'One Dark Pro' theme..." "Extension"
|
||||||
install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||||
say "Cleaning up 'One Dark Pro' install files" "Extension"
|
say "Cleaning up 'One Dark Pro' install files" "Extension"
|
||||||
@ -156,7 +229,7 @@ function instCodeExtension() {
|
|||||||
|
|
||||||
# vscode-icons
|
# vscode-icons
|
||||||
say "Downloading 'vscode-icons' theme..." "Extension"
|
say "Downloading 'vscode-icons' theme..." "Extension"
|
||||||
curl -fsSL https://open-vsx.org/api/vscode-icons-team/vscode-icons/12.0.1/file/vscode-icons-team.vscode-icons-12.0.1.vsix -o /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
curl -#fSL https://open-vsx.org/api/vscode-icons-team/vscode-icons/12.4.0/file/vscode-icons-team.vscode-icons-12.4.0.vsix -o /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
||||||
say "Installing 'vscode-icons' theme..." "Extension"
|
say "Installing 'vscode-icons' theme..." "Extension"
|
||||||
install-extension /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
install-extension /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
||||||
say "Cleaning up 'vscode-icons' install files" "Extension"
|
say "Cleaning up 'vscode-icons' install files" "Extension"
|
||||||
@ -186,41 +259,79 @@ EOF
|
|||||||
say "done." "VSCode"
|
say "done." "VSCode"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setGitConfig() {
|
||||||
|
if [[ "$#" != "2" ]]; then
|
||||||
|
sayE "Invalid arguments given. Please provide '<user>' and 'email'!" "Git"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
say "Setting global git config..." "Git"
|
||||||
|
git config --global user.name "$1"
|
||||||
|
git config --global user.email "$2"
|
||||||
|
say "Returning global config:" "Git"
|
||||||
|
git config --list --global
|
||||||
|
}
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
if [[ "$#" == "0" ]]; then
|
if [[ "$#" == "0" ]]; then
|
||||||
showHelp
|
showHelp
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in $@; do
|
# Command filter
|
||||||
if [[ "$1" == "-h" ]]; then
|
if [[ "$1" =~ ^help|-h|--h$ ]]; then
|
||||||
showHelp
|
showHelp
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ "$i" == "dotnet" ]]; then
|
fi
|
||||||
instDotNet
|
|
||||||
elif [[ "$i" == "golang" ]]; then
|
# CONFIG command
|
||||||
instGoLang
|
if [[ "$1" == "config" ]]; then
|
||||||
elif [[ "$i" == "nodejs" ]]; then
|
# disable-motd option
|
||||||
instNodeJs
|
if [[ "$2" == "disable-motd" ]]; then
|
||||||
elif [[ "$i" == "powershell" ]]; then
|
|
||||||
instPwsh
|
|
||||||
elif [[ "$i" == "gitea" ]]; then
|
|
||||||
instGiteaTools
|
|
||||||
elif [[ "$i" == "--disable-motd" ]]; then
|
|
||||||
disableMotd
|
disableMotd
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ "$i" == "--install-extensions" ]]; then
|
# install-extensions option
|
||||||
|
elif [[ "$2" == "install-extensions" ]]; then
|
||||||
instCodeExtension
|
instCodeExtension
|
||||||
exit 0
|
exit 0
|
||||||
elif [[ "$i" == "--reset-codesetting" ]]; then
|
# reset-codesetting option
|
||||||
|
elif [[ "$2" == "reset-codesettings" ]]; then
|
||||||
setCodeSettings
|
setCodeSettings
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
sayE "Unknown parameter value given!($i)."
|
sayE "Unknown option ($2) given for command 'config'!"
|
||||||
|
fi
|
||||||
|
# GIT command
|
||||||
|
elif [[ "$1" == "git" ]]; then
|
||||||
|
# setup option
|
||||||
|
if [[ "$2" == "setup" ]]; then
|
||||||
|
setGitConfig "$3" "$4"
|
||||||
|
else
|
||||||
|
sayE "Unknown option ($2) given for command 'git'!"
|
||||||
|
fi
|
||||||
|
# INSTALL command
|
||||||
|
elif [[ "$1" == "install" ]]; then
|
||||||
|
# docker-cli option
|
||||||
|
if [[ "$2" == "docker-cli" ]]; then
|
||||||
|
instDockerCLI
|
||||||
|
elif [[ "$2" == "dotnet" ]]; then
|
||||||
|
instDotNet
|
||||||
|
elif [[ "$2" == "golang" ]]; then
|
||||||
|
instGoLang "$3"
|
||||||
|
elif [[ "$2" == "nodejs" ]]; then
|
||||||
|
instVolta
|
||||||
|
instNodeJs
|
||||||
|
elif [[ "$2" == "volta" ]]; then
|
||||||
|
instVolta
|
||||||
|
elif [[ "$2" == "powershell" ]]; then
|
||||||
|
instPwsh
|
||||||
|
elif [[ "$2" == "gitea" ]]; then
|
||||||
|
instGiteaTools
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
sayE "Unknown parameter value given!($1)."
|
||||||
showHelp
|
showHelp
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main $@
|
main "$@"
|
||||||
|
@ -1,3 +1,39 @@
|
|||||||
#!/bin/bash
|
#!/bin/env bash
|
||||||
|
|
||||||
complete -W "--disable-motd --install-extensions --reset-codesetting dotnet gitea golang nodejs powershell -h" arkanum
|
#complete -W "--disable-motd --install-extensions --reset-codesetting docker-cli dotnet gitea golang nodejs volta powershell -h" arkanum
|
||||||
|
|
||||||
|
function _command_completions() {
|
||||||
|
local cur prev
|
||||||
|
cur=${COMP_WORDS[COMP_CWORD]}
|
||||||
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
|
||||||
|
case ${COMP_CWORD} in
|
||||||
|
1)
|
||||||
|
# shellcheck disable=2207,SC2086
|
||||||
|
COMPREPLY=($(compgen -W "config git install help" -- ${cur}))
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
case ${prev} in
|
||||||
|
config)
|
||||||
|
# shellcheck disable=2207,SC2086
|
||||||
|
COMPREPLY=($(compgen -W "disable-motd install-extensions reset-codesettings" -- ${cur}))
|
||||||
|
;;
|
||||||
|
git)
|
||||||
|
# shellcheck disable=2207,SC2086
|
||||||
|
COMPREPLY=($(compgen -W "setup" -- ${cur}))
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
# shellcheck disable=2207,SC2086
|
||||||
|
COMPREPLY=($(compgen -W "docker-cli dotnet golang nodejs volta powershell gitea" -- ${cur}))
|
||||||
|
;;
|
||||||
|
help)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=()
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _command_completions arkanum
|
||||||
|
@ -59,6 +59,9 @@ symbol = " "
|
|||||||
[package]
|
[package]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
|
||||||
|
[python]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
[rust]
|
[rust]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user