refactor: delete old Ansible configuration
- Remove the Ansible files. - Move the Nix files to the root level of the repository. Refs: #39
This commit is contained in:
parent
a2bded636e
commit
7235dc60dd
|
@ -1,3 +0,0 @@
|
|||
[defaults]
|
||||
become = true
|
||||
inventory = ./hosts.ini
|
|
@ -1,47 +0,0 @@
|
|||
default_roles:
|
||||
- awesome-wm
|
||||
- cargo
|
||||
- copyq
|
||||
- ctop
|
||||
- dconf
|
||||
- debugger
|
||||
- delta
|
||||
- discord
|
||||
- docker
|
||||
- filezilla
|
||||
- flameshot
|
||||
- fonts
|
||||
- fzf
|
||||
- git
|
||||
- github-cli
|
||||
- github-desktop
|
||||
- gnome-tweak-tools
|
||||
- google-chrome
|
||||
- htop
|
||||
- jq
|
||||
- kdenlive
|
||||
- mysql-client
|
||||
- notion-app
|
||||
- npm
|
||||
- obs-studio
|
||||
- pdf-arranger
|
||||
- platformsh-cli
|
||||
- pocketcasts
|
||||
- postman
|
||||
- projects
|
||||
- pulumi
|
||||
- pv
|
||||
- ripgrep
|
||||
- skype
|
||||
- slack
|
||||
- ssh
|
||||
- stylua
|
||||
- tldr
|
||||
- tmux
|
||||
- tmuxinator
|
||||
- todoist
|
||||
- tree
|
||||
- vlc
|
||||
- zoom
|
||||
- zsh
|
||||
- zsh-antigen
|
|
@ -38,8 +38,9 @@
|
|||
zoxide
|
||||
|
||||
# LSP
|
||||
gopls
|
||||
html-tidy
|
||||
nodePackages."@ansible/ansible-language-server"
|
||||
# nodePackages."@ansible/ansible-language-server"
|
||||
nodePackages."@tailwindcss/language-server"
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.dockerfile-language-server-nodejs
|
||||
|
@ -71,11 +72,23 @@
|
|||
owner = "phpactor";
|
||||
repo = "phpactor";
|
||||
rev = "master";
|
||||
sha256 = "j2rGPMiST85feqk5Nj4KrjxyhfbUjYEKAec+bzPEJZQ=";
|
||||
sha256 = "0bgfwidrlaqxnjmk14gqc8b0mxh0c5xf098qcjz9mvw236n88xl7";
|
||||
};
|
||||
};
|
||||
|
||||
vim-astro = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "vim-astro";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "wuelnerdotexe";
|
||||
repo = "vim-astro";
|
||||
rev = "main";
|
||||
sha256 = "HyQ4i/T1uQmGurBqCpo8+ESVSVPsTrLQBxLe2OEYjcY=";
|
||||
};
|
||||
};
|
||||
in
|
||||
with pkgs.vimPlugins; [
|
||||
vim-astro
|
||||
|
||||
comment-nvim
|
||||
git-worktree-nvim
|
||||
gitsigns-nvim
|
||||
|
@ -110,7 +123,6 @@
|
|||
null-ls-nvim
|
||||
nvim-lspconfig
|
||||
lsp-status-nvim
|
||||
phpactor
|
||||
|
||||
# Completion
|
||||
cmp-buffer
|
||||
|
@ -135,13 +147,18 @@
|
|||
telescope-nvim
|
||||
telescope-ui-select-nvim
|
||||
|
||||
# Git
|
||||
# neogit
|
||||
|
||||
# Databases
|
||||
vim-dadbod
|
||||
vim-dadbod-ui
|
||||
vim-dadbod-completion
|
||||
|
||||
# Themes
|
||||
catppuccin-nvim
|
||||
nightfox-nvim
|
||||
onehalf
|
||||
];
|
||||
};
|
||||
|
23
main.yaml
23
main.yaml
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
- hosts: localhost
|
||||
tasks:
|
||||
- name: Set roles
|
||||
ansible.builtin.set_fact:
|
||||
roles: "{{ ansible_run_tags != ['all'] and ansible_run_tags or default_roles | difference(exclude_roles | default([])) }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Display roles
|
||||
ansible.builtin.debug: "var=roles"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Run roles
|
||||
ansible.builtin.include_role:
|
||||
name: "{{ item }}"
|
||||
apply:
|
||||
tags:
|
||||
- "{{ item }}"
|
||||
with_items: "{{ roles }}"
|
||||
tags:
|
||||
- always
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"nixpkgs": {
|
||||
"branch": "release-21.05",
|
||||
"description": "Nix Packages collection",
|
||||
"homepage": "",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5f244caea76105b63d826911b2a1563d33ff1cdc",
|
||||
"sha256": "1xlgynfw9svy7nvh9nkxsxdzncv9hg99gbvbwv3gmrhmzc3sar75",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/5f244caea76105b63d826911b2a1563d33ff1cdc.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
}
|
||||
}
|
194
nix/sources.nix
194
nix/sources.nix
|
@ -1,194 +0,0 @@
|
|||
# This file has been generated by Niv.
|
||||
|
||||
let
|
||||
|
||||
#
|
||||
# The fetchers. fetch_<type> fetches specs of type <type>.
|
||||
#
|
||||
|
||||
fetch_file = pkgs: name: spec:
|
||||
let
|
||||
name' = sanitizeName name + "-src";
|
||||
in
|
||||
if spec.builtin or true then
|
||||
builtins_fetchurl { inherit (spec) url sha256; name = name'; }
|
||||
else
|
||||
pkgs.fetchurl { inherit (spec) url sha256; name = name'; };
|
||||
|
||||
fetch_tarball = pkgs: name: spec:
|
||||
let
|
||||
name' = sanitizeName name + "-src";
|
||||
in
|
||||
if spec.builtin or true then
|
||||
builtins_fetchTarball { name = name'; inherit (spec) url sha256; }
|
||||
else
|
||||
pkgs.fetchzip { name = name'; inherit (spec) url sha256; };
|
||||
|
||||
fetch_git = name: spec:
|
||||
let
|
||||
ref =
|
||||
if spec ? ref then spec.ref else
|
||||
if spec ? branch then "refs/heads/${spec.branch}" else
|
||||
if spec ? tag then "refs/tags/${spec.tag}" else
|
||||
abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!";
|
||||
submodules = if spec ? submodules then spec.submodules else false;
|
||||
submoduleArg =
|
||||
let
|
||||
nixSupportsSubmodules = builtins.compareVersions builtins.nixVersion "2.4" >= 0;
|
||||
emptyArgWithWarning =
|
||||
if submodules == true
|
||||
then
|
||||
builtins.trace
|
||||
(
|
||||
"The niv input \"${name}\" uses submodules "
|
||||
+ "but your nix's (${builtins.nixVersion}) builtins.fetchGit "
|
||||
+ "does not support them"
|
||||
)
|
||||
{}
|
||||
else {};
|
||||
in
|
||||
if nixSupportsSubmodules
|
||||
then { inherit submodules; }
|
||||
else emptyArgWithWarning;
|
||||
in
|
||||
builtins.fetchGit
|
||||
({ url = spec.repo; inherit (spec) rev; inherit ref; } // submoduleArg);
|
||||
|
||||
fetch_local = spec: spec.path;
|
||||
|
||||
fetch_builtin-tarball = name: throw
|
||||
''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
|
||||
$ niv modify ${name} -a type=tarball -a builtin=true'';
|
||||
|
||||
fetch_builtin-url = name: throw
|
||||
''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
|
||||
$ niv modify ${name} -a type=file -a builtin=true'';
|
||||
|
||||
#
|
||||
# Various helpers
|
||||
#
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
|
||||
sanitizeName = name:
|
||||
(
|
||||
concatMapStrings (s: if builtins.isList s then "-" else s)
|
||||
(
|
||||
builtins.split "[^[:alnum:]+._?=-]+"
|
||||
((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
|
||||
)
|
||||
);
|
||||
|
||||
# The set of packages used when specs are fetched using non-builtins.
|
||||
mkPkgs = sources: system:
|
||||
let
|
||||
sourcesNixpkgs =
|
||||
import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
|
||||
hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
|
||||
hasThisAsNixpkgsPath = <nixpkgs> == ./.;
|
||||
in
|
||||
if builtins.hasAttr "nixpkgs" sources
|
||||
then sourcesNixpkgs
|
||||
else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then
|
||||
import <nixpkgs> {}
|
||||
else
|
||||
abort
|
||||
''
|
||||
Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
|
||||
add a package called "nixpkgs" to your sources.json.
|
||||
'';
|
||||
|
||||
# The actual fetching function.
|
||||
fetch = pkgs: name: spec:
|
||||
|
||||
if ! builtins.hasAttr "type" spec then
|
||||
abort "ERROR: niv spec ${name} does not have a 'type' attribute"
|
||||
else if spec.type == "file" then fetch_file pkgs name spec
|
||||
else if spec.type == "tarball" then fetch_tarball pkgs name spec
|
||||
else if spec.type == "git" then fetch_git name spec
|
||||
else if spec.type == "local" then fetch_local spec
|
||||
else if spec.type == "builtin-tarball" then fetch_builtin-tarball name
|
||||
else if spec.type == "builtin-url" then fetch_builtin-url name
|
||||
else
|
||||
abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
|
||||
|
||||
# If the environment variable NIV_OVERRIDE_${name} is set, then use
|
||||
# the path directly as opposed to the fetched source.
|
||||
replace = name: drv:
|
||||
let
|
||||
saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name;
|
||||
ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
|
||||
in
|
||||
if ersatz == "" then drv else
|
||||
# this turns the string into an actual Nix path (for both absolute and
|
||||
# relative paths)
|
||||
if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}";
|
||||
|
||||
# Ports of functions for older nix versions
|
||||
|
||||
# a Nix version of mapAttrs if the built-in doesn't exist
|
||||
mapAttrs = builtins.mapAttrs or (
|
||||
f: set: with builtins;
|
||||
listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set))
|
||||
);
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
|
||||
range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1);
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
|
||||
stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
|
||||
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
|
||||
concatMapStrings = f: list: concatStrings (map f list);
|
||||
concatStrings = builtins.concatStringsSep "";
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331
|
||||
optionalAttrs = cond: as: if cond then as else {};
|
||||
|
||||
# fetchTarball version that is compatible between all the versions of Nix
|
||||
builtins_fetchTarball = { url, name ? null, sha256 }@attrs:
|
||||
let
|
||||
inherit (builtins) lessThan nixVersion fetchTarball;
|
||||
in
|
||||
if lessThan nixVersion "1.12" then
|
||||
fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; }))
|
||||
else
|
||||
fetchTarball attrs;
|
||||
|
||||
# fetchurl version that is compatible between all the versions of Nix
|
||||
builtins_fetchurl = { url, name ? null, sha256 }@attrs:
|
||||
let
|
||||
inherit (builtins) lessThan nixVersion fetchurl;
|
||||
in
|
||||
if lessThan nixVersion "1.12" then
|
||||
fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; }))
|
||||
else
|
||||
fetchurl attrs;
|
||||
|
||||
# Create the final "sources" from the config
|
||||
mkSources = config:
|
||||
mapAttrs (
|
||||
name: spec:
|
||||
if builtins.hasAttr "outPath" spec
|
||||
then abort
|
||||
"The values in sources.json should not have an 'outPath' attribute"
|
||||
else
|
||||
spec // { outPath = replace name (fetch config.pkgs name spec); }
|
||||
) config.sources;
|
||||
|
||||
# The "config" used by the fetchers
|
||||
mkConfig =
|
||||
{ sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null
|
||||
, sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile)
|
||||
, system ? builtins.currentSystem
|
||||
, pkgs ? mkPkgs sources system
|
||||
}: rec {
|
||||
# The sources, i.e. the attribute set of spec name to spec
|
||||
inherit sources;
|
||||
|
||||
# The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
|
||||
inherit pkgs;
|
||||
};
|
||||
|
||||
in
|
||||
mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); }
|
|
@ -162,4 +162,12 @@ in
|
|||
fonts.fonts = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; })
|
||||
];
|
||||
|
||||
services.cron = {
|
||||
enable = true;
|
||||
|
||||
systemCronJobs = [
|
||||
"0 9 * * * opdavies find ~/Downloads -daystart -mtime +2 -delete -print >> /tmp/cron.log"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
collections:
|
||||
- name: community.general
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- awesome
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- cargo
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.github.hluk.copyq
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- ctop
|
||||
state: latest
|
||||
become: true
|
|
@ -1,23 +0,0 @@
|
|||
[org/gnome/desktop/wm/keybindings]
|
||||
move-to-workspace-1=['<Shift><Super>Home', '<Shift><Super>1']
|
||||
move-to-workspace-2=['<Shift><Super>2']
|
||||
move-to-workspace-3=['<Shift><Super>3']
|
||||
move-to-workspace-3=['<Shift><Super>3']
|
||||
move-to-workspace-4=['<Shift><Super>4']
|
||||
move-to-workspace-4=['<Shift><Super>4']
|
||||
move-to-workspace-5=['<Shift><Super>5']
|
||||
move-to-workspace-6=['<Shift><Super>6']
|
||||
move-to-workspace-7=['<Shift><Super>7']
|
||||
move-to-workspace-8=['<Shift><Super>8']
|
||||
move-to-workspace-9=['<Shift><Super>9']
|
||||
move-to-workspace-10=['<Shift><Super>0']
|
||||
switch-to-workspace-1=['<Super>1']
|
||||
switch-to-workspace-2=['<Super>2']
|
||||
switch-to-workspace-3=['<Super>3']
|
||||
switch-to-workspace-4=['<Super>4']
|
||||
switch-to-workspace-5=['<Super>5']
|
||||
switch-to-workspace-6=['<Super>6']
|
||||
switch-to-workspace-7=['<Super>7']
|
||||
switch-to-workspace-8=['<Super>8']
|
||||
switch-to-workspace-9=['<Super>9']
|
||||
switch-to-workspace-10=['<Super>0']
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
- name: Configure
|
||||
ansible.builtin.file:
|
||||
src: "{{ role_path }}/files/dconf-settings.ini"
|
||||
dest: "{{ ansible_user_dir }}/.config/dconf-settings.ini"
|
||||
state: link
|
|
@ -1,4 +0,0 @@
|
|||
---
|
||||
- include_tasks: php.yaml
|
||||
tags:
|
||||
- debugger
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
- name: Clone
|
||||
ansible.builtin.git:
|
||||
depth: 1
|
||||
dest: "{{ ansible_user_dir }}/build/vscode-php-debug"
|
||||
force: yes
|
||||
repo: https://github.com/xdebug/vscode-php-debug.git
|
||||
single_branch: yes
|
||||
register: clone
|
||||
tags:
|
||||
- debugger
|
||||
|
||||
- name: Install
|
||||
ansible.builtin.command: |
|
||||
npm install
|
||||
npm run build
|
||||
args:
|
||||
chdir: "{{ ansible_user_dir }}/build/vscode-php-debug"
|
||||
creates: "{{ ansible_user_dir }}/build/vscode-php-debug/out"
|
||||
when: clone.changed
|
||||
tags:
|
||||
- debugger
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
dependencies:
|
||||
- role: cargo
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.cargo:
|
||||
name:
|
||||
- git-delta
|
||||
path: /usr/local
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.discordapp.Discord
|
||||
method: user
|
||||
state: present
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- docker
|
||||
- docker-compose
|
||||
state: latest
|
||||
become: yes
|
||||
|
||||
- name: Enable service
|
||||
ansible.builtin.systemd:
|
||||
enabled: yes
|
||||
name: docker
|
||||
state: started
|
||||
become: yes
|
||||
|
||||
- name: Add to group
|
||||
ansible.builtin.user:
|
||||
append: yes
|
||||
groups: docker
|
||||
name: "{{ ansible_env['USER'] }}"
|
||||
become: yes
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- org.filezillaproject.Filezilla
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- org.flameshot.Flameshot
|
||||
method: user
|
||||
state: present
|
|
@ -1,14 +0,0 @@
|
|||
---
|
||||
- name: Download
|
||||
ansible.builtin.get_url:
|
||||
dest: "{{ font_item.dest }}"
|
||||
url: "{{ font_item.url }}"
|
||||
loop_control:
|
||||
loop_var: font_item
|
||||
loop:
|
||||
- url: "https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/JetBrainsMono/Ligatures/Regular/complete/JetBrains%20Mono%20Regular%20Nerd%20Font%20Complete%20Mono.ttf?raw=true"
|
||||
dest: /usr/share/fonts/truetype/JetBrainsMono Nerd Font Regular
|
||||
|
||||
- url: "https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/JetBrainsMono/Ligatures/Italic/complete/JetBrains%20Mono%20Italic%20Nerd%20Font%20Complete%20Mono.ttf?raw=true"
|
||||
dest: /usr/share/fonts/truetype/JetBrainsMono Nerd Font Italic
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- fzf
|
||||
state: latest
|
||||
become: true
|
|
@ -1,138 +0,0 @@
|
|||
[alias]
|
||||
aa = add --all
|
||||
assume = update-index --assume-unchanged
|
||||
assumed = !git ls-files -v | grep '^[hsmrck?]' | cut -c 3-
|
||||
b = branch
|
||||
browse = !gh repo view --web
|
||||
ca = commit --amend --verbose
|
||||
car = commit --amend --no-edit
|
||||
cl = !hub clone
|
||||
cl = !hub clone
|
||||
co = checkout
|
||||
compare = !hub compare
|
||||
current-branch = rev-parse --abbrev-ref HEAD
|
||||
dc = diff --color --word-diff --cached
|
||||
df = diff --color --word-diff
|
||||
dup = !git checkout develop && git fetch origin && echo && git sl develop..origin/develop && echo && git pull --quiet && git checkout -
|
||||
fixup = commit --fixup
|
||||
issues = !gh issue list --web
|
||||
mup = !git master-to-main-wrapper checkout %BRANCH% && git fetch origin && echo && git sl %BRANCH%..origin/%BRANCH% && echo && git pull --quiet && git checkout -
|
||||
nah = !git reset --hard && git clean -fd
|
||||
no-ff = merge --no-ff
|
||||
pl = pull
|
||||
prune = remote prune origin
|
||||
ps = push
|
||||
pulls = !gh pr list --web
|
||||
rbc = rebase --continue
|
||||
rdup = !git dup && git rebase develop
|
||||
remotes = remote -v
|
||||
repush = !git pull --rebase && git push
|
||||
ri = rebase --interactive
|
||||
rid = !git rebase -i $(git merge-base develop HEAD)
|
||||
rim = !git rebase -i $(git master-to-main-wrapper merge-base %BRANCH% HEAD)
|
||||
rip = !git rebase -i $(git merge-base production HEAD)
|
||||
ris = !git rebase -i $(git merge-base staging HEAD)
|
||||
riu = !git rebase -i $(git rev-parse --abbrev-ref --symbolic-full-name @{u})
|
||||
rmup = !git mup && git master-to-main-wrapper rebase %BRANCH%
|
||||
sl = log --oneline --decorate -20
|
||||
sla = log --oneline --decorate --graph --all -20
|
||||
slap = log --oneline --decorate --graph --all
|
||||
slp = log --oneline --decorate
|
||||
staged = diff --staged
|
||||
unassume = update-index --no-assume-unchanged
|
||||
uncommit = reset --soft HEAD^
|
||||
unstage = reset
|
||||
upstream = rev-parse --abbrev-ref --symbolic-full-name @{u}
|
||||
ureset = !git reset --hard $(git upstream)
|
||||
wip = !git add . && git commit -m 'wip'
|
||||
worktrees = "worktree list"
|
||||
|
||||
[branch]
|
||||
autosetupmerge = true
|
||||
autosetuprebase = always
|
||||
|
||||
[checkout]
|
||||
defaultRemote = origin
|
||||
|
||||
[color]
|
||||
branch = auto
|
||||
diff = auto
|
||||
status = auto
|
||||
ui = true
|
||||
|
||||
[color "branch"]
|
||||
current = red reverse
|
||||
local = blue
|
||||
remote = green
|
||||
|
||||
[color "diff"]
|
||||
meta = yellow
|
||||
frag = magenta
|
||||
old = red bold
|
||||
new = green
|
||||
plain = white
|
||||
|
||||
[color "status"]
|
||||
added = yellow
|
||||
changed = green
|
||||
untracked = cyan
|
||||
|
||||
[commit]
|
||||
template = ~/.gitmessage
|
||||
verbose = true
|
||||
|
||||
[core]
|
||||
editor = nvim
|
||||
excludesFile = ~/.gitignore-global
|
||||
pager = delta
|
||||
|
||||
[delta]
|
||||
line-numbers = true
|
||||
|
||||
[diff]
|
||||
tool = vimdiff
|
||||
|
||||
[fetch]
|
||||
prune = true
|
||||
|
||||
[gitsh]
|
||||
nogreeting = true
|
||||
|
||||
[grep]
|
||||
lineNumber = true
|
||||
|
||||
[help]
|
||||
autocorrect = 1
|
||||
|
||||
[include]
|
||||
path = ~/.gitconfig.local
|
||||
|
||||
[init]
|
||||
templatedir = ~/.git_template
|
||||
|
||||
[merge]
|
||||
ff = only
|
||||
|
||||
[rebase]
|
||||
autosquash = true
|
||||
autostash = true
|
||||
|
||||
[rerere]
|
||||
enabled = true
|
||||
|
||||
[push]
|
||||
default = upstream
|
||||
|
||||
[url "https://git.drupal.org/project/"]
|
||||
insteadOf = do:
|
||||
insteadOf = drupal:
|
||||
|
||||
[pull]
|
||||
ff = only
|
||||
rebase = true
|
||||
|
||||
[filter "lfs"]
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
10
roles/git/files/.gitignore
vendored
10
roles/git/files/.gitignore
vendored
|
@ -1,10 +0,0 @@
|
|||
*
|
||||
!*/
|
||||
!/bin/**
|
||||
!/tag-*/**
|
||||
/tag-php/composer/.env
|
||||
/tag-php/composer/auth.json
|
||||
/tag-php/composer/bin/
|
||||
/tag-php/composer/config/
|
||||
/tag-php/composer/keys.*.pub
|
||||
/**/*.zwc
|
|
@ -1,43 +0,0 @@
|
|||
# Ignore archive files.
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.phar
|
||||
*.phar.version
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Ignore database exports.
|
||||
*.*sql
|
||||
|
||||
# Ignore patch files and interdiffs.
|
||||
*.patch
|
||||
*.diff
|
||||
*.rej
|
||||
*.orig
|
||||
interdiff*.txt
|
||||
|
||||
# Ignore Vagrant directories.
|
||||
.vagrant/
|
||||
|
||||
# Ignore logs.
|
||||
*.log
|
||||
|
||||
# Ignore IDE and text editor files.
|
||||
.idea/
|
||||
*.sublime-*
|
||||
|
||||
# Ignore temporary directories.
|
||||
.php_cs.cache
|
||||
tmp/
|
||||
|
||||
# Ignore Ansible Playbook retrys.
|
||||
*.retry
|
||||
|
||||
# Ignore notes within projects.
|
||||
.notes/
|
||||
|
||||
# Ignore directory level aliases
|
||||
.aliases
|
|
@ -1,16 +0,0 @@
|
|||
|
||||
|
||||
# 50-character subject line
|
||||
#
|
||||
# 72-character wrapped longer description. This should answer:
|
||||
#
|
||||
# * Why was this change necessary?
|
||||
# * How does it address the problem?
|
||||
# * Are there any side effects?
|
||||
#
|
||||
# Include a link to the ticket, if any.
|
||||
#
|
||||
# Add co-authors if you worked on this code with others:
|
||||
#
|
||||
# Co-authored-by: Full Name <email@example.com>
|
||||
# Co-authored-by: Full Name <email@example.com>
|
|
@ -1,24 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- git
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: Configuration
|
||||
ansible.builtin.file:
|
||||
src: "{{ role_path }}/files/{{ git_config_item }}"
|
||||
dest: "{{ ansible_user_dir }}/{{ git_config_item }}"
|
||||
state: link
|
||||
loop_control:
|
||||
loop_var: git_config_item
|
||||
with_items:
|
||||
- .gitconfig
|
||||
- .gitignore-global
|
||||
- .gitmessage
|
||||
|
||||
- name: Local configuration
|
||||
ansible.builtin.template:
|
||||
src: gitconfig.local.j2
|
||||
dest: "{{ ansible_user_dir }}/.gitconfig.local"
|
|
@ -1,3 +0,0 @@
|
|||
[user]
|
||||
email = {{ git_user_email }}
|
||||
name = {{ git_user_name }}
|
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
- name: Existing install
|
||||
ansible.builtin.stat:
|
||||
path: /usr/bin/gh
|
||||
register: install
|
||||
|
||||
- name: Keyring
|
||||
ansible.builtin.get_url:
|
||||
dest: /usr/share/keyrings/githubcli-archive-keyring.gpg
|
||||
mode: 644
|
||||
url: https://cli.github.com/packages/githubcli-archive-keyring.gpg
|
||||
when: not install.stat.exists
|
||||
become: true
|
||||
|
||||
- name: Repository
|
||||
ansible.builtin.apt_repository:
|
||||
repo: "deb [arch=amd64 signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main"
|
||||
when: not install.stat.exists
|
||||
become: true
|
||||
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- gh
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- io.github.shiftey.Desktop
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- gnome-tweaks
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.google.Chrome
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- htop
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- jq
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- org.kde.kdenlive
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- mysql-client
|
||||
state: latest
|
||||
become: true
|
|
@ -1,12 +0,0 @@
|
|||
---
|
||||
- name: Repository
|
||||
ansible.builtin.apt_repository:
|
||||
repo: "deb [trusted=yes] https://apt.fury.io/notion-repackaged/ /"
|
||||
become: true
|
||||
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- notion-app
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- npm
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.obsproject.Studio
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.github.jeromerobert.pdfarranger
|
||||
method: user
|
||||
state: present
|
|
@ -1,30 +0,0 @@
|
|||
---
|
||||
- name: Install dependencies
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- php
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: Existing install
|
||||
stat:
|
||||
path: "{{ ansible_user_dir }}/.platformsh/bin/platform"
|
||||
register: install
|
||||
|
||||
- name: Download installer
|
||||
ansible.builtin.get_url:
|
||||
dest: /tmp/platformsh-install.sh
|
||||
mode: 0755
|
||||
url: https://platform.sh/cli/installer
|
||||
become: true
|
||||
when: not install.stat.exists
|
||||
|
||||
- name: Execute installer
|
||||
ansible.builtin.command: php /tmp/platformsh-install.sh
|
||||
when: not install.stat.exists
|
||||
|
||||
- name: Remove platformsh-install.sh
|
||||
ansible.builtin.file:
|
||||
path: /tmp/platformsh-install.sh
|
||||
state: absent
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- tech.feliciano.pocket-casts
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.getpostman.Postman
|
||||
method: user
|
||||
state: present
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
dependencies:
|
||||
- role: ssh
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
- name: Create project directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ project_directory_item }}"
|
||||
state: directory
|
||||
recurse: yes
|
||||
loop_control:
|
||||
loop_var: project_directory_item
|
||||
with_items: "{{ project_directories | default([]) }}"
|
||||
|
||||
- name: Clone projects
|
||||
ansible.builtin.git:
|
||||
accept_hostkey: yes
|
||||
bare: "{{ project_item.bare | default(true) }}"
|
||||
clone: yes
|
||||
dest: "{{ ansible_user_dir }}/Code/{{ project_item.dest }}"
|
||||
repo: "{{ project_item.repo }}"
|
||||
version: "{{ project_item.version | default('main') }}"
|
||||
update: no
|
||||
loop_control:
|
||||
loop_var: project_item
|
||||
with_items: "{{ project_projects | default([]) }}"
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
- name: Existing install
|
||||
stat:
|
||||
path: "{{ ansible_user_dir }}/.pulumi/bin/pulumi"
|
||||
register: install
|
||||
|
||||
- name: Download installer
|
||||
ansible.builtin.get_url:
|
||||
dest: /tmp/pulumi-install.sh
|
||||
mode: 0755
|
||||
url: https://get.pulumi.com
|
||||
become: true
|
||||
when: not install.stat.exists
|
||||
|
||||
- name: Execute installer
|
||||
ansible.builtin.command: sh /tmp/pulumi-install.sh
|
||||
when: not install.stat.exists
|
||||
|
||||
- name: Remove pulumi-install.sh
|
||||
ansible.builtin.file:
|
||||
path: /tmp/pulumi-install.sh
|
||||
state: absent
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- pv
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- ripgrep
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.skype.Client
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.slack.Slack
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.spotify.Client
|
||||
method: user
|
||||
state: present
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
- name: Copy SSH keys
|
||||
copy:
|
||||
content: "{{ ssh_key_item.value }}"
|
||||
dest: "{{ ansible_user_dir }}/.ssh/{{ ssh_key_item.key }}"
|
||||
mode: 0400
|
||||
loop_control:
|
||||
loop_var: ssh_key_item
|
||||
no_log: true
|
||||
with_items: "{{ ssh_key | default({}) | dict2items }}"
|
||||
|
||||
- name: Create SSH configuration file
|
||||
ansible.builtin.copy:
|
||||
content: "{{ ssh_config }}"
|
||||
dest: "{{ ansible_user_dir }}/.ssh/config"
|
||||
mode: 0400
|
||||
no_log: true
|
||||
when: ssh_config is defined
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
dependencies:
|
||||
- role: cargo
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.cargo:
|
||||
name:
|
||||
- stylua
|
||||
path: /usr/local
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- tldr
|
||||
state: latest
|
||||
become: true
|
|
@ -1,95 +0,0 @@
|
|||
unbind C-b
|
||||
|
||||
set -g prefix C-s
|
||||
bind C-s send-prefix
|
||||
|
||||
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"
|
||||
|
||||
bind-key -n C-h select-pane -L
|
||||
bind-key -n C-j select-pane -D
|
||||
bind-key -n C-k select-pane -U
|
||||
bind-key -n C-l select-pane -R
|
||||
|
||||
set-option -g status-keys "emacs"
|
||||
set-option -g default-terminal "xterm-256color"
|
||||
set-option -ga terminal-overrides ",*256col*:Tc"
|
||||
|
||||
bind-key h split-window -v -c '#{pane_current_path}'
|
||||
bind-key v split-window -h -c '#{pane_current_path}'
|
||||
|
||||
bind -n S-Left resize-pane -L 2
|
||||
bind -n S-Right resize-pane -R 2
|
||||
bind -n S-Down resize-pane -D 1
|
||||
bind -n S-Up resize-pane -U 1
|
||||
|
||||
bind -n C-Left resize-pane -L 10
|
||||
bind -n C-Right resize-pane -R 10
|
||||
bind -n C-Down resize-pane -D 5
|
||||
bind -n C-Up resize-pane -U 5
|
||||
|
||||
set-option -g status-left-length 50
|
||||
set-option -g status-right ""
|
||||
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
|
||||
set -g base-index 1
|
||||
set -g renumber-windows on
|
||||
|
||||
# Break a pane into a new window.
|
||||
bind-key b break-pane -d
|
||||
|
||||
bind-key C-j choose-tree
|
||||
|
||||
# Use vim keybindings in copy mode
|
||||
setw -g mode-keys vi
|
||||
|
||||
# Setup 'v' to begin selection as in Vim
|
||||
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||
bind-key -T copy-mode-vi 'y' send -X copy-pipe "reattach-to-user-namespace pbcopy"
|
||||
|
||||
# Update default binding of `Enter` to also use copy-pipe
|
||||
unbind -T copy-mode-vi Enter
|
||||
bind-key -T copy-mode-vi 'Enter' send -X copy-pipe "reattach-to-user-namespace pbcopy"
|
||||
|
||||
bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t"
|
||||
|
||||
bind-key C-b send-keys 'tat && exit' 'C-m'
|
||||
bind-key K run-shell 'tmux switch-client -n \; kill-session -t "$(tmux display-message -p "#S")" || tmux kill-session'
|
||||
|
||||
# Smart pane switching with awareness of Vim splits.
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
||||
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
|
||||
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
|
||||
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
|
||||
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
|
||||
|
||||
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
||||
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
||||
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
||||
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
||||
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
||||
|
||||
# Allow clearing screen with ctrl-l by using <prefix> C-l
|
||||
bind C-l send-keys 'C-l'
|
||||
bind C-k send-keys 'C-k'
|
||||
|
||||
# Enable mouse support.
|
||||
setw -g mouse on
|
||||
|
||||
# Remove delay when switching Vim modes.
|
||||
set -sg escape-time 0
|
||||
|
||||
# Plugins
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
|
||||
# Initialize TMUX plugin manager
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- tmux
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: Directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ ansible_user_dir }}/.config/tmux"
|
||||
state: directory
|
||||
|
||||
- name: Configuration
|
||||
ansible.builtin.file:
|
||||
src: "{{ role_path }}/files/tmux.conf"
|
||||
dest: "{{ ansible_user_dir }}/.config/tmux/tmux.conf"
|
||||
state: link
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
- name: Dependencies
|
||||
ansible.builtin.package:
|
||||
name: ruby
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: Install
|
||||
community.general.gem:
|
||||
bindir: "{{ ansible_user_dir }}/.local/bin"
|
||||
name: tmuxinator
|
||||
state: latest
|
||||
|
||||
- name: Configuration
|
||||
ansible.builtin.file:
|
||||
path: "{{ ansible_user_dir }}/.config/tmuxinator"
|
||||
state: directory
|
||||
|
||||
- name: Copy configuration files
|
||||
copy:
|
||||
content: "{{ tmuxinator_config_file.value }}"
|
||||
dest: "{{ ansible_user_dir }}/.config/tmuxinator/{{ tmuxinator_config_file.key }}.yml"
|
||||
mode: 0644
|
||||
loop_control:
|
||||
loop_var: tmuxinator_config_file
|
||||
no_log: true
|
||||
with_items: "{{ tmuxinator_config | default({}) | dict2items }}"
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- com.todoist.Todoist
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- tree
|
||||
state: latest
|
||||
become: true
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- org.videolan.VLC
|
||||
method: user
|
||||
state: present
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
community.general.flatpak:
|
||||
name:
|
||||
- us.zoom.Zoom
|
||||
method: user
|
||||
state: present
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
- name: Download
|
||||
get_url:
|
||||
dest: ~/.antigen.zsh
|
||||
url: https://raw.githubusercontent.com/zsh-users/antigen/master/bin/antigen.zsh
|
|
@ -1,7 +0,0 @@
|
|||
export EDITOR=nvim
|
||||
export ZDOTDIR="$HOME/.config/zsh"
|
||||
|
||||
PROMPT_EOL_MARK=''
|
||||
TERM=xterm-256color
|
||||
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
|
||||
ZLE_REMOVE_SUFFIX_CHARS=''
|
|
@ -1,28 +0,0 @@
|
|||
for function in $ZDOTDIR/functions/*; do
|
||||
source "${function}"
|
||||
done
|
||||
|
||||
sources=(
|
||||
'aliases'
|
||||
'colour'
|
||||
'functions'
|
||||
'fzf'
|
||||
'general'
|
||||
'history'
|
||||
'navigation'
|
||||
'nvm'
|
||||
'options'
|
||||
'path'
|
||||
'platformsh'
|
||||
'plugins'
|
||||
'prompt'
|
||||
|
||||
'post/completion'
|
||||
)
|
||||
|
||||
for s in "${sources[@]}"; do
|
||||
source $ZDOTDIR/configs/${s}.zsh
|
||||
done
|
||||
|
||||
# Local config
|
||||
[[ -f ~/.zshrc.local ]] && source ~/.zshrc.local
|
|
@ -1,3 +0,0 @@
|
|||
#compdef g
|
||||
compdef g=git
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
#compdef m
|
||||
compdef m=make
|
|
@ -1,11 +0,0 @@
|
|||
alias hosts='sudo vim /etc/hosts'
|
||||
alias rebase='git fetch --all --prune --prune-tags && git rebase'
|
||||
alias sshconfig='vim ~/.ssh/config'
|
||||
alias vim='nvim'
|
||||
|
||||
# Allow for pasting lines of code that start with a dollar sign.
|
||||
alias \$=''
|
||||
|
||||
# Re-implement pbcopy and pbpaste from macOS.
|
||||
alias pbcopy="xclip -selection clipboard"
|
||||
alias pbpaste="xclip -selection clipboard -o"
|
|
@ -1,4 +0,0 @@
|
|||
autoload -U colors
|
||||
colors
|
||||
|
||||
export CLICOLOR=1
|
|
@ -1,38 +0,0 @@
|
|||
function m() {
|
||||
if [[ -f .notes/Makefile ]];
|
||||
then
|
||||
make -f .notes/Makefile "$@"
|
||||
else
|
||||
make "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
function mkd() {
|
||||
mkdir -p "$@" && cd "$@"
|
||||
}
|
||||
|
||||
function composer() {
|
||||
docker run -u $UID -it --rm \
|
||||
-v $(pwd):/app \
|
||||
-v ~/.composer:/root/.composer \
|
||||
-v ~/.ssh:/root/.ssh \
|
||||
composer \
|
||||
composer $*
|
||||
}
|
||||
|
||||
# Run 'phpunit' or 'pest' depending on the project.
|
||||
function p () {
|
||||
vendor/bin/$(phpunit-or-pest) $*;
|
||||
}
|
||||
function pf () {
|
||||
vendor/bin/$(phpunit-or-pest) --filter $*
|
||||
}
|
||||
|
||||
nv() {
|
||||
if [[ $# > 0 ]];
|
||||
then
|
||||
nvim $@
|
||||
else
|
||||
nvim .
|
||||
fi
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
# Include keybindings for fzf.
|
||||
. /usr/share/doc/fzf/examples/key-bindings.zsh
|
|
@ -1,5 +0,0 @@
|
|||
precmd() {
|
||||
# Add a blank line before each command.
|
||||
print ''
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
setopt histignoredups
|
||||
|
||||
setopt inc_append_history
|
||||
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
HISTFILE=~/.cache/zsh/history
|
|
@ -1,9 +0,0 @@
|
|||
bindkey -s "^f" "tmux-sessioniser\n"
|
||||
|
||||
# Search through history with the up and down arrows.
|
||||
autoload -U up-line-or-beginning-search
|
||||
autoload -U down-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search # Up
|
||||
bindkey "${terminfo[kcud1]}" up-line-or-beginning-search # Down
|
|
@ -1,2 +0,0 @@
|
|||
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
@ -1,3 +0,0 @@
|
|||
# Fix "zsh: no matches found: HEAD^" error.
|
||||
# See https://github.com/opdavies/dotfiles/issues/14.
|
||||
setopt NO_NOMATCH
|
|
@ -1,25 +0,0 @@
|
|||
setopt auto_cd
|
||||
|
||||
export PATH=\
|
||||
$PATH:\
|
||||
/usr/bin:\
|
||||
$HOME/.cargo/bin:\
|
||||
$HOME/.composer/vendor/bin:\
|
||||
$HOME/.dotfiles/bin:\
|
||||
$HOME/.dotfiles/bin/bin:\
|
||||
$HOME/.local/bin:\
|
||||
$HOME/.platformsh/bin:\
|
||||
$HOME/.pulumi/bin:\
|
||||
$HOME/bin:\
|
||||
$HOME/snap/bin:\
|
||||
bin:\
|
||||
node_modules/.bin:\
|
||||
tools/php-cs-fixer/vendor/bin:\
|
||||
vendor/bin
|
||||
|
||||
export CDPATH=\
|
||||
./:\
|
||||
$HOME/Code:\
|
||||
$HOME/Code/clients:\
|
||||
$HOME/Code/open_source:\
|
||||
$HOME
|
|
@ -1,6 +0,0 @@
|
|||
# Platform.sh CLI configuration.
|
||||
export PATH="$HOME/"'.platformsh/bin':"$PATH"
|
||||
|
||||
if [ -f "$HOME/"'.platformsh/shell-config.rc' ]; then
|
||||
. "$HOME/"'.platformsh/shell-config.rc';
|
||||
fi
|
|
@ -1,10 +0,0 @@
|
|||
# antigen.zsh has been downloaded manually for now,
|
||||
# see https://github.com/zsh-users/antigen/issues/659.
|
||||
source $HOME/.antigen.zsh
|
||||
|
||||
antigen bundle mollifier/cd-gitroot
|
||||
antigen bundle zsh-users/zsh-autosuggestions
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||
|
||||
antigen apply
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
# load our own completion functions
|
||||
fpath=(~/.config/zsh/completion-scripts $fpath)
|
||||
|
||||
autoload -Uz compinit && compinit
|
||||
|
||||
## case-insensitive (all), partial-word and then substring completion
|
||||
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' \
|
||||
'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
@ -1,34 +0,0 @@
|
|||
autoload -Uz colors && colors
|
||||
|
||||
prompt_color() {
|
||||
[[ -n "$1" ]] && print "%{$fg_bold[$2]%}$1%{$reset_color%}"
|
||||
}
|
||||
|
||||
prompt_blue() { print "$(prompt_color "$1" blue)" }
|
||||
prompt_green() { print "$(prompt_color "$1" green)" }
|
||||
prompt_red() { print "$(prompt_color "$1" red)" }
|
||||
prompt_yellow() { print "$(prompt_color "$1" yellow)" }
|
||||
|
||||
prompt_full_path() {
|
||||
print "$(prompt_blue %~)"
|
||||
}
|
||||
|
||||
prompt_shortened_path() {
|
||||
print "$(prompt_blue %2~)"
|
||||
}
|
||||
|
||||
prompt_git_branch() {
|
||||
local branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d'/' -f3)"
|
||||
|
||||
[ -n "${branch}" ] && print "$(prompt_green $branch)"
|
||||
}
|
||||
|
||||
prompt_git_commit() {
|
||||
local commit_sha="$(git rev-parse --short HEAD 2> /dev/null)"
|
||||
|
||||
[ -n "${commit_sha}" ] && echo [$(prompt_yellow $commit_sha)]
|
||||
}
|
||||
|
||||
setopt prompt_subst
|
||||
|
||||
PROMPT='$(prompt_shortened_path) $(prompt_git_branch) $(prompt_git_commit) $ '
|
|
@ -1,9 +0,0 @@
|
|||
# No arguments: `git status`
|
||||
# With arguments: acts like `git`
|
||||
g() {
|
||||
if [[ $# -gt 0 ]]; then
|
||||
git "$@"
|
||||
else
|
||||
git status
|
||||
fi
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
# Execute a "run" file either within ".notes" or the current directory.
|
||||
function run {
|
||||
if [[ -f .notes/run ]]; then
|
||||
.notes/run "${@}"
|
||||
elif [[ -f run ]]; then
|
||||
./run "${@}"
|
||||
fi
|
||||
}
|
|
@ -1,281 +0,0 @@
|
|||
# The git prompt's git commands are read-only and should not interfere with
|
||||
# other processes. This environment variable is equivalent to running with `git
|
||||
# --no-optional-locks`, but falls back gracefully for older versions of git.
|
||||
# See git(1) for and git-status(1) for a description of that flag.
|
||||
#
|
||||
# We wrap in a local function instead of exporting the variable directly in
|
||||
# order to avoid interfering with manually-run git commands by the user.
|
||||
function __git_prompt_git() {
|
||||
GIT_OPTIONAL_LOCKS=0 command git "$@"
|
||||
}
|
||||
|
||||
function git_prompt_info() {
|
||||
# If we are on a folder not tracked by git, get out.
|
||||
# Otherwise, check for hide-info at global and local repository level
|
||||
if ! __git_prompt_git rev-parse --git-dir &> /dev/null \
|
||||
|| [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
local ref
|
||||
ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \
|
||||
|| ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) \
|
||||
|| return 0
|
||||
|
||||
# Use global ZSH_THEME_GIT_SHOW_UPSTREAM=1 for including upstream remote info
|
||||
local upstream
|
||||
if (( ${+ZSH_THEME_GIT_SHOW_UPSTREAM} )); then
|
||||
upstream=$(__git_prompt_git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) \
|
||||
&& upstream=" -> ${upstream}"
|
||||
fi
|
||||
|
||||
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
|
||||
}
|
||||
|
||||
# Checks if working tree is dirty
|
||||
function parse_git_dirty() {
|
||||
local STATUS
|
||||
local -a FLAGS
|
||||
FLAGS=('--porcelain')
|
||||
if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
|
||||
if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]]; then
|
||||
FLAGS+='--untracked-files=no'
|
||||
fi
|
||||
case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in
|
||||
git)
|
||||
# let git decide (this respects per-repo config in .gitmodules)
|
||||
;;
|
||||
*)
|
||||
# if unset: ignore dirty submodules
|
||||
# other values are passed to --ignore-submodules
|
||||
FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
|
||||
;;
|
||||
esac
|
||||
STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1)
|
||||
fi
|
||||
if [[ -n $STATUS ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||
else
|
||||
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
fi
|
||||
}
|
||||
|
||||
# Gets the difference between the local and remote branches
|
||||
function git_remote_status() {
|
||||
local remote ahead behind git_remote_status git_remote_status_detailed
|
||||
remote=${$(__git_prompt_git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
|
||||
if [[ -n ${remote} ]]; then
|
||||
ahead=$(__git_prompt_git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
|
||||
behind=$(__git_prompt_git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
|
||||
|
||||
if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
|
||||
elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}"
|
||||
elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
|
||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
|
||||
elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
|
||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
|
||||
fi
|
||||
|
||||
if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then
|
||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX${remote:gs/%/%%}$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
|
||||
fi
|
||||
|
||||
echo $git_remote_status
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs the name of the current branch
|
||||
# Usage example: git pull origin $(git_current_branch)
|
||||
# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if
|
||||
# it's not a symbolic ref, but in a Git repo.
|
||||
function git_current_branch() {
|
||||
local ref
|
||||
ref=$(__git_prompt_git symbolic-ref --quiet HEAD 2> /dev/null)
|
||||
local ret=$?
|
||||
if [[ $ret != 0 ]]; then
|
||||
[[ $ret == 128 ]] && return # no git repo.
|
||||
ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return
|
||||
fi
|
||||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
|
||||
# Gets the number of commits ahead from remote
|
||||
function git_commits_ahead() {
|
||||
if __git_prompt_git rev-parse --git-dir &>/dev/null; then
|
||||
local commits="$(__git_prompt_git rev-list --count @{upstream}..HEAD 2>/dev/null)"
|
||||
if [[ -n "$commits" && "$commits" != 0 ]]; then
|
||||
echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Gets the number of commits behind remote
|
||||
function git_commits_behind() {
|
||||
if __git_prompt_git rev-parse --git-dir &>/dev/null; then
|
||||
local commits="$(__git_prompt_git rev-list --count HEAD..@{upstream} 2>/dev/null)"
|
||||
if [[ -n "$commits" && "$commits" != 0 ]]; then
|
||||
echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs if current branch is ahead of remote
|
||||
function git_prompt_ahead() {
|
||||
if [[ -n "$(__git_prompt_git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs if current branch is behind remote
|
||||
function git_prompt_behind() {
|
||||
if [[ -n "$(__git_prompt_git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_BEHIND"
|
||||
fi
|
||||
}
|
||||
|
||||
# Outputs if current branch exists on remote or not
|
||||
function git_prompt_remote() {
|
||||
if [[ -n "$(__git_prompt_git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]; then
|
||||
echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS"
|
||||
else
|
||||
echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING"
|
||||
fi
|
||||
}
|
||||
|
||||
# Formats prompt string for current git commit short SHA
|
||||
function git_prompt_short_sha() {
|
||||
local SHA
|
||||
SHA=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||
}
|
||||
|
||||
# Formats prompt string for current git commit long SHA
|
||||
function git_prompt_long_sha() {
|
||||
local SHA
|
||||
SHA=$(__git_prompt_git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||
}
|
||||
|
||||
function git_prompt_status() {
|
||||
[[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]] && return
|
||||
|
||||
# Maps a git status prefix to an internal constant
|
||||
# This cannot use the prompt constants, as they may be empty
|
||||
local -A prefix_constant_map
|
||||
prefix_constant_map=(
|
||||
'\?\? ' 'UNTRACKED'
|
||||
'A ' 'ADDED'
|
||||
'M ' 'ADDED'
|
||||
'MM ' 'MODIFIED'
|
||||
' M ' 'MODIFIED'
|
||||
'AM ' 'MODIFIED'
|
||||
' T ' 'MODIFIED'
|
||||
'R ' 'RENAMED'
|
||||
' D ' 'DELETED'
|
||||
'D ' 'DELETED'
|
||||
'UU ' 'UNMERGED'
|
||||
'ahead' 'AHEAD'
|
||||
'behind' 'BEHIND'
|
||||
'diverged' 'DIVERGED'
|
||||
'stashed' 'STASHED'
|
||||
)
|
||||
|
||||
# Maps the internal constant to the prompt theme
|
||||
local -A constant_prompt_map
|
||||
constant_prompt_map=(
|
||||
'UNTRACKED' "$ZSH_THEME_GIT_PROMPT_UNTRACKED"
|
||||
'ADDED' "$ZSH_THEME_GIT_PROMPT_ADDED"
|
||||
'MODIFIED' "$ZSH_THEME_GIT_PROMPT_MODIFIED"
|
||||
'RENAMED' "$ZSH_THEME_GIT_PROMPT_RENAMED"
|
||||
'DELETED' "$ZSH_THEME_GIT_PROMPT_DELETED"
|
||||
'UNMERGED' "$ZSH_THEME_GIT_PROMPT_UNMERGED"
|
||||
'AHEAD' "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
||||
'BEHIND' "$ZSH_THEME_GIT_PROMPT_BEHIND"
|
||||
'DIVERGED' "$ZSH_THEME_GIT_PROMPT_DIVERGED"
|
||||
'STASHED' "$ZSH_THEME_GIT_PROMPT_STASHED"
|
||||
)
|
||||
|
||||
# The order that the prompt displays should be added to the prompt
|
||||
local status_constants
|
||||
status_constants=(
|
||||
UNTRACKED ADDED MODIFIED RENAMED DELETED
|
||||
STASHED UNMERGED AHEAD BEHIND DIVERGED
|
||||
)
|
||||
|
||||
local status_text
|
||||
status_text="$(__git_prompt_git status --porcelain -b 2> /dev/null)"
|
||||
|
||||
# Don't continue on a catastrophic failure
|
||||
if [[ $? -eq 128 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# A lookup table of each git status encountered
|
||||
local -A statuses_seen
|
||||
|
||||
if __git_prompt_git rev-parse --verify refs/stash &>/dev/null; then
|
||||
statuses_seen[STASHED]=1
|
||||
fi
|
||||
|
||||
local status_lines
|
||||
status_lines=("${(@f)${status_text}}")
|
||||
|
||||
# If the tracking line exists, get and parse it
|
||||
if [[ "$status_lines[1]" =~ "^## [^ ]+ \[(.*)\]" ]]; then
|
||||
local branch_statuses
|
||||
branch_statuses=("${(@s/,/)match}")
|
||||
for branch_status in $branch_statuses; do
|
||||
if [[ ! $branch_status =~ "(behind|diverged|ahead) ([0-9]+)?" ]]; then
|
||||
continue
|
||||
fi
|
||||
local last_parsed_status=$prefix_constant_map[$match[1]]
|
||||
statuses_seen[$last_parsed_status]=$match[2]
|
||||
done
|
||||
fi
|
||||
|
||||
# For each status prefix, do a regex comparison
|
||||
for status_prefix in ${(k)prefix_constant_map}; do
|
||||
local status_constant="${prefix_constant_map[$status_prefix]}"
|
||||
local status_regex=$'(^|\n)'"$status_prefix"
|
||||
|
||||
if [[ "$status_text" =~ $status_regex ]]; then
|
||||
statuses_seen[$status_constant]=1
|
||||
fi
|
||||
done
|
||||
|
||||
# Display the seen statuses in the order specified
|
||||
local status_prompt
|
||||
for status_constant in $status_constants; do
|
||||
if (( ${+statuses_seen[$status_constant]} )); then
|
||||
local next_display=$constant_prompt_map[$status_constant]
|
||||
status_prompt="$next_display$status_prompt"
|
||||
fi
|
||||
done
|
||||
|
||||
echo $status_prompt
|
||||
}
|
||||
|
||||
# Outputs the name of the current user
|
||||
# Usage example: $(git_current_user_name)
|
||||
function git_current_user_name() {
|
||||
__git_prompt_git config user.name 2>/dev/null
|
||||
}
|
||||
|
||||
# Outputs the email of the current user
|
||||
# Usage example: $(git_current_user_email)
|
||||
function git_current_user_email() {
|
||||
__git_prompt_git config user.email 2>/dev/null
|
||||
}
|
||||
|
||||
# Output the name of the root directory of the git repository
|
||||
# Usage example: $(git_repo_name)
|
||||
function git_repo_name() {
|
||||
local repo_path
|
||||
if repo_path="$(__git_prompt_git rev-parse --show-toplevel 2>/dev/null)" && [[ -n "$repo_path" ]]; then
|
||||
echo ${repo_path:t}
|
||||
fi
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
- name: Install
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- zsh
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: Set default
|
||||
user:
|
||||
name: "{{ ansible_env['USER'] }}"
|
||||
shell: /usr/bin/zsh
|
||||
become: yes
|
||||
|
||||
- name: Configuration
|
||||
ansible.builtin.file:
|
||||
src: "{{ role_path }}/files/{{ zsh_config_item.src }}"
|
||||
path: "{{ zsh_config_item.path }}"
|
||||
state: link
|
||||
loop_control:
|
||||
loop_var: zsh_config_item
|
||||
with_items:
|
||||
- { src: config, path: "{{ ansible_user_dir }}/.config/zsh" }
|
||||
- { src: .zshenv, path: "{{ ansible_user_dir }}/.zshenv" }
|
||||
|
||||
- name: Delete old files
|
||||
ansible.builtin.file:
|
||||
path: "{{ old_files_item }}"
|
||||
state: absent
|
||||
loop_control:
|
||||
loop_var: old_files_item
|
||||
with_items:
|
||||
- "{{ ansible_user_dir }}/.zsh"
|
||||
- "{{ ansible_user_dir }}/.zshrc"
|
Loading…
Reference in a new issue