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.
|
||||
|
||||
- [x] CI pipeline tests
|
||||
- [ ] Custom test
|
||||
- [ ] No test plan
|
||||
| Choice | Test Method |
|
||||
| :----: | :----------- |
|
||||
| ✅ | CI pipeline tests |
|
||||
| | Custom test |
|
||||
| | No test plan |
|
||||
|
||||
##### Details / Justification
|
||||
|
||||
|
1
.vscode/dictionaries/project-words.txt
vendored
1
.vscode/dictionaries/project-words.txt
vendored
@ -22,3 +22,4 @@ srv
|
||||
tbd
|
||||
traefik
|
||||
tuanpham
|
||||
volta
|
||||
|
@ -23,14 +23,20 @@ pipeline:
|
||||
buildTag:
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
registry: gitea.ocram85.com
|
||||
repo: gitea.ocram85.com/codeserver/arkanum
|
||||
repo: gitea.ocram85.com/codeserver/arkanum,ocram85/arkanum
|
||||
dockerfile: Dockerfile
|
||||
auto_tag: true
|
||||
username:
|
||||
from_secret: gitea_user
|
||||
password:
|
||||
from_secret: gitea_passwd
|
||||
logins:
|
||||
- registry: https://gitea.ocram85.com
|
||||
username:
|
||||
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:
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
|
@ -24,7 +24,7 @@ pipeline:
|
||||
triggerPortainer:
|
||||
image: ocram85/portainer-serviceupdate
|
||||
settings:
|
||||
#VERBOSE: true
|
||||
VERBOSE: true
|
||||
URI: "https://portainer.ocram85.com"
|
||||
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
|
36
CHANGELOG.md
36
CHANGELOG.md
@ -45,3 +45,39 @@
|
||||
* fix renovate config keys (#34)
|
||||
* Update renovate/renovate Docker tag to v34.62 (#33)
|
||||
* 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 maintainer="OCram85"
|
||||
@ -40,7 +40,7 @@ RUN \
|
||||
chmod +x /etc/bash_completion.d/arkanum-completion && \
|
||||
echo 'source /etc/bash_completion.d/arkanum-completion' >> /etc/bash.bashrc && \
|
||||
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 "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.
|
||||
- `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
|
||||
|
||||
@ -53,7 +55,7 @@ Therefore you need
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.0.1
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
@ -75,10 +77,11 @@ services:
|
||||
volumes:
|
||||
# store workspace and use config in volume.
|
||||
- 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.
|
||||
#ports:
|
||||
# - 8443:8443
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arkanum-sphere
|
||||
- traefik-public
|
||||
@ -104,7 +107,7 @@ See their [docs](https://github.com/linuxserver/docker-code-server#parameters) a
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.0.1
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
@ -167,24 +170,39 @@ Added `arkanum` to help installing common runtimes in container.
|
||||
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.
|
||||
|
||||
Syntax: arkanum RUNTIME ...
|
||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
||||
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.
|
||||
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.
|
||||
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
|
||||
COMMAND
|
||||
config The config command is used to modify arkanum itself.
|
||||
git The git command is a wrapper for git helpers.
|
||||
install The install command is used to add different tools
|
||||
help Shows this help text.
|
||||
|
||||
Example 1: arkanum dotnet
|
||||
Example 2: arkanum golang nodejs
|
||||
Example 3: arkanum --disable-motd
|
||||
OPTION
|
||||
config:
|
||||
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)
|
||||
|
||||
@ -216,6 +234,11 @@ Additionally we install these extensions on container startup:
|
||||
|
||||
## 💣 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
|
||||
|
||||
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() {
|
||||
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.
|
||||
|
||||
Syntax: arkanum RUNTIME ...
|
||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
||||
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.
|
||||
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.
|
||||
Syntax: arkanum <flags> COMMAND OPTION ARGUMENT
|
||||
COMMAND
|
||||
config The config command is used to modify arkanum itself.
|
||||
git The git command is a wrapper for git helpers.
|
||||
install The install command is used to add different tools
|
||||
help Shows this help text.
|
||||
|
||||
Example 1: arkanum dotnet
|
||||
Example 2: arkanum golang nodejs
|
||||
Example 3: arkanum --disable-motd
|
||||
OPTION
|
||||
config:
|
||||
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
|
||||
}
|
||||
|
||||
@ -29,6 +44,8 @@ function disableMotd() {
|
||||
if [[ -e "$HOME/enable_motd" ]]; then
|
||||
say "Disabling 'arkanum' motd..." "disableMotd"
|
||||
rm -f "$HOME/enable_motd"
|
||||
else
|
||||
sayW "Arkanum Motd already disabled" "disableMotd"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -48,22 +65,52 @@ function sayE() {
|
||||
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() {
|
||||
say "Installing dotnet requirements..." "dotnet"
|
||||
sudo apt-get update > /dev/null
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get update > /dev/null
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
libicu70
|
||||
|
||||
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
|
||||
|
||||
say "Installing latest .NET Core LTS release..." "dotnet"
|
||||
/tmp/dotnet-install.sh --channel LTS
|
||||
# shellcheck disable=SC2016
|
||||
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
|
||||
|
||||
say "Cleaning up..." "dotnet"
|
||||
sudo apt-get clean
|
||||
sudo -E apt-get clean
|
||||
sudo rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
@ -73,16 +120,17 @@ function instDotNet() {
|
||||
|
||||
function instGoLang() {
|
||||
if [[ -z "$1" ]]; then
|
||||
GOVERSION="1.19.3"
|
||||
GOVERSION="1.20.6"
|
||||
else
|
||||
GOVERSION="$1"
|
||||
fi
|
||||
|
||||
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"
|
||||
sudo rm -rf /usr/local/go
|
||||
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
|
||||
say "Cleaning up..." "GoLang"
|
||||
rm -f /tmp/golang.tar.gz
|
||||
@ -92,13 +140,13 @@ function instGoLang() {
|
||||
|
||||
function instNodeJs() {
|
||||
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"
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
nodejs
|
||||
|
||||
say "Cleaning up..." "NodeJs"
|
||||
sudo apt-get clean
|
||||
sudo -E apt-get clean
|
||||
sudo rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
@ -107,32 +155,57 @@ function instNodeJs() {
|
||||
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() {
|
||||
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 \
|
||||
software-properties-common
|
||||
|
||||
say "Adding powershell package sources..." "PowerShell"
|
||||
# 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
|
||||
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
||||
# Update the list of packages after we added packages.microsoft.com
|
||||
sudo apt-get update
|
||||
sudo -E apt-get update
|
||||
|
||||
say "Installing PowerShell..." "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"
|
||||
}
|
||||
|
||||
function instGiteaTools() {
|
||||
TEA_VERSION="0.9.0"
|
||||
CHANGELOG_VERSION="main"
|
||||
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
|
||||
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"
|
||||
}
|
||||
|
||||
@ -140,15 +213,15 @@ function instCodeExtension() {
|
||||
say "Downloading required extensions...." "Extension"
|
||||
# Gitlens
|
||||
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"
|
||||
install-extension /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
say "Cleaning up 'gitlens' install files" "Extension"
|
||||
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
|
||||
# OneDarkPro
|
||||
say "Downloading 'One Dark Pro' theme..." "V"
|
||||
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
|
||||
say "Downloading 'One Dark Pro' theme..." "Extension"
|
||||
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"
|
||||
install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||
say "Cleaning up 'One Dark Pro' install files" "Extension"
|
||||
@ -156,7 +229,7 @@ function instCodeExtension() {
|
||||
|
||||
# vscode-icons
|
||||
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"
|
||||
install-extension /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
||||
say "Cleaning up 'vscode-icons' install files" "Extension"
|
||||
@ -186,41 +259,79 @@ EOF
|
||||
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() {
|
||||
if [[ "$#" == "0" ]]; then
|
||||
showHelp
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for i in $@; do
|
||||
if [[ "$1" == "-h" ]]; then
|
||||
showHelp
|
||||
exit 0
|
||||
elif [[ "$i" == "dotnet" ]]; then
|
||||
instDotNet
|
||||
elif [[ "$i" == "golang" ]]; then
|
||||
instGoLang
|
||||
elif [[ "$i" == "nodejs" ]]; then
|
||||
instNodeJs
|
||||
elif [[ "$i" == "powershell" ]]; then
|
||||
instPwsh
|
||||
elif [[ "$i" == "gitea" ]]; then
|
||||
instGiteaTools
|
||||
elif [[ "$i" == "--disable-motd" ]]; then
|
||||
# Command filter
|
||||
if [[ "$1" =~ ^help|-h|--h$ ]]; then
|
||||
showHelp
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# CONFIG command
|
||||
if [[ "$1" == "config" ]]; then
|
||||
# disable-motd option
|
||||
if [[ "$2" == "disable-motd" ]]; then
|
||||
disableMotd
|
||||
exit 0
|
||||
elif [[ "$i" == "--install-extensions" ]]; then
|
||||
# install-extensions option
|
||||
elif [[ "$2" == "install-extensions" ]]; then
|
||||
instCodeExtension
|
||||
exit 0
|
||||
elif [[ "$i" == "--reset-codesetting" ]]; then
|
||||
# reset-codesetting option
|
||||
elif [[ "$2" == "reset-codesettings" ]]; then
|
||||
setCodeSettings
|
||||
exit 0
|
||||
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
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
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]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
disabled = true
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
|
||||
|
Reference in New Issue
Block a user