mirror of
https://github.com/ViViDboarder/vim-settings.git
synced 2024-12-22 23:57:33 +00:00
Get Docker install permissions working and TS
This commit is contained in:
parent
ed6640e8e1
commit
5543af4bbc
23
Dockerfile
23
Dockerfile
@ -26,7 +26,7 @@ RUN apk add gcc g++ python3-dev
|
|||||||
RUN pip3 install pynvim
|
RUN pip3 install pynvim
|
||||||
|
|
||||||
# Create user
|
# Create user
|
||||||
RUN adduser -D -h /home/vividboarder -s /bin/bash vividboarder
|
RUN adduser -D -h /home/vividboarder -s /bin/bash --ingroup users vividboarder
|
||||||
USER vividboarder
|
USER vividboarder
|
||||||
|
|
||||||
WORKDIR /home/vividboarder
|
WORKDIR /home/vividboarder
|
||||||
@ -34,10 +34,6 @@ ENV HOME /home/vividboarder
|
|||||||
ENV XDG_CONFIG_HOME $HOME/.config
|
ENV XDG_CONFIG_HOME $HOME/.config
|
||||||
RUN mkdir -p $XDG_CONFIG_HOME
|
RUN mkdir -p $XDG_CONFIG_HOME
|
||||||
|
|
||||||
# Create persistent data dir
|
|
||||||
RUN mkdir -p /home/vividboarder/.data
|
|
||||||
VOLUME /home/vividboarder/.data
|
|
||||||
|
|
||||||
# Configure go path
|
# Configure go path
|
||||||
ENV GOPATH $HOME/go
|
ENV GOPATH $HOME/go
|
||||||
RUN mkdir -p $GOPATH/bin
|
RUN mkdir -p $GOPATH/bin
|
||||||
@ -50,18 +46,27 @@ ENV PATH $PATH:$NPM_PACKAGES/bin
|
|||||||
ENV PATH $HOME/.local/bin:$PATH
|
ENV PATH $HOME/.local/bin:$PATH
|
||||||
|
|
||||||
# Install Language servers
|
# Install Language servers
|
||||||
COPY --chown=vividboarder:vividboarder ./install-language-servers.sh ./
|
COPY --chown=vividboarder:users ./install-language-servers.sh ./
|
||||||
RUN ./install-language-servers.sh
|
RUN ./install-language-servers.sh
|
||||||
# Install golangci-lint
|
# Install golangci-lint
|
||||||
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin v1.43.0
|
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin v1.43.0
|
||||||
|
|
||||||
# Add config
|
# Add config
|
||||||
COPY --chown=vividboarder:vividboarder ./neovim $HOME/.config/nvim
|
COPY --chown=vividboarder:users ./neovim $HOME/.config/nvim
|
||||||
|
|
||||||
# Sync packer plugins
|
# Sync packer plugins
|
||||||
RUN nvim --headless -c "autocmd User PackerComplete quitall" -c "PackerBootstrap"
|
RUN nvim --headless -c "autocmd User PackerComplete quitall" -c "PackerBootstrap"
|
||||||
# This may not actually do anyting. Haven't figured out how to get compiled ts files into the image
|
# Bootstrap treesitter parsers
|
||||||
RUN nvim --headless -c "TSUpdateSync" -c "quitall"
|
RUN nvim --headless -c "lua require('plugins.treesitter').bootstrap()" -c quitall
|
||||||
|
|
||||||
|
# Create persistent data dir
|
||||||
|
RUN mkdir -p /home/vividboarder/.data
|
||||||
|
# VOLUME /home/vividboarder/.data
|
||||||
|
|
||||||
|
# Make home dir read/write for everyone
|
||||||
|
# RUN chown -R ":users" /home/vividboarder
|
||||||
|
# RUN chmod -R a+rw /home/vividboarder
|
||||||
|
# RUN chmod -R a-s /home/vividboarder
|
||||||
|
|
||||||
# Generate workdir
|
# Generate workdir
|
||||||
RUN mkdir /home/vividboarder/data
|
RUN mkdir /home/vividboarder/data
|
||||||
|
@ -17,9 +17,15 @@ VOLUME_DATA=/home/vividboarder/.data
|
|||||||
[ -d "$VOLUME_DATA/nvim/backup" ] || mkdir -p "$VOLUME_DATA/nvim/backup"
|
[ -d "$VOLUME_DATA/nvim/backup" ] || mkdir -p "$VOLUME_DATA/nvim/backup"
|
||||||
[ -d "$XDG_CONFIG_HOME/nvim/backup" ] || ln -s "$VOLUME_DATA/nvim/backup" "$XDG_CONFIG_HOME/nvim/backup"
|
[ -d "$XDG_CONFIG_HOME/nvim/backup" ] || ln -s "$VOLUME_DATA/nvim/backup" "$XDG_CONFIG_HOME/nvim/backup"
|
||||||
|
|
||||||
TS_PARSERS="share/nvim/site/pack/packer/start/nvim-treesitter/parser"
|
# TS_PARSERS="$HOME/.local/share/nvim/site/pack/packer/start/nvim-treesitter/parser"
|
||||||
[ -d "$VOLUME_DATA/ts-parsers" ] || mkdir -p "$VOLUME_DATA/ts-parsers"
|
# [ -d "$VOLUME_DATA/ts-parsers" ] || mkdir -p "$VOLUME_DATA/ts-parsers"
|
||||||
rm -fr "$HOME/.local/$TS_PARSERS" || ln -s "$VOLUME_DATA/ts-parsers" "$HOME/.local/$TS_PARSERS"
|
# rm -fr "$TS_PARSERS"
|
||||||
|
# ln -s "$VOLUME_DATA/ts-parsers" "$TS_PARSERS"
|
||||||
|
#
|
||||||
|
# TS_PARSERS="$HOME/.local/share/nvim/site/parser"
|
||||||
|
# [ -d "$VOLUME_DATA/ts-parsers" ] || mkdir -p "$VOLUME_DATA/ts-parsers"
|
||||||
|
# rm -fr "$TS_PARSERS"
|
||||||
|
# ln -s "$VOLUME_DATA/ts-parsers" "$TS_PARSERS"
|
||||||
|
|
||||||
if [ "$1" == "bash" ]; then
|
if [ "$1" == "bash" ]; then
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
@ -234,7 +234,7 @@ return require("packer").startup({
|
|||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
run = ":TSUpdate",
|
run = ":TSUpdate",
|
||||||
config = function()
|
config = function()
|
||||||
require("utils").require_with_local("plugins.treesitter")
|
require("plugins.treesitter").setup()
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
use({
|
use({
|
||||||
|
@ -1,24 +1,36 @@
|
|||||||
-- Configures nvim-treesitter
|
-- Configures nvim-treesitter
|
||||||
require("nvim-treesitter.configs").setup({
|
local M = {}
|
||||||
incremental_selection = { enable = true },
|
|
||||||
-- Indent appears to be broken right now
|
local ensure_installed = {
|
||||||
indent = { enable = false },
|
"bash",
|
||||||
textobjects = { enable = true },
|
"css",
|
||||||
highlight = {
|
"fish",
|
||||||
enable = true,
|
"go",
|
||||||
disable = {},
|
"gomod",
|
||||||
},
|
"javascript",
|
||||||
ensure_installed = {
|
"json",
|
||||||
"bash",
|
"lua",
|
||||||
"css",
|
"python",
|
||||||
"fish",
|
"rust",
|
||||||
"go",
|
"yaml",
|
||||||
"gomod",
|
}
|
||||||
"javascript",
|
|
||||||
"json",
|
function M.bootstrap()
|
||||||
"lua",
|
require("nvim-treesitter.install").ensure_installed_sync(ensure_installed)
|
||||||
"python",
|
end
|
||||||
"rust",
|
|
||||||
"yaml",
|
function M.setup()
|
||||||
},
|
require("nvim-treesitter.configs").setup({
|
||||||
})
|
incremental_selection = { enable = true },
|
||||||
|
-- Indent appears to be broken right now
|
||||||
|
indent = { enable = false },
|
||||||
|
textobjects = { enable = true },
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
disable = {},
|
||||||
|
},
|
||||||
|
ensure_installed = ensure_installed,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
if ! docker image ls -q nvim > /dev/null ;then
|
if ! docker image ls -q nvim > /dev/null ;then
|
||||||
echo "no nvim image found"
|
echo "no nvim image found"
|
||||||
exit 1
|
exit 1
|
||||||
@ -18,6 +20,7 @@ docker run --interactive --rm --tty \
|
|||||||
--volume "$(pwd):/home/vividboarder/data" \
|
--volume "$(pwd):/home/vividboarder/data" \
|
||||||
--workdir /home/vividboarder/data \
|
--workdir /home/vividboarder/data \
|
||||||
--entrypoint /docker-entry.sh \
|
--entrypoint /docker-entry.sh \
|
||||||
--user "$(id -u):$(id -g)" \
|
--user "vividboarder:$(id -g)" \
|
||||||
|
--group-add users \
|
||||||
nvim "$@"
|
nvim "$@"
|
||||||
# vividboarder/my-neovim nvim "$@"
|
# vividboarder/my-neovim nvim "$@"
|
||||||
|
@ -27,6 +27,7 @@ if hash nvim 2>/dev/null; then
|
|||||||
echo "If using Neovim, install the python modules in your environment"
|
echo "If using Neovim, install the python modules in your environment"
|
||||||
nvim --headless -c PlugInstall -c qall
|
nvim --headless -c PlugInstall -c qall
|
||||||
nvim --headless -c "autocmd User PackerComplete quitall" -c "PackerBootstrap" -c "PackerSync"
|
nvim --headless -c "autocmd User PackerComplete quitall" -c "PackerBootstrap" -c "PackerSync"
|
||||||
|
nvim --headless -c "lua require('plugins.treesitter').bootstrap()" -c quitall
|
||||||
nvim --headless -c "TSUpdateSync" -c "quitall"
|
nvim --headless -c "TSUpdateSync" -c "quitall"
|
||||||
fi
|
fi
|
||||||
if hash vim 2>/dev/null; then
|
if hash vim 2>/dev/null; then
|
||||||
|
Loading…
Reference in New Issue
Block a user