mirror of
https://github.com/ViViDboarder/vim-settings.git
synced 2024-12-22 18:37:34 +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
|
||||
|
||||
# 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
|
||||
|
||||
WORKDIR /home/vividboarder
|
||||
@ -34,10 +34,6 @@ ENV HOME /home/vividboarder
|
||||
ENV XDG_CONFIG_HOME $HOME/.config
|
||||
RUN mkdir -p $XDG_CONFIG_HOME
|
||||
|
||||
# Create persistent data dir
|
||||
RUN mkdir -p /home/vividboarder/.data
|
||||
VOLUME /home/vividboarder/.data
|
||||
|
||||
# Configure go path
|
||||
ENV GOPATH $HOME/go
|
||||
RUN mkdir -p $GOPATH/bin
|
||||
@ -50,18 +46,27 @@ ENV PATH $PATH:$NPM_PACKAGES/bin
|
||||
ENV PATH $HOME/.local/bin:$PATH
|
||||
|
||||
# Install Language servers
|
||||
COPY --chown=vividboarder:vividboarder ./install-language-servers.sh ./
|
||||
COPY --chown=vividboarder:users ./install-language-servers.sh ./
|
||||
RUN ./install-language-servers.sh
|
||||
# Install golangci-lint
|
||||
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin v1.43.0
|
||||
|
||||
# Add config
|
||||
COPY --chown=vividboarder:vividboarder ./neovim $HOME/.config/nvim
|
||||
COPY --chown=vividboarder:users ./neovim $HOME/.config/nvim
|
||||
|
||||
# Sync packer plugins
|
||||
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
|
||||
RUN nvim --headless -c "TSUpdateSync" -c "quitall"
|
||||
# Bootstrap treesitter parsers
|
||||
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
|
||||
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 "$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"
|
||||
[ -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"
|
||||
# TS_PARSERS="$HOME/.local/share/nvim/site/pack/packer/start/nvim-treesitter/parser"
|
||||
# [ -d "$VOLUME_DATA/ts-parsers" ] || mkdir -p "$VOLUME_DATA/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
|
||||
exec "$@"
|
||||
|
@ -234,7 +234,7 @@ return require("packer").startup({
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
run = ":TSUpdate",
|
||||
config = function()
|
||||
require("utils").require_with_local("plugins.treesitter")
|
||||
require("plugins.treesitter").setup()
|
||||
end,
|
||||
})
|
||||
use({
|
||||
|
@ -1,24 +1,36 @@
|
||||
-- Configures nvim-treesitter
|
||||
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 = {
|
||||
"bash",
|
||||
"css",
|
||||
"fish",
|
||||
"go",
|
||||
"gomod",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"python",
|
||||
"rust",
|
||||
"yaml",
|
||||
},
|
||||
})
|
||||
local M = {}
|
||||
|
||||
local ensure_installed = {
|
||||
"bash",
|
||||
"css",
|
||||
"fish",
|
||||
"go",
|
||||
"gomod",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"python",
|
||||
"rust",
|
||||
"yaml",
|
||||
}
|
||||
|
||||
function M.bootstrap()
|
||||
require("nvim-treesitter.install").ensure_installed_sync(ensure_installed)
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
set -ex
|
||||
|
||||
if ! docker image ls -q nvim > /dev/null ;then
|
||||
echo "no nvim image found"
|
||||
exit 1
|
||||
@ -18,6 +20,7 @@ docker run --interactive --rm --tty \
|
||||
--volume "$(pwd):/home/vividboarder/data" \
|
||||
--workdir /home/vividboarder/data \
|
||||
--entrypoint /docker-entry.sh \
|
||||
--user "$(id -u):$(id -g)" \
|
||||
--user "vividboarder:$(id -g)" \
|
||||
--group-add users \
|
||||
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"
|
||||
nvim --headless -c PlugInstall -c qall
|
||||
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"
|
||||
fi
|
||||
if hash vim 2>/dev/null; then
|
||||
|
Loading…
Reference in New Issue
Block a user