21 Commits

Author SHA1 Message Date
923aab4560 update pipleines
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/pr/next Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/deploy Pipeline was successful
2023-09-08 10:19:26 +02:00
70fd592a99 fix ghcr url
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/pr/next Pipeline was successful
2023-09-08 10:12:42 +02:00
1a677a9bb4 fix string typo
Some checks failed
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/pr/next Pipeline failed
2023-09-08 10:10:47 +02:00
302336c6d2 add github registry 2023-09-08 10:10:10 +02:00
cfb2c1fe4d test plugin version pinning
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/pr/next Pipeline was successful
2023-09-08 10:04:21 +02:00
3a5910ddd7 fix variable name
Some checks failed
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/pr/next Pipeline failed
2023-09-07 15:53:28 +02:00
4513182359 update ci steps
Some checks failed
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/pr/next Pipeline failed
2023-09-07 13:47:32 +02:00
73b90938fa debug multi tagging
Some checks failed
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/next Pipeline was successful
ci/woodpecker/tag/deploy Pipeline failed
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/deploy Pipeline was successful
ci/woodpecker/pr/next Pipeline was successful
2023-09-06 16:35:34 +02:00
3791bce7a8 add docker hub to deploy
Some checks failed
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/next Pipeline was successful
ci/woodpecker/tag/deploy Pipeline failed
2023-09-06 16:29:04 +02:00
a1a4c2b1e9 Update quay.io/linuxserver.io/code-server Docker tag to v4.16.1 (#59)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/next Pipeline was successful
ci/woodpecker/tag/deploy Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [quay.io/linuxserver.io/code-server](https://github.com/linuxserver/docker-code-server) | final | minor | `4.15.0` -> `4.16.1` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC40MC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNDAuMiJ9-->

Reviewed-on: CodeServer/arkanum#59
Co-authored-by: renovate-bot <renovate@ocram85.com>
Co-committed-by: renovate-bot <renovate@ocram85.com>
2023-08-03 09:54:32 +02:00
e700e7b477 Extends arkanum command and option structure (#62)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- adds nested arguments for arkanum:

```
arkanum <flag> COMMAND OPTION <ARGUMENT>
```

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------      |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

- fixes #61

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#62
2023-08-03 09:51:02 +02:00
26754e83f9 fix pwsh install when called as first command (#60)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

<!-- Provide a summary of your changes. Describe the why and not how. -->

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------      |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

<!-- A place for additional detail notes. -->

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#60
2023-08-01 09:14:21 +02:00
7fe6062a8f Update quay.io/linuxserver.io/code-server Docker tag to v4.15.0 (#57)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [quay.io/linuxserver.io/code-server](https://github.com/linuxserver/docker-code-server) | final | minor | `4.14.1` -> `4.15.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC40MC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNDAuMiJ9-->

Co-authored-by: OCram85 <ocram85@noreply.local>
Reviewed-on: CodeServer/arkanum#57
Co-authored-by: renovate-bot <renovate@ocram85.com>
Co-committed-by: renovate-bot <renovate@ocram85.com>
2023-07-22 16:40:45 +02:00
d18eac86bb fix missing volta command (#58)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- reload profil

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------      |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

<!-- A place for additional detail notes. -->

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#58
2023-07-22 16:37:07 +02:00
1ed6a4a7d5 prepare release v0.4.0 (#56)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/next Pipeline was successful
ci/woodpecker/tag/deploy Pipeline was successful
#### 📖 Summary

- update changelog
- update readme
- update defaut extensions

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------      |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

<!-- A place for additional detail notes. -->

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#56
2023-07-20 09:44:31 +02:00
78c91dceba fix shellcheck issues (#55)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- fix shelchek issues in arkanum bash script

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------      |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

<!-- A place for additional detail notes. -->

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#55
2023-07-19 15:53:06 +02:00
c55408b4b3 add docker-cli (#54)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- adds dockercli
- docker.sock must be mounted from hosts...

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------      |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

- fixes #51

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#54
2023-07-19 13:29:42 +02:00
c6e65b7782 fix tests selection choice
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
tasklist would be shown as open tasks 1/3 in pr overview links...
2023-07-19 12:58:21 +02:00
33f8bc90c0 Adds Volta as default version manager for NodeJs (#53)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- Adds Volta
- Using Volta as default method for installing global nodejs@lts version.

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

- [x] CI pipeline tests
- [ ] Custom test
- [ ] No test plan

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

- fixes #50

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#53
2023-07-19 12:52:26 +02:00
8c9c9e5138 disable starship python module (#52)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- disable python module due to false positive python project detection in prompt.
- added Known Issues section

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

| Choice | Test Method       |
| :----: | :-----------       |
|      | CI pipeline tests |
|        | Custom test       |
|        | No test plan      |

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

<!-- A place for additional detail notes. -->

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#52
2023-07-19 09:34:25 +02:00
5922aabe3d bump go version (#49)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/next Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
#### 📖 Summary

- update go version download

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

- [x] CI pipeline tests
- [ ] Custom test
- [ ] No test plan

##### Details / Justification

<!-- Add your test details or justification for missing tests here. -->

#### 📚 Additional Notes

<!-- A place for additional detail notes. -->

Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Reviewed-on: CodeServer/arkanum#49
2023-07-19 09:14:53 +02:00
12 changed files with 324 additions and 114 deletions

View File

@ -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

View File

@ -22,3 +22,4 @@ srv
tbd
traefik
tuanpham
volta

View File

@ -1,32 +0,0 @@
depends_on:
- test
pipeline:
buildTestImage:
image: woodpeckerci/plugin-docker-buildx
settings:
#dry_run: true
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
platforms: linux/amd64
dockerfile: Dockerfile
tags: next
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
when:
event: pull_request
triggerPortainer:
image: ocram85/portainer-serviceupdate
settings:
VERBOSE: true
URI: "https://portainer.ocram85.com"
TOKEN:
from_secret: NEXT_TOKEN
when:
event: pull_request

View File

@ -1,18 +1,38 @@
depends_on:
- test
pipeline:
buildImage:
image: woodpeckerci/plugin-docker-buildx
settings:
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
dockerfile: Dockerfile
auto_tag: true
variables:
# deployment targets
- &publish_repos 'ocram85/arkanum,gitea.ocram85.com/codeserver/arkanum,ghcr.io/ocram85/arkanum'
# logins for deployment targets
- publish_logins: &publish_logins
# Default DockerHub login
- registry: https://index.docker.io/v1/
username:
from_secret: docker_user
password:
from_secret: docker_passwd
# Additional Quay.IO login
- registry: https://gitea.ocram85.com
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
# GitHub Container Registry
- registry: https://ghcr.io
username:
from_secret: github_user
password:
from_secret: github_passwd
steps:
latest:
image: woodpeckerci/plugin-docker-buildx:2
settings:
repo: *publish_repos
dockerfile: Dockerfile
auto_tag: true
logins: *publish_logins
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
@ -20,17 +40,13 @@ pipeline:
event: push
branch: master
buildTag:
image: woodpeckerci/plugin-docker-buildx
release:
image: woodpeckerci/plugin-docker-buildx:2
settings:
registry: gitea.ocram85.com
repo: gitea.ocram85.com/codeserver/arkanum
repo: *publish_repos
dockerfile: Dockerfile
auto_tag: true
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
logins: *publish_logins
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}

51
.woodpecker/next.yml Normal file
View File

@ -0,0 +1,51 @@
depends_on:
- test
when:
event: pull_request
variables:
# deployment targets
- &publish_repos 'ocram85/arkanum,gitea.ocram85.com/codeserver/arkanum,ghcr.io/ocram85/arkanum'
# logins for deployment targets
- publish_logins: &publish_logins
# Default DockerHub login
- registry: https://index.docker.io/v1/
username:
from_secret: docker_user
password:
from_secret: docker_passwd
# Additional Quay.IO login
- registry: https://gitea.ocram85.com
username:
from_secret: gitea_user
password:
from_secret: gitea_passwd
# GitHub Container Registry
- registry: https://ghcr.io
username:
from_secret: github_user
password:
from_secret: github_passwd
steps:
buildTestImage:
image: woodpeckerci/plugin-docker-buildx:2
settings:
#dry_run: true
repo: *publish_repos
dockerfile: Dockerfile
platforms: linux/amd64
tag: next
logins: *publish_logins
build_args:
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
- TAG=${CI_COMMIT_TAG}
triggerPortainer:
image: ocram85/portainer-serviceupdate
settings:
VERBOSE: true
URI: "https://portainer.ocram85.com"
TOKEN:
from_secret: NEXT_TOKEN

View File

@ -1,4 +1,4 @@
pipeline:
steps:
testDockerfile:
image: woodpeckerci/plugin-docker-buildx
settings:

View File

@ -70,3 +70,14 @@
* 🤖 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)

View File

@ -1,4 +1,4 @@
FROM quay.io/linuxserver.io/code-server:4.14.1
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

View File

@ -55,7 +55,7 @@ Therefore you need
version: "3.8"
services:
arkanum:
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
environment:
- PUID=1000
- PGID=1000
@ -77,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
@ -106,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.2.0
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
container_name: code-server
environment:
- PUID=1000
@ -169,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)
@ -218,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

181
arkanum
View File

@ -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,6 +65,35 @@ 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 -E apt-get update > /dev/null
@ -60,6 +106,7 @@ function instDotNet() {
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"
@ -73,7 +120,7 @@ function instDotNet() {
function instGoLang() {
if [[ -z "$1" ]]; then
GOVERSION="1.19.3"
GOVERSION="1.20.6"
else
GOVERSION="$1"
fi
@ -83,6 +130,7 @@ function instGoLang() {
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
@ -107,8 +155,23 @@ 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 -E apt-get update > /dev/null
sudo -E apt-get install --no-install-recommends -y \
apt-transport-https \
software-properties-common
@ -150,7 +213,7 @@ function instCodeExtension() {
say "Downloading required extensions...." "Extension"
# Gitlens
say "Downloading 'gitlens'..." "Extension"
curl -#fSL 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"
@ -158,7 +221,7 @@ function instCodeExtension() {
# OneDarkPro
say "Downloading 'One Dark Pro' theme..." "Extension"
curl -#fSL 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"
install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
say "Cleaning up 'One Dark Pro' install files" "Extension"
@ -166,7 +229,7 @@ function instCodeExtension() {
# vscode-icons
say "Downloading 'vscode-icons' theme..." "Extension"
curl -#fSL 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"
@ -196,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 "$@"

View File

@ -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

View File

@ -59,6 +59,9 @@ symbol = " "
[package]
symbol = " "
[python]
disabled = true
[rust]
symbol = " "