Compare commits
37 Commits
8064928ba4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b35293a9f0 | ||
|
|
4ee18f77e0 | ||
|
|
42b3c7d306 | ||
|
|
b1885f5463 | ||
|
|
db6a8c0de2 | ||
|
|
d0b359d475 | ||
|
|
97ed53041c | ||
|
|
59a00dbb6e | ||
|
|
84741f68ed | ||
|
|
36635268be | ||
|
|
cc5e1a21e3 | ||
|
|
558efec514 | ||
|
|
b789f4afe9 | ||
|
|
a3a021ee18 | ||
|
|
3c76055b05 | ||
|
|
f4e8efeb8f | ||
|
|
6aef629cc2 | ||
|
|
d80bca7f00 | ||
|
|
ab11fc8566 | ||
|
|
516f5cd88a | ||
|
|
866eed3a57 | ||
|
|
3438d019a9 | ||
|
|
108c9cefd7 | ||
|
|
766e6808b5 | ||
|
|
c84c63b0b8 | ||
|
|
56a36622c1 | ||
|
|
5715fd5577 | ||
|
|
25384cbd95 | ||
|
|
0cb372ee42 | ||
|
|
879f3fb0bf | ||
|
|
9b34237c99 | ||
|
|
185d2e20b5 | ||
|
|
44efe712fe | ||
|
|
c6e19f8633 | ||
|
|
f0f6f560c6 | ||
|
|
8fc1c62462 | ||
|
|
13a20f7783 |
31
.aider.conf.yml
Normal file
31
.aider.conf.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
#############
|
||||
# Main model:
|
||||
|
||||
## Specify the model to use for the main chat
|
||||
# model: oca/gpt5
|
||||
model: oca/gpt-5.1-codex
|
||||
|
||||
|
||||
## Enable/disable automatic acceptance of architect changes (default: True)
|
||||
#auto-accept-architect: true
|
||||
|
||||
weak-model: oca/llama4
|
||||
|
||||
##################
|
||||
# Output settings:
|
||||
|
||||
## Use colors suitable for a dark terminal background (default: False)
|
||||
dark-mode: true
|
||||
|
||||
## Enable/disable auto commit of LLM changes (default: True)
|
||||
auto-commits: false
|
||||
|
||||
|
||||
############
|
||||
# Analytics:
|
||||
|
||||
## Enable/disable analytics for current session (default: random)
|
||||
analytics: false
|
||||
|
||||
## Permanently disable analytics
|
||||
analytics-disable: true
|
||||
80
.codex/config.toml
Normal file
80
.codex/config.toml
Normal file
@@ -0,0 +1,80 @@
|
||||
# doc: https://developers.openai.com/codex/config-advanced
|
||||
# https://developers.openai.com/codex/config-reference
|
||||
approval_policy = "on-failure"
|
||||
preferred_auth_method = "apikey"
|
||||
# model = "oca/gpt-5-codex"
|
||||
# profile = "gpt-5-codex"
|
||||
# model = "oca/gpt-5.1-codex"
|
||||
# profile = "gpt-5-1-codex"
|
||||
|
||||
model = "oca/gpt-5.1-codex-mini"
|
||||
profile = "gpt-5-1-codex-mini"
|
||||
|
||||
|
||||
|
||||
web_search_request = true
|
||||
trust_level = "trusted"
|
||||
|
||||
sandbox_mode = "workspace-write"
|
||||
[sandbox_workspace_write]
|
||||
network_access = true
|
||||
writable_roots = [ "/Users/jetpac/.codex/skills" ]
|
||||
|
||||
[analytics]
|
||||
enabled = false
|
||||
[model_providers.oca-responses]
|
||||
base_url = "https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm"
|
||||
http_headers = { "client" = "codex-cli", "client-version" = "0" }
|
||||
model = "oca/gpt5"
|
||||
name = "Oracle Code Assist Responses"
|
||||
wire_api = "responses"
|
||||
[model_providers.oca-chat]
|
||||
base_url = "https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm"
|
||||
http_headers = { "client" = "codex-cli", "client-version" = "0" }
|
||||
model = "oca/gpt5"
|
||||
name = "Oracle Code Assist Chat"
|
||||
wire_api = "responses"
|
||||
[profiles.grok-4]
|
||||
model = "oca/grok4"
|
||||
model_provider = "oca-chat"
|
||||
review_model = "oca/grok4"
|
||||
[profiles.grok-4-fast-reasoning]
|
||||
model = "oca/grok4-fast-reasoning"
|
||||
model_provider = "oca-chat"
|
||||
review_model = "oca/grok4-fast-reasoning"
|
||||
[profiles.grok-code-fast-1]
|
||||
model = "oca/grok-code-fast-1"
|
||||
model_provider = "oca-chat"
|
||||
review_model = "oca/grok-code-fast-1"
|
||||
[profiles.gpt-4-1]
|
||||
model = "oca/gpt-4.1"
|
||||
model_provider = "oca-chat"
|
||||
review_model = "oca/gpt-4.1"
|
||||
[profiles.gpt-5]
|
||||
model = "oca/gpt5"
|
||||
model_provider = "oca-responses"
|
||||
review_model = "oca/gpt5"
|
||||
[profiles.gpt-5-1]
|
||||
model = "oca/gpt-5.1"
|
||||
model_provider = "oca-chat"
|
||||
review_model = "oca/gpt-5.1"
|
||||
[profiles.gpt-5-2]
|
||||
model = "oca/gpt-5.2"
|
||||
model_provider = "oca-responses"
|
||||
review_model = "oca/gpt-5.2"
|
||||
[profiles.gpt-5-codex]
|
||||
model = "oca/gpt-5-codex"
|
||||
model_provider = "oca-responses"
|
||||
review_model = "oca/gpt-5-codex"
|
||||
personality = "pragmatic"
|
||||
[profiles.gpt-5-1-codex]
|
||||
model = "oca/gpt-5.1-codex"
|
||||
model_provider = "oca-responses"
|
||||
review_model = "oca/gpt-5.1-codex"
|
||||
personality = "pragmatic"
|
||||
model_reasoning_effort = "high"
|
||||
[profiles.gpt-5-1-codex-mini]
|
||||
model = "oca/gpt-5.1-codex-mini"
|
||||
model_provider = "oca-responses"
|
||||
review_model = "oca/gpt-5.1-codex-mini"
|
||||
personality = "pragmatic"
|
||||
@@ -68,6 +68,171 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Hyper Deletion",
|
||||
"manipulators": [
|
||||
{
|
||||
"description": "option + n = delete whole line",
|
||||
"from": {
|
||||
"key_code": "n",
|
||||
"modifiers": { "mandatory": ["left_option", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "delete_or_backspace",
|
||||
"modifiers": ["left_command"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "option + m = move line down",
|
||||
"from": {
|
||||
"key_code": "m",
|
||||
"modifiers": { "mandatory": ["left_option", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "down_arrow",
|
||||
"modifiers": ["left_option", "left_shift"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "option + , = move line up",
|
||||
"from": {
|
||||
"key_code": "comma",
|
||||
"modifiers": { "mandatory": ["left_option", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "up_arrow",
|
||||
"modifiers": ["left_option", "left_shift"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "option + . = delete whole line",
|
||||
"from": {
|
||||
"key_code": "period",
|
||||
"modifiers": { "mandatory": ["left_option", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "delete_or_backspace",
|
||||
"modifiers": ["left_command"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "command + n = delete whole line",
|
||||
"from": {
|
||||
"key_code": "n",
|
||||
"modifiers": { "mandatory": ["left_command", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "left_arrow",
|
||||
"modifiers": ["left_shift", "left_command"]
|
||||
},
|
||||
{ "key_code": "delete_or_backspace" }
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "command + m = delete word ahead",
|
||||
"from": {
|
||||
"key_code": "m",
|
||||
"modifiers": { "mandatory": ["left_command", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "delete_or_backspace",
|
||||
"modifiers": ["left_option"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "command + , = delete word after",
|
||||
"from": {
|
||||
"key_code": "comma",
|
||||
"modifiers": { "mandatory": ["left_command", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "delete_forward",
|
||||
"modifiers": ["left_option"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "command + . = delete whole line",
|
||||
"from": {
|
||||
"key_code": "period",
|
||||
"modifiers": { "mandatory": ["left_command", "right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "right_arrow",
|
||||
"modifiers": ["left_shift", "left_command"]
|
||||
},
|
||||
{ "key_code": "delete_or_backspace" }
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "n = delete a word ahead",
|
||||
"from": {
|
||||
"key_code": "n",
|
||||
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "delete_or_backspace",
|
||||
"modifiers": ["left_option"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": "m = delete a char ahead",
|
||||
"from": {
|
||||
"key_code": "m",
|
||||
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [{ "key_code": "delete_or_backspace" }],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": ", = delete a char after",
|
||||
"from": {
|
||||
"key_code": "comma",
|
||||
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [{ "key_code": "delete_forward" }],
|
||||
"type": "basic"
|
||||
},
|
||||
{
|
||||
"description": ". = delete a word after",
|
||||
"from": {
|
||||
"key_code": "period",
|
||||
"modifiers": { "mandatory": ["right_command", "right_control", "right_shift", "right_option"] }
|
||||
},
|
||||
"to": [
|
||||
{
|
||||
"key_code": "delete_forward",
|
||||
"modifiers": ["left_option"]
|
||||
}
|
||||
],
|
||||
"type": "basic"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Hyper Navigation",
|
||||
"manipulators": [
|
||||
@@ -2327,12 +2492,29 @@
|
||||
"to": [{ "key_code": "left_command" }]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifiers": {
|
||||
"is_keyboard": true,
|
||||
"product_id": 833,
|
||||
"vendor_id": 1452
|
||||
},
|
||||
"simple_modifications": [
|
||||
{
|
||||
"from": { "key_code": "grave_accent_and_tilde" },
|
||||
"to": [{ "key_code": "non_us_backslash" }]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "Default profile",
|
||||
"selected": true,
|
||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||
},
|
||||
{ "name": "test profile" }
|
||||
{ "name": "test profile" },
|
||||
{
|
||||
"name": "New profile",
|
||||
"virtual_hid_keyboard": { "keyboard_type_v2": "iso" }
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -85,10 +85,11 @@ editor_stop_format_chars=-+*\\,.;:&>
|
||||
mcview_eof=
|
||||
skin=solarized-dark-256color
|
||||
shell_directory_timeout=900
|
||||
filepos_max_saved_entries=1024
|
||||
|
||||
[Layout]
|
||||
output_lines=0
|
||||
left_panel_size=67
|
||||
left_panel_size=86
|
||||
top_panel_size=0
|
||||
message_visible=true
|
||||
keybar_visible=true
|
||||
@@ -118,6 +119,8 @@ color_terminals=
|
||||
alacritty=
|
||||
xterm=
|
||||
rxvt-256color=
|
||||
screen-256color=
|
||||
xterm-24bit=
|
||||
|
||||
[Panels]
|
||||
show_mini_info=true
|
||||
@@ -143,7 +146,7 @@ select_flags=6
|
||||
simple_swap=false
|
||||
|
||||
[Panelize]
|
||||
Modified git files=git ls-files --modified
|
||||
Find rejects after patching=find . -name \\*.rej -print
|
||||
Find *.orig after patching=find . -name \\*.orig -print
|
||||
Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
|
||||
Find rejects after patching=find . -name \\*.rej -print
|
||||
Modified git files=git ls-files --modified
|
||||
|
||||
@@ -47,3 +47,5 @@
|
||||
autoupdate = true
|
||||
; [color]
|
||||
; ui = auto
|
||||
[http]
|
||||
sslVerify = false
|
||||
|
||||
2
.mailcap
Normal file
2
.mailcap
Normal file
@@ -0,0 +1,2 @@
|
||||
# inspiration here: https://emacs.stackexchange.com/questions/63436/is-there-some-way-to-view-the-html-part-of-an-email-in-an-external-browser-or-as
|
||||
text/html; open %s; nametemplate=%s.html
|
||||
82
.notmuch-config
Normal file
82
.notmuch-config
Normal file
@@ -0,0 +1,82 @@
|
||||
# .notmuch-config - Configuration file for the notmuch mail system
|
||||
#
|
||||
# For more information about notmuch, see https://notmuchmail.org
|
||||
# Database configuration
|
||||
#
|
||||
# Supported values are 'mail_root' and 'path'. The recommended option
|
||||
# is to set 'mail_root' to the directory where your mail currently exists
|
||||
# and to where mail will be delivered in the future. Files should be
|
||||
# individual email messages. By default notmuch will store its database
|
||||
# in $XDG_DATA_HOME/notmuch; you can override this by setting 'path'.
|
||||
# If only 'path' is set, this directory is for 'mail_root' and for
|
||||
# the database location (in a subdirectory called ".notmuch").
|
||||
#
|
||||
[database]
|
||||
path=/Users/jetpac/.mail
|
||||
# User configuration
|
||||
#
|
||||
# Here is where you can let notmuch know how you would like to be
|
||||
# addressed. Valid settings are
|
||||
#
|
||||
# name Your full name.
|
||||
# primary_email Your primary email address.
|
||||
# other_email A list (separated by ';') of other email addresses
|
||||
# at which you receive email.
|
||||
#
|
||||
# Notmuch will use the various email addresses configured here when
|
||||
# formatting replies. It will avoid including your own addresses in the
|
||||
# recipient list of replies, and will set the From address based on the
|
||||
# address to which the original email was addressed.
|
||||
#
|
||||
[user]
|
||||
primary_email=petr.nyc@oracle.com
|
||||
# Configuration for "notmuch new"
|
||||
#
|
||||
# The following options are supported here:
|
||||
#
|
||||
# tags A list (separated by ';') of the tags that will be
|
||||
# added to all messages incorporated by "notmuch new".
|
||||
#
|
||||
# ignore A list (separated by ';') of file and directory names
|
||||
# that will not be searched for messages by "notmuch new".
|
||||
#
|
||||
# NOTE: *Every* file/directory that goes by one of those
|
||||
# names will be ignored, independent of its depth/location
|
||||
# in the mail store.
|
||||
#
|
||||
[new]
|
||||
ignore=.mbsyncstate;.uidvalidity;
|
||||
tags=unread;inbox;new
|
||||
# Search configuration
|
||||
#
|
||||
# The following option is supported here:
|
||||
#
|
||||
# exclude_tags
|
||||
# A ;-separated list of tags that will be excluded from
|
||||
# search results by default. Using an excluded tag in a
|
||||
# query will override that exclusion.
|
||||
#
|
||||
[search]
|
||||
# Maildir compatibility configuration
|
||||
#
|
||||
# The following option is supported here:
|
||||
#
|
||||
# synchronize_flags Valid values are true and false.
|
||||
synchronize_flags=true
|
||||
#
|
||||
# If true, then the following maildir flags (in message filenames)
|
||||
# will be synchronized with the corresponding notmuch tags:
|
||||
#
|
||||
# Flag Tag
|
||||
# ---- -------
|
||||
# D draft
|
||||
# F flagged
|
||||
# P passed
|
||||
# R replied
|
||||
# S unread (added when 'S' flag is not present)
|
||||
#
|
||||
# The "notmuch new" command will notice flag changes in filenames
|
||||
# and update tags, while the "notmuch tag" and "notmuch restore"
|
||||
# commands will notice tag changes and update flags in filenames
|
||||
#
|
||||
[maildir]
|
||||
@@ -104,11 +104,12 @@
|
||||
timewarrior # timewarrior tracking status (https://timewarrior.net/)
|
||||
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
|
||||
cpu_arch # CPU architecture
|
||||
battery
|
||||
time # current time
|
||||
# =========================[ Line #2 ]=========================
|
||||
newline
|
||||
# ip # ip address and bandwidth usage for a specified network interface
|
||||
public_ip # public IP address
|
||||
# public_ip # public IP address
|
||||
proxy # system-wide http/https/ftp proxy
|
||||
# battery # internal battery
|
||||
# wifi # wifi speed
|
||||
@@ -553,7 +554,7 @@
|
||||
|
||||
#######################[ background_jobs: presence of background jobs ]#######################
|
||||
# Don't show the number of background jobs.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=true
|
||||
# Background jobs color.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70
|
||||
# Custom icon.
|
||||
@@ -1536,7 +1537,7 @@
|
||||
# Battery pictograms going from low to high level of charge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_STAGES='\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'
|
||||
# Don't show the remaining time to charge/discharge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
|
||||
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=true
|
||||
|
||||
#####################################[ wifi: wifi speed ]#####################################
|
||||
# WiFi color.
|
||||
|
||||
814
.spacemacs
814
.spacemacs
@@ -32,13 +32,28 @@ This function should only modify configuration layer settings."
|
||||
|
||||
;; List of configuration layers to load.
|
||||
dotspacemacs-configuration-layers
|
||||
'(swift
|
||||
'(windows-scripts
|
||||
swift
|
||||
multiple-cursors ;; https://www.spacemacs.org/layers/+misc/multiple-cursors/README.html#key-bindings
|
||||
(aider :variables
|
||||
aidermacs-default-chat-mode 'architect
|
||||
aidermacs-default-model "oca/gpt5"
|
||||
aidermacs-backend 'vterm ;; Highly recommended for Spacemacs/Mac users over comint
|
||||
aidermacs-program "/opt/homebrew/bin/ocaider"
|
||||
aidermacs-extra-args '("--watch-files")
|
||||
)
|
||||
|
||||
shell
|
||||
yaml
|
||||
notmuch
|
||||
themes-megapack
|
||||
nginx
|
||||
toml
|
||||
html
|
||||
python
|
||||
(python :variables
|
||||
python-backend 'lsp
|
||||
python-lsp-server 'pyright
|
||||
)
|
||||
javascript
|
||||
pandoc
|
||||
;; ----------------------------------------------------------------
|
||||
@@ -46,7 +61,6 @@ This function should only modify configuration layer settings."
|
||||
;; Uncomment some layer names and press `SPC f e R' (Vim style) or
|
||||
;; `M-m f e R' (Emacs style) to install them.
|
||||
;; ----------------------------------------------------------------
|
||||
auto-completion
|
||||
(auto-completion :variables
|
||||
auto-completion-enable-snippets-in-popup t
|
||||
auto-completion-enable-help-tooltip t
|
||||
@@ -58,11 +72,11 @@ This function should only modify configuration layer settings."
|
||||
helm
|
||||
lsp
|
||||
markdown
|
||||
multiple-cursors
|
||||
org
|
||||
(org :variables
|
||||
org-enable-bootstrap-support t
|
||||
org-enable-jira-support t
|
||||
jiralib-url "https://jira.oci.oraclecorp.com"
|
||||
jiralib-target-api-version 2
|
||||
;; org-enable-roam-support t
|
||||
;; org-enable-roam-ui t
|
||||
;; org-roam-completion-everywhere t
|
||||
@@ -72,12 +86,14 @@ This function should only modify configuration layer settings."
|
||||
;; (shell :variables
|
||||
;; shell-default-height 30
|
||||
;; shell-default-position 'bottom)
|
||||
;; spell-checking
|
||||
(spell-checking :variables spell-checking-enable-by-default nil)
|
||||
syntax-checking
|
||||
;; version-control
|
||||
treemacs
|
||||
docker
|
||||
terraform
|
||||
(docker :variables docker-dockerfile-backend 'lsp)
|
||||
(terraform :variables terraform-backend 'lsp)
|
||||
(conda :variables
|
||||
conda-anaconda-home "/opt/homebrew/Caskroom/miniconda/base")
|
||||
)
|
||||
|
||||
|
||||
@@ -95,6 +111,8 @@ This function should only modify configuration layer settings."
|
||||
dotspacemacs-additional-packages '(
|
||||
org-mac-link
|
||||
org-alert
|
||||
org-msg
|
||||
ai-code
|
||||
;org-caldav
|
||||
;org-protocol
|
||||
)
|
||||
@@ -262,8 +280,12 @@ It should only modify the values of Spacemacs settings."
|
||||
;; List of themes, the first of the list is loaded when spacemacs starts.
|
||||
;; Press `SPC T n' to cycle to the next theme in the list (works great
|
||||
;; with 2 themes variants, one dark and one light)
|
||||
dotspacemacs-themes '(spacemacs-dark
|
||||
spacemacs-light)
|
||||
dotspacemacs-themes '(
|
||||
spacemacs-dark
|
||||
doom-solarized-dark
|
||||
spacemacs-light
|
||||
doom-solarized-dark-high-contrast-theme
|
||||
)
|
||||
|
||||
;; Set the theme for the Spaceline. Supported themes are `spacemacs',
|
||||
;; `all-the-icons', `custom', `doom', `vim-powerline' and `vanilla'. The
|
||||
@@ -500,7 +522,7 @@ It should only modify the values of Spacemacs settings."
|
||||
;; List of search tool executable names. Spacemacs uses the first installed
|
||||
;; tool of the list. Supported tools are `rg', `ag', `pt', `ack' and `grep'.
|
||||
;; (default '("rg" "ag" "pt" "ack" "grep"))
|
||||
dotspacemacs-search-tools '("rg" "ag" "pt" "ack" "grep")
|
||||
dotspacemacs-search-tools '("rg" "ag" "ack" "grep")
|
||||
|
||||
;; The backend used for undo/redo functionality. Possible values are
|
||||
;; `undo-fu', `undo-redo' and `undo-tree' see also `evil-undo-system'.
|
||||
@@ -619,6 +641,250 @@ Put your configuration code here, except for variables that should be set
|
||||
before packages are loaded."
|
||||
|
||||
|
||||
;; codex config
|
||||
(use-package ai-code
|
||||
;; :straight (:host github :repo "tninja/ai-code-interface.el") ;; if you want to use straight to install, no need to have MELPA setting above
|
||||
:config
|
||||
;; use codex as backend, other options are 'claude-code, 'gemini, 'github-copilot-cli, 'opencode, 'grok, 'cursor, 'kiro, 'codebuddy, 'aider, 'claude-code-ide, 'claude-code-el
|
||||
(ai-code-set-backend 'codex)
|
||||
;; Enable global keybinding for the main menu
|
||||
;; (global-set-key (kbd "C-c a") #'ai-code-menu)
|
||||
(spacemacs/set-leader-keys "oi" 'ai-code-menu)
|
||||
;; Optional: Use eat if you prefer, by default it is vterm
|
||||
;; (setq ai-code-backends-infra-terminal-backend 'eat) ;; the way to config all native supported CLI. for external backend such as claude-code-ide.el and claude-code.el, please check their config
|
||||
;; Optional: Enable @ file completion in comments and AI sessions
|
||||
(ai-code-prompt-filepath-completion-mode 1)
|
||||
;; Optional: Ask AI to run test after code changes, for a tighter build-test loop
|
||||
(setq ai-code-auto-test-type 'test-after-change)
|
||||
;; Optional: In AI session buffers, SPC in Evil normal state triggers the prompt-enter UI
|
||||
(with-eval-after-load 'evil (ai-code-backends-infra-evil-setup))
|
||||
;; Optional: Turn on auto-revert buffer, so that the AI code change automatically appears in the buffer
|
||||
(global-auto-revert-mode 1)
|
||||
(setq auto-revert-interval 1) ;; set to 1 second for faster update
|
||||
;; (global-set-key (kbd "C-c a C") #'ai-code-toggle-filepath-completion)
|
||||
;; Optional: Set up Magit integration for AI commands in Magit popups
|
||||
(with-eval-after-load 'magit
|
||||
(ai-code-magit-setup-transients)))
|
||||
|
||||
;; email config
|
||||
;; the saved command is a work-around for not working address completion
|
||||
(setq notmuch-show-logo nil
|
||||
notmuch-search-oldest-first nil ;; new email on top
|
||||
notmuch-column-control 1.0 ;; just one columnt for searches
|
||||
notmuch-hello-insert-recent-searches nil ;; don't display recent searches in notmuch-helo
|
||||
;; notmuch-address-command "/Users/jetpac/bin/notmuch-address"
|
||||
|
||||
;; these are default
|
||||
;; notmuch-hello-sections '(notmuch-hello-insert-header notmuch-hello-insert-saved-searches
|
||||
;; notmuch-hello-insert-search
|
||||
;; notmuch-hello-insert-recent-searches
|
||||
;; notmuch-hello-insert-alltags
|
||||
;; notmuch-hello-insert-footer)
|
||||
)
|
||||
|
||||
;; (add-hook 'org-msg-edit-mode-hook #'notmuch-address-mode)
|
||||
(setq notmuch-saved-searches
|
||||
'((:name "📥 Inbox" :query "tag:inbox AND tag:unread" :key "i")
|
||||
(:name "To me Unread" :query "tag:me AND tag:unread")
|
||||
)
|
||||
)
|
||||
|
||||
;; snippet for direct sending (doesn't work when off VPN)
|
||||
;; (setq send-mail-function 'smtpmail-send-it
|
||||
;; smtpmail-smtp-server "internal-mail-router.oracle.com"
|
||||
;; smtpmail-smtp-service 25
|
||||
;; smtpmail-stream-type nil
|
||||
;; user-mail-address "petr.nyc@oracle.com"
|
||||
;; user-full-name "Petr Nyc")
|
||||
|
||||
;; Use local sendmail (Postfix)
|
||||
(setq send-mail-function 'sendmail-send-it
|
||||
message-send-mail-function 'sendmail-send-it
|
||||
sendmail-program "/usr/sbin/sendmail"
|
||||
mail-specify-envelope-from t
|
||||
mail-envelope-from 'header
|
||||
user-mail-address "petr.nyc@oracle.com"
|
||||
user-full-name "Petr Nyc"
|
||||
)
|
||||
|
||||
(setq notmuch-fcc-dirs "exchange/Sent")
|
||||
|
||||
(use-package org-msg
|
||||
:after notmuch
|
||||
:config
|
||||
(setq mail-user-agent 'notmuch-user-agent)
|
||||
(setq org-msg-options "html-postamble:nil H:5 num:nil ^:{} toc:nil author:nil email:nil \\n:t"
|
||||
org-msg-startup "hidestars indent inlineimages"
|
||||
;; org-msg-greeting-fmt "\nHi *%s*,\n\n"
|
||||
org-msg-greeting-name-limit 3
|
||||
org-msg-default-alternatives '((new . (text html))
|
||||
(reply-to-html . (text html))
|
||||
(reply-to-text . (text)))
|
||||
;; org-msg-signature "
|
||||
;; Regards,
|
||||
;; #+begin_signature
|
||||
;; Petr
|
||||
;; #+end_signature
|
||||
;; \\\\
|
||||
;; "
|
||||
)
|
||||
|
||||
;; a test for 'nicer' emails
|
||||
;; (setq org-msg-enforce-css
|
||||
;; '((img (("max-width" . "100%")))
|
||||
;; (body (("font-family" . "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif")
|
||||
;; ("font-size" . "14px")
|
||||
;; ("line-height" . "1.6")
|
||||
;; ("color" . "#333")))
|
||||
;; (h1 (("font-size" . "20px")
|
||||
;; ("font-weight" . "bold")
|
||||
;; ("margin-top" . "1em")
|
||||
;; ("margin-bottom" . "0.5em")
|
||||
;; ("color" . "#1a1a1a")))
|
||||
;; (h2 (("font-size" . "18px")
|
||||
;; ("font-weight" . "bold")
|
||||
;; ("margin-top" . "1em")
|
||||
;; ("margin-bottom" . "0.5em")
|
||||
;; ("color" . "#222")))
|
||||
;; (h3 (("font-size" . "16px")
|
||||
;; ("font-weight" . "bold")
|
||||
;; ("margin-top" . "1em")
|
||||
;; ("margin-bottom" . "0.5em")
|
||||
;; ("color" . "#333")))
|
||||
;; (a (("color" . "#0066cc")
|
||||
;; ("text-decoration" . "none")
|
||||
;; ("border-bottom" . "1px solid #0066cc")))
|
||||
;; (blockquote (("border-left" . "3px solid #ccc")
|
||||
;; ("margin" . "10px 0 10px 15px")
|
||||
;; ("padding-left" . "10px")
|
||||
;; ("font-style" . "italic")
|
||||
;; ("color" . "#555")))
|
||||
;; (pre (("background-color" . "#f6f8fa")
|
||||
;; ("border" . "1px solid #e1e4e8")
|
||||
;; ("border-radius" . "4px")
|
||||
;; ("padding" . "10px")
|
||||
;; ("overflow" . "auto")
|
||||
;; ("font-family" . "'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace")
|
||||
;; ("font-size" . "13px")))
|
||||
;; (code (("background-color" . "#f6f8fa")
|
||||
;; ("padding" . "2px 4px")
|
||||
;; ("border-radius" . "3px")
|
||||
;; ("font-family" . "monospace")
|
||||
;; ("font-size" . "85%")))
|
||||
;; ;; ("pre .todo" (("color" . "#6a737d")
|
||||
;; ;; ("font-style" . "italic")
|
||||
;; ;; ("background-color" . "transparent")))
|
||||
;; ;; ("pre .done" (("color" . "#6a737d")
|
||||
;; ;; ("font-style" . "italic")
|
||||
;; ;; ("background-color" . "transparent")))
|
||||
;; ;; ("pre .comment" (("color" . "#000000")
|
||||
;; ;; ("font-style" . "italic")
|
||||
;; ;; ("background-color" . "#fffff")))
|
||||
;; ;; ("pre .comment-delimiter" (("color" . "#000000")
|
||||
;; ;; ("font-style" . "italic")
|
||||
;; ;; ("background-color" . "#ffffff" )))
|
||||
;; ;; (".font-lock-comment-face" (("color" . "#000000")
|
||||
;; ;; ("font-style" . "italic")
|
||||
;; ;; ("background-color" . "#ffffff")))
|
||||
;; ;; (".font-lock-comment-delimiter-face" (("color" . "#000000")
|
||||
;; ;; ("font-style" . "italic")
|
||||
;; ;; ("background-color" . "#ffffff")))
|
||||
;; (table (("border-collapse" . "collapse")
|
||||
;; ("width" . "100%")
|
||||
;; ("margin" . "1em 0")))
|
||||
;; (th (("background-color" . "#f6f8fa")
|
||||
;; ("border" . "1px solid #dfe2e5")
|
||||
;; ("padding" . "6px 13px")
|
||||
;; ("font-weight" . "bold")))
|
||||
;; (td (("border" . "1px solid #dfe2e5")
|
||||
;; ("padding" . "6px 13px")))))
|
||||
|
||||
|
||||
|
||||
(org-msg-mode)
|
||||
)
|
||||
|
||||
;; (with-eval-after-load 'org-msg
|
||||
;; )
|
||||
|
||||
|
||||
;; / email config
|
||||
|
||||
|
||||
;; LSP config
|
||||
|
||||
;; General LSP tuning - defaults
|
||||
;; (setq lsp-idle-delay 0.5)
|
||||
;; (setq lsp-log-io nil)
|
||||
;; (setq gc-cons-threshold 100000000)
|
||||
;; (setq read-process-output-max (* 1024 1024)) ;; 1MB
|
||||
|
||||
;; Use flycheck for diagnostics (Spacemacs default)
|
||||
;; (setq lsp-diagnostics-provider :flycheck)
|
||||
|
||||
;; Reduce file watcher overhead (important for Terraform repos)
|
||||
;; (setq lsp-file-watch-threshold 5000)
|
||||
|
||||
;; for python, install ruff and pylsp:
|
||||
;; Python CONFIG
|
||||
;; brew install ruff pylsp pyright basedpyright
|
||||
;; 1. Use Basedpyright instead of standard Pyright
|
||||
(setq lsp-pyright-langserver-command "basedpyright")
|
||||
|
||||
;; 2. Enable Ruff support (requires ruff to be in your PATH)
|
||||
;; This tells lsp-mode to use the Ruff server for linting/formatting
|
||||
(setq lsp-pylsp-plugins-ruff-enabled t)
|
||||
|
||||
;; Spacemacs already uses deferred loading, but this ensures it
|
||||
;; (setq lsp-auto-configure t) ;; this is already default
|
||||
;; /Python CONFIG
|
||||
|
||||
|
||||
;; enable lsp mode for shells, needs to be deferred
|
||||
;; otherwise it locks up emacs startup
|
||||
(add-hook 'sh-mode-hook #'lsp-deferred)
|
||||
|
||||
;; Chain mode-specific checkers (Hadolint, TFLint) to run after LSP.
|
||||
;; We use `lsp-managed-mode-hook` to ensure the `lsp` checker is fully
|
||||
;; defined before modifying its chain, preventing "lsp is not a valid
|
||||
;; syntax checker" errors during startup.
|
||||
(defun jp/lsp-flycheck-chaining ()
|
||||
"Chain specific checkers to LSP based on the current mode."
|
||||
(cond
|
||||
;; Dockerfile: LSP -> Hadolint
|
||||
((derived-mode-p 'dockerfile-mode)
|
||||
(flycheck-add-next-checker 'lsp 'dockerfile-hadolint))
|
||||
|
||||
;; Terraform: LSP -> TFLint
|
||||
((derived-mode-p 'terraform-mode)
|
||||
(flycheck-add-next-checker 'lsp 'terraform-tflint))))
|
||||
|
||||
;; Run this whenever LSP starts managing a buffer
|
||||
(add-hook 'lsp-managed-mode-hook #'jp/lsp-flycheck-chaining)
|
||||
|
||||
;; / LSP config
|
||||
|
||||
;; jira config
|
||||
|
||||
;; (defun my-jira-bearer-token ()
|
||||
;; "Return the Authorization header for Jira Bearer token."
|
||||
;; (cons "Authorization"
|
||||
;; (concat "Bearer " "<token>")))
|
||||
;; (with-eval-after-load 'jiralib
|
||||
;; (setq jiralib-token (my-jira-bearer-token)))
|
||||
|
||||
(with-eval-after-load 'jiralib
|
||||
(setq jiralib-token (cons "Authorization"
|
||||
(concat "Bearer " (auth-source-pick-first-password
|
||||
:host "jira.oci.oraclecorp.com")))
|
||||
))
|
||||
|
||||
;; // jira config
|
||||
|
||||
;; gnupg config
|
||||
(setq epa-pinentry-mode 'loopback)
|
||||
;; /gnupg config
|
||||
|
||||
;; setting gui font for gui only
|
||||
(defun my/set-gui-font ()
|
||||
(when (display-graphic-p)
|
||||
@@ -663,86 +929,124 @@ before packages are loaded."
|
||||
;; Bind proxy toggle function to a key
|
||||
(spacemacs/set-leader-keys "ot" 'toggle-proxy)
|
||||
|
||||
;; Bind ai for aidermacs
|
||||
;; (spacemacs/set-leader-keys "ai" 'aidermacs-transient-menu)
|
||||
|
||||
;; idea from chatgpt
|
||||
(defun set-dotfiles-environment ()
|
||||
(defun jp/set-dotfiles-environment ()
|
||||
"Set environment variables for the dotfiles repository."
|
||||
(interactive)
|
||||
(setenv "GIT_DIR" (expand-file-name "~/.cfg/"))
|
||||
(setenv "GIT_WORK_TREE" (expand-file-name "~"))
|
||||
(message "Dotfiles environment set."))
|
||||
|
||||
(defun unset-dotfiles-environment ()
|
||||
(defun jp/unset-dotfiles-environment ()
|
||||
"Unset environment variables for the dotfiles repository."
|
||||
(interactive)
|
||||
(setenv "GIT_DIR" nil)
|
||||
(setenv "GIT_WORK_TREE" nil)
|
||||
(message "Dotfiles environment unset."))
|
||||
|
||||
(global-set-key (kbd "<f9> s") 'jp/set-dotfiles-environment)
|
||||
(global-set-key (kbd "<f9> u") 'jp/unset-dotfiles-environment)
|
||||
|
||||
|
||||
(defun jp/set-scm-git()
|
||||
(interactive)
|
||||
(setq magit-git-executable "/usr/local/bin/scm-git"))
|
||||
|
||||
;; for scm-git
|
||||
(defun jp/unset-scm-git()
|
||||
(interactive)
|
||||
(setq magit-git-executable "/usr/bin/git"))
|
||||
|
||||
(global-set-key (kbd "<f9> 1") 'jp/set-scm-git)
|
||||
(global-set-key (kbd "<f9> 2") 'jp/unset-scm-git)
|
||||
|
||||
|
||||
(defun magit-status-dotfiles ()
|
||||
"Open Magit with the dotfiles Git configuration."
|
||||
(interactive)
|
||||
(let ((default-directory (expand-file-name "~/")))
|
||||
(set-dotfiles-environment)
|
||||
(jp/set-dotfiles-environment)
|
||||
(magit-status)
|
||||
(unset-dotfiles-environment)))
|
||||
;; (jp/unset-dotfiles-environment)
|
||||
))
|
||||
|
||||
(with-eval-after-load 'org
|
||||
;; test from https://superuser.com/questions/452649/org-mode-to-markdown-converter
|
||||
(require 'ox-md nil t)
|
||||
|
||||
|
||||
|
||||
;; org mode should not use tabs
|
||||
;; work-around for 'tab width in org files must be 8, not 2. please adjust your tab-width settings for org mode'
|
||||
|
||||
(defun jp/org-mode-tab-setup ()
|
||||
;; Don't use real TAB characters in Org
|
||||
(setq-local indent-tabs-mode nil)
|
||||
;; But keep tab-width at 8 so Org's parser is happy
|
||||
(setq-local tab-width 8))
|
||||
|
||||
(add-hook 'org-mode-hook #'jp/org-mode-tab-setup)
|
||||
|
||||
;; end of tabs work-around
|
||||
|
||||
|
||||
|
||||
(setq org-directory "~/Documents/org")
|
||||
(setq org-default-notes-file "~/Documents/org/inbox.org")
|
||||
|
||||
(setq org-duration-format 'h:mm)
|
||||
|
||||
;; ================================================================================
|
||||
;; config for org-caldav for my nextcloud installation
|
||||
;; not working to my satisfaction yet - only configured for not used files
|
||||
;; inspiration from https://www.reddit.com/r/orgmode/comments/8rl8ep/making_orgcaldav_useable/
|
||||
;; doc: https://github.com/dengste/org-caldav
|
||||
;; ;; ================================================================================
|
||||
;; ;; config for org-caldav for my nextcloud installation
|
||||
;; ;; not working to my satisfaction yet - only configured for not used files
|
||||
;; ;; inspiration from https://www.reddit.com/r/orgmode/comments/8rl8ep/making_orgcaldav_useable/
|
||||
;; ;; doc: https://github.com/dengste/org-caldav
|
||||
|
||||
;; URL of the caldav server
|
||||
(setq org-caldav-url "https://next.cloud.jetpac.org/remote.php/dav/calendars/jetpac")
|
||||
;; ;; URL of the caldav server
|
||||
;; (setq org-caldav-url "https://next.cloud.jetpac.org/remote.php/dav/calendars/jetpac")
|
||||
|
||||
(setq org-caldav-calendars
|
||||
'((:calendar-id "personal"
|
||||
:files ("~/Documents/org/synced_calendar.org")
|
||||
;; :inbox ("~/Documents/org/caldav/from-calendar.org")
|
||||
;; :sync-direction ('org->cal)
|
||||
))
|
||||
)
|
||||
;; (setq org-caldav-calendars
|
||||
;; '((:calendar-id "personal"
|
||||
;; :files ("~/Documents/org/synced_calendar.org")
|
||||
;; ;; :inbox ("~/Documents/org/caldav/from-calendar.org")
|
||||
;; ;; :sync-direction ('org->cal)
|
||||
;; ))
|
||||
;; )
|
||||
|
||||
;; config
|
||||
(setq org-icalendar-alarm-time 1)
|
||||
;; This makes sure to-do items as a category can show up on the calendar
|
||||
(setq org-icalendar-include-todo t)
|
||||
;; This ensures all org "deadlines" show up, and show up as due dates
|
||||
(setq org-icalendar-use-deadline '(event-if-todo event-if-not-todo todo-due))
|
||||
;; This ensures "scheduled" org items show up, and show up as start times
|
||||
(setq org-icalendar-use-scheduled '(todo-start event-if-todo event-if-not-todo))
|
||||
;; ;; config
|
||||
;; (setq org-icalendar-alarm-time 1)
|
||||
;; ;; This makes sure to-do items as a category can show up on the calendar
|
||||
;; (setq org-icalendar-include-todo t)
|
||||
;; ;; This ensures all org "deadlines" show up, and show up as due dates
|
||||
;; (setq org-icalendar-use-deadline '(event-if-todo event-if-not-todo todo-due))
|
||||
;; ;; This ensures "scheduled" org items show up, and show up as start times
|
||||
;; (setq org-icalendar-use-scheduled '(todo-start event-if-todo event-if-not-todo))
|
||||
|
||||
(setq org-caldav-backup-file "~/Documents/org/caldav/org-caldav-backup.org")
|
||||
(setq org-caldav-save-directory "~/Documents/org/caldav/")
|
||||
;; (setq org-caldav-backup-file "~/Documents/org/caldav/org-caldav-backup.org")
|
||||
;; (setq org-caldav-save-directory "~/Documents/org/caldav/")
|
||||
|
||||
;; ;; calendar ID on server
|
||||
;; (setq org-caldav-calendar-id "personal")
|
||||
;; ;; ;; calendar ID on server
|
||||
;; ;; (setq org-caldav-calendar-id "personal")
|
||||
|
||||
;; ;; Org filename where new entries from calendar stored
|
||||
(setq org-caldav-inbox "~/Documents/org/caldav/from-calendar.org")
|
||||
;; ;; ;; Org filename where new entries from calendar stored
|
||||
;; (setq org-caldav-inbox "~/Documents/org/caldav/from-calendar.org")
|
||||
|
||||
;; ;; Additional Org files to check for calendar events
|
||||
;; ;; ;; Additional Org files to check for calendar events
|
||||
|
||||
;; ;; this line breaks the sync!
|
||||
;; (setq org-caldav-files ("~/Documents/org/caldav/todo.org"))
|
||||
;; ;; (setq org-caldav-files nil)
|
||||
;; ;; ;; this line breaks the sync!
|
||||
;; ;; (setq org-caldav-files ("~/Documents/org/caldav/todo.org"))
|
||||
;; ;; ;; (setq org-caldav-files nil)
|
||||
|
||||
;; ;; Usually a good idea to set the timezone manually
|
||||
;; (setq org-icalendar-timezone "Europe/Prague")
|
||||
;; ;; ;; Usually a good idea to set the timezone manually
|
||||
;; ;; (setq org-icalendar-timezone "Europe/Prague")
|
||||
|
||||
;; ;; sync from org to cal only
|
||||
;; (setq org-caldav-sync-direction "org->cal")
|
||||
;; ;; (setq org-caldav-sync-direction "twoway")
|
||||
;; ================================================================================
|
||||
;; ;; ;; sync from org to cal only
|
||||
;; ;; (setq org-caldav-sync-direction "org->cal")
|
||||
;; ;; ;; (setq org-caldav-sync-direction "twoway")
|
||||
;; ;; ================================================================================
|
||||
|
||||
|
||||
;; Define the custum capture templates
|
||||
@@ -769,9 +1073,9 @@ before packages are loaded."
|
||||
; testing freeze
|
||||
(setq org-agenda-files '("~/Documents/org/inbox.org"
|
||||
"~/Documents/org/projects.org"
|
||||
"~/Documents/org/work/oracle.org"
|
||||
"~/Documents/org/someday.org"
|
||||
"~/Documents/org/calendar.org"
|
||||
"~/Documents/org/synced_calendar.org"
|
||||
))
|
||||
|
||||
|
||||
@@ -779,6 +1083,7 @@ before packages are loaded."
|
||||
|
||||
(setq org-refile-targets '(("/Users/jetpac/Documents/org/projects.org" :maxlevel . 3)
|
||||
("/Users/jetpac/Documents/org/inbox.org" :maxlevel . 3)
|
||||
("/Users/jetpac/Documents/org/work/oracle.org" :maxlevel . 4)
|
||||
("/Users/jetpac/Documents/org/someday.org" :maxlevel . 3)
|
||||
("/Users/jetpac/Documents/org/inbox.org" :maxlevel . 3)
|
||||
("/Users/jetpac/Documents/org/calendar.org" :maxlevel . 2)))
|
||||
@@ -788,7 +1093,7 @@ before packages are loaded."
|
||||
|
||||
;; inspiration from https://emacs.stackexchange.com/questions/33179/how-to-fix-columns-of-org-agenda-clock-report
|
||||
(setq org-agenda-clockreport-parameter-plist
|
||||
(quote (:link t :maxlevel 7 :fileskip0 t :compact t :narrow 80 :formula %)))
|
||||
(quote (:link t :maxlevel 7 :fileskip0 t :compact t :narrow 80 :formula % :match "-home")))
|
||||
|
||||
(setq org-agenda-custom-commands
|
||||
'(
|
||||
@@ -826,12 +1131,11 @@ before packages are loaded."
|
||||
'((sequence "TODO(t)" "NEXT(n)" "WAIT(w)" "RUNNING(r)" "|" "DONE(d)" "CANCELLED(c)" )))
|
||||
|
||||
(setq org-clock-out-remove-zero-time-clocks t)
|
||||
) ;; with-eval-after-load
|
||||
) ;; with-eval-after-load 'org
|
||||
|
||||
(with-eval-after-load 'markdown-mode
|
||||
(define-key markdown-mode-map (kbd "C-c x") 'my/markdown-toggle-checkbox))
|
||||
|
||||
|
||||
(setq calendar-week-start-day 1) ;; calendar start on Monday
|
||||
|
||||
;; org-alert configuration
|
||||
@@ -856,7 +1160,7 @@ before packages are loaded."
|
||||
(if (string= (match-string 1) " ")
|
||||
"x" " ") nil nil nil 1))))
|
||||
|
||||
(setq warning-minimum-level :error)
|
||||
;; (setq warning-minimum-level :error)
|
||||
|
||||
|
||||
;; 28.4. - terminal clipboard integration
|
||||
@@ -901,6 +1205,130 @@ before packages are loaded."
|
||||
|
||||
(my/set-clipboard-integration)
|
||||
|
||||
;; set gls as ls on mac/unix, keep ls on linux
|
||||
(cond
|
||||
;; macOS
|
||||
((eq system-type 'darwin)
|
||||
(when (executable-find "gls")
|
||||
(setq insert-directory-program (executable-find "gls"))))
|
||||
|
||||
;; Linux (GNU ls is the default `ls`)
|
||||
((or (eq system-type 'gnu/linux)
|
||||
(eq system-type 'linux))
|
||||
(setq insert-directory-program (executable-find "ls")))
|
||||
|
||||
;; Solaris / other Unixes
|
||||
((or (eq system-type 'usg-unix-v)
|
||||
(eq system-type 'berkeley-unix)
|
||||
(eq system-type 'unix))
|
||||
(if (executable-find "gls")
|
||||
(setq insert-directory-program (executable-find "gls"))
|
||||
(setq insert-directory-program (executable-find "ls")))))
|
||||
|
||||
|
||||
;; org config based on https://doc.norang.ca/org-mode.html
|
||||
;; punching in/out and other mods
|
||||
|
||||
(global-set-key (kbd "<f9> i") 'bh/punch-in)
|
||||
(global-set-key (kbd "<f9> o") 'bh/punch-out)
|
||||
(global-set-key (kbd "<f9> h") 'bh/hide-other)
|
||||
(global-set-key (kbd "<f11>") 'org-clock-goto)
|
||||
|
||||
(defun bh/hide-other ()
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(org-back-to-heading 'invisible-ok)
|
||||
(hide-other)
|
||||
(org-cycle)
|
||||
(org-cycle)
|
||||
(org-cycle)))
|
||||
|
||||
;; Resume clocking task when emacs is restarted
|
||||
(org-clock-persistence-insinuate)
|
||||
;; Save the running clock and all clock history when exiting Emacs, load it on startup
|
||||
(setq org-clock-persist t)
|
||||
;; Include current clocking task in clock reports
|
||||
(setq org-clock-report-include-clocking-task t)
|
||||
|
||||
(setq bh/keep-clock-running nil)
|
||||
(defvar bh/organization-task-id "4d2f34b0-92dd-11f0-9319-bdd95275e5c9")
|
||||
|
||||
(defun bh/find-project-task ()
|
||||
"Move point to the parent (project) task if any"
|
||||
(save-restriction
|
||||
(widen)
|
||||
(let ((parent-task (save-excursion (org-back-to-heading 'invisible-ok) (point))))
|
||||
(while (org-up-heading-safe)
|
||||
(when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
|
||||
(setq parent-task (point))))
|
||||
(goto-char parent-task)
|
||||
parent-task)))
|
||||
|
||||
(defun bh/punch-in (arg)
|
||||
"Start continuous clocking and set the default task to the
|
||||
selected task. If no task is selected set the Organization task
|
||||
as the default task."
|
||||
(interactive "p")
|
||||
(setq bh/keep-clock-running t)
|
||||
(if (equal major-mode 'org-agenda-mode)
|
||||
;;
|
||||
;; We're in the agenda
|
||||
;;
|
||||
(let* ((marker (org-get-at-bol 'org-hd-marker))
|
||||
(tags (org-with-point-at marker (org-get-tags-at))))
|
||||
(if (and (eq arg 4) tags)
|
||||
(org-agenda-clock-in '(16))
|
||||
(bh/clock-in-organization-task-as-default)))
|
||||
;;
|
||||
;; We are not in the agenda
|
||||
;;
|
||||
(save-restriction
|
||||
(widen)
|
||||
; Find the tags on the current task
|
||||
(if (and (equal major-mode 'org-mode) (not (org-before-first-heading-p)) (eq arg 4))
|
||||
(org-clock-in '(16))
|
||||
(bh/clock-in-organization-task-as-default)))))
|
||||
|
||||
(defun bh/punch-out ()
|
||||
(interactive)
|
||||
(setq bh/keep-clock-running nil)
|
||||
(when (org-clock-is-active)
|
||||
(org-clock-out))
|
||||
(org-agenda-remove-restriction-lock))
|
||||
|
||||
(defun bh/clock-in-default-task ()
|
||||
(save-excursion
|
||||
(org-with-point-at org-clock-default-task
|
||||
(org-clock-in))))
|
||||
|
||||
(defun bh/clock-in-parent-task ()
|
||||
"Move point to the parent (project) task if any and clock in"
|
||||
(let ((parent-task))
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(widen)
|
||||
(while (and (not parent-task) (org-up-heading-safe))
|
||||
(when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
|
||||
(setq parent-task (point))))
|
||||
(if parent-task
|
||||
(org-with-point-at parent-task
|
||||
(org-clock-in))
|
||||
(when bh/keep-clock-running
|
||||
(bh/clock-in-default-task)))))))
|
||||
|
||||
(defun bh/clock-in-organization-task-as-default ()
|
||||
(interactive)
|
||||
(org-with-point-at (org-id-find bh/organization-task-id 'marker)
|
||||
(org-clock-in '(16))))
|
||||
|
||||
(defun bh/clock-out-maybe ()
|
||||
(when (and bh/keep-clock-running
|
||||
(not org-clock-clocking-in)
|
||||
(marker-buffer org-clock-default-task)
|
||||
(not org-clock-resolving-clocks-due-to-idleness))
|
||||
(bh/clock-in-parent-task)))
|
||||
|
||||
(add-hook 'org-clock-out-hook 'bh/clock-out-maybe 'append)
|
||||
|
||||
) ;; user-config
|
||||
|
||||
@@ -917,47 +1345,195 @@ This function is called at the very end of Spacemacs initialization."
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(custom-enabled-themes '(spacemacs-dark))
|
||||
;; '(custom-enabled-themes '(doom-solarized-dark))
|
||||
'(custom-safe-themes
|
||||
'("7fea145741b3ca719ae45e6533ad1f49b2a43bf199d9afaee5b6135fd9e6f9b8"
|
||||
'("d97ac0baa0b67be4f7523795621ea5096939a47e8b46378f79e78846e0e4ad3d"
|
||||
"21d2bf8d4d1df4859ff94422b5e41f6f2eeff14dd12f01428fa3cb4cb50ea0fb"
|
||||
"7fea145741b3ca719ae45e6533ad1f49b2a43bf199d9afaee5b6135fd9e6f9b8"
|
||||
"810691bd221e4639d5ef736b1bd930a7fb32a7c6043a5634e04f86edea973f6d"
|
||||
"a0ac98a1bde5d6336295fd350155a4aac1d63c53c1b3773062271074d16ebeb5"
|
||||
"bbb13492a15c3258f29c21d251da1e62f1abb8bbd492386a673dcfab474186af"
|
||||
"7fd8b914e340283c189980cd1883dbdef67080ad1a3a9cc3df864ca53bdc89cf" default))
|
||||
'(dired-listing-switches "-alh")
|
||||
'(ibuffer-saved-filter-groups nil)
|
||||
'(ibuffer-saved-filters
|
||||
'(("dired-mode" (mode . dired-mode))
|
||||
("programming"
|
||||
(or (derived-mode . prog-mode) (mode . ess-mode) (mode . compilation-mode)))
|
||||
("text document" (and (derived-mode . text-mode) (not (starred-name))))
|
||||
("TeX"
|
||||
(or (derived-mode . tex-mode) (mode . latex-mode) (mode . context-mode)
|
||||
(mode . ams-tex-mode) (mode . bibtex-mode)))
|
||||
("web"
|
||||
(or (derived-mode . sgml-mode) (derived-mode . css-base-mode)
|
||||
(derived-mode . js-base-mode) (derived-mode . typescript-ts-base-mode)
|
||||
(mode . js2-mode) (derived-mode . haml-mode) (mode . sass-mode)))
|
||||
("gnus"
|
||||
(or (mode . message-mode) (mode . mail-mode) (mode . gnus-group-mode)
|
||||
(mode . gnus-summary-mode) (mode . gnus-article-mode)))))
|
||||
'(notmuch-archive-tags '("-inbox" "-unread" "+archive" "-flagged"))
|
||||
'(notmuch-column-control 1.0)
|
||||
'(notmuch-hello-sections
|
||||
'(notmuch-hello-insert-header notmuch-hello-insert-saved-searches
|
||||
(notmuch-hello-insert-searches "Important"
|
||||
(("General"
|
||||
. "not (tag:solaris or tag:oci)")
|
||||
("Solaris"
|
||||
. "tag:solaris")
|
||||
("OCI"
|
||||
. "tag:oci"))
|
||||
:filter
|
||||
"date:1/1/2026.. and (tag:important and tag:action)"
|
||||
:show-empty-searches
|
||||
t)
|
||||
(notmuch-hello-insert-searches
|
||||
"Secure Desktop Focused"
|
||||
(("OSD unread" . "tag:osd")
|
||||
("Deployment Tickets"
|
||||
. "tag:deployment-ticket")
|
||||
("PRs to go through" . "tag:PRs")
|
||||
("Brownbag" . "tag:brownbag")
|
||||
("Ocean Incidents / Alarms"
|
||||
. "tag:ocean-incident or tag:alarm")
|
||||
("Announcements (PSA etc)"
|
||||
. "tag:announcement")
|
||||
("Deployment Calendar events"
|
||||
. "tag:calendar")
|
||||
("SGD" . "tag:sgd"))
|
||||
:filter
|
||||
"tag:osd and date:12/1/2025.. and (tag:unread or tag:important or tag:action)"
|
||||
:show-empty-searches nil)
|
||||
(notmuch-hello-insert-searches
|
||||
"Solaris Focused"
|
||||
(("Solaris"
|
||||
. "tag:solaris and not (tag:akidr or tag:s11u4-sru or tag:trunk or tag:cluster or tag:s11u3-sru or tag:RE or tag:mrspatmore or tag:IPS)")
|
||||
("Solaris/All Solaris logs"
|
||||
. "tag:solaris or tag:pughlog")
|
||||
("Solaris/RE"
|
||||
. "tag:RE and not (tag:logs or tag:pughlog)")
|
||||
("Solaris/mrspatmore" . "tag:mrspatmore")
|
||||
("Solaris/Cluster"
|
||||
. "tag:cluster and not (tag:logs or tag:pughlog)")
|
||||
("Solaris/AK IDRs"
|
||||
. "tag:akidr and not (tag:logs or tag:pughlog)")
|
||||
("Solaris/AK IDRs/logs"
|
||||
. "tag:akidr and (tag:logs or tag:pushlog")
|
||||
("Solaris/S11.4-SRU"
|
||||
. "tag:s11u4-sru and not (tag:on or tag:userland)")
|
||||
("Solaris/S11.4-SRU/ON"
|
||||
. "tag:s11u4-sru and tag:on and not (tag:logs or tag:pushlog or tag:webrti)")
|
||||
("Solaris/S11.4-SRU/ON/logs"
|
||||
. "tag:s11u4-sru and tag:on and (tag:logs or tag:pushlog) and not tag:webrti")
|
||||
("Solaris/S11.4-SRU/ON/WebRTI"
|
||||
. "tag:s11u4-sru and tag:on and tag:webrti")
|
||||
("Solaris/S11.4-SRU/Userland"
|
||||
. "tag:s11u4-sru and tag:userland and not (tag:logs or tag:pushlog) and not tag:webrti")
|
||||
("Solaris/S11.4-SRU/Userland/logs"
|
||||
. "tag:s11u4-sru and tag:userland and (tag:logs or tag:pushlog)")
|
||||
("Solaris/S11.4-SRU/Userland/WebRTI"
|
||||
. "tag:s11u4-sru and tag:userland and tag:webrti")
|
||||
("Solaris/Trunk"
|
||||
. "tag:trunk and not (tag:logs or tag:webrti or tag:pushlog or tag:jenkins)")
|
||||
("Solaris/Trunk/Logs"
|
||||
. "tag:trunk and (tag:logs or tag:pushlog or tag:jenkins)")
|
||||
("Solaris/Trunk/WebRTI/ON"
|
||||
. "tag:trunk and tag:on and tag:webrti")
|
||||
("Solaris/Trunk/WebRTI/Userland"
|
||||
. "tag:trunk and tag:userland and tag:webrti")
|
||||
("Solaris/S11.3-SRU" . "tag:s11u3-sru")
|
||||
("Solaris/GKAP" . "tag:gkap")
|
||||
("Solaris/IPS" . "tag:IPS"))
|
||||
:filter
|
||||
"date:1/1/2026.. and (is:unread or is:important or is:action) "
|
||||
:filter-count
|
||||
"date:1/1/2026.. and (is:unread or is:important or is:action)")
|
||||
(notmuch-hello-insert-searches "Solaris All"
|
||||
(("Solaris"
|
||||
. "tag:solaris and not (tag:akidr or tag:s11u4-sru or tag:trunk or tag:cluster or tag:s11u3-sru or tag:RE or tag:mrspatmore or tag:IPS)")
|
||||
("Solaris/All Solaris logs"
|
||||
. "tag:solaris or tag:pughlog")
|
||||
("Solaris/RE"
|
||||
. "tag:RE and not (tag:logs or tag:pughlog)")
|
||||
("Solaris/Cluster"
|
||||
. "tag:cluster and not (tag:logs or tag:pughlog)")
|
||||
("Solaris/AK IDRs"
|
||||
. "tag:akidr and not (tag:logs or tag:pughlog)")
|
||||
("Solaris/AK IDRs/logs"
|
||||
. "tag:akidr and (tag:logs or tag:pushlog")
|
||||
("Solaris/S11.4-SRU"
|
||||
. "tag:s11u4-sru and not (tag:on or tag:userland)")
|
||||
("Solaris/S11.4-SRU/ON"
|
||||
. "tag:s11u4-sru and tag:on and not (tag:logs or tag:pushlog or tag:webrti)")
|
||||
("Solaris/S11.4-SRU/ON/logs"
|
||||
. "tag:s11u4-sru and tag:on and (tag:logs or tag:pushlog) and not tag:webrti")
|
||||
("Solaris/S11.4-SRU/ON/WebRTI"
|
||||
. "tag:s11u4-sru and tag:on and tag:webrti")
|
||||
("Solaris/S11.4-SRU/Userland"
|
||||
. "tag:s11u4-sru and tag:userland and not (tag:logs or tag:pushlog) and not tag:webrti")
|
||||
("Solaris/S11.4-SRU/Userland/logs"
|
||||
. "tag:s11u4-sru and tag:userland and (tag:logs or tag:pushlog)")
|
||||
("Solaris/S11.4-SRU/Userland/WebRTI"
|
||||
. "tag:s11u4-sru and tag:userland and tag:webrti")
|
||||
("Solaris/Trunk"
|
||||
. "tag:trunk and not (tag:logs or tag:webrti or tag:pushlog or tag:jenkins)")
|
||||
("Solaris/Trunk/Logs"
|
||||
. "tag:trunk and (tag:logs or tag:pushlog or tag:jenkins)")
|
||||
("Solaris/Trunk/WebRTI/ON"
|
||||
. "tag:trunk and tag:on and tag:webrti")
|
||||
("Solaris/Trunk/WebRTI/Userland"
|
||||
. "tag:trunk and tag:userland and tag:webrti")
|
||||
("Solaris/S11.3-SRU"
|
||||
. "tag:s11u3-sru")
|
||||
("Solaris/GKAP"
|
||||
. "tag:gkap")
|
||||
("Solaris/IPS"
|
||||
. "tag:IPS"))
|
||||
:filter
|
||||
"date:1/1/2026.."
|
||||
:show-empty-searches
|
||||
t)
|
||||
notmuch-hello-insert-inbox
|
||||
notmuch-hello-insert-footer))
|
||||
'(notmuch-saved-searches
|
||||
'((:name "📥 Inbox" :query "tag:inbox AND tag:unread" :key [105])
|
||||
(:name "To me Unread" :query "tag:me AND tag:unread" :key [109])))
|
||||
'(notmuch-search-oldest-first nil)
|
||||
'(org-hide-leading-stars t)
|
||||
'(package-selected-packages
|
||||
'(a ace-jump-helm-line ace-link afternoon-theme aggressive-indent aio
|
||||
alect-themes alert all-the-icons ample-theme ample-zen-theme
|
||||
anaconda-mode anti-zenburn-theme apropospriate-theme auto-compile
|
||||
auto-highlight-symbol auto-yasnippet autothemer badwolf-theme
|
||||
birds-of-paradise-plus-theme blacken bubbleberry-theme bui busybee-theme
|
||||
centered-cursor-mode cherry-blossom-theme chocolate-theme
|
||||
clean-aindent-mode closql clues-theme code-cells code-review
|
||||
color-theme-sanityinc-solarized color-theme-sanityinc-tomorrow
|
||||
column-enforce-mode company company-anaconda company-box
|
||||
company-quickhelp company-shell company-statistics company-terraform
|
||||
company-web concurrent ctable cyberpunk-theme cython-mode dakrone-theme
|
||||
dap-mode darkmine-theme darkokai-theme darktooth-theme deferred
|
||||
define-word devdocs diminish dired-quick-sort disable-mouse django-theme
|
||||
docker dockerfile-mode doom-themes dotenv-mode dracula-theme drag-stuff
|
||||
dumb-jump edit-indirect editorconfig ef-themes elisp-def elisp-demos
|
||||
elisp-slime-nav emacsql emmet-mode emojify emr epc espresso-theme
|
||||
eval-sexp-fu evil-anzu evil-args evil-cleverparens evil-collection
|
||||
evil-easymotion evil-escape evil-evilified-state evil-exchange
|
||||
evil-goggles evil-iedit-state evil-indent-plus evil-lion evil-lisp-state
|
||||
evil-matchit evil-mc evil-nerd-commenter evil-numbers evil-org
|
||||
evil-surround evil-textobj-line evil-tutor evil-unimpaired
|
||||
evil-visual-mark-mode evil-visualstar exotica-theme expand-region
|
||||
eyebrowse eziam-themes fancy-battery farmhouse-themes fish-mode
|
||||
flatland-theme flatui-theme flx-ido flycheck-bashate flycheck-elsa
|
||||
flycheck-package flycheck-pos-tip forge frame-local gandalf-theme gh-md
|
||||
ghub git-link git-messenger git-modes git-timemachine gitignore-templates
|
||||
gntp gnuplot golden-ratio google-translate gotham-theme grandshell-theme
|
||||
'(a ace-jump-helm-line ace-link afternoon-theme aggressive-indent ai-code
|
||||
aidermacs aio alect-themes alert all-the-icons ample-theme
|
||||
ample-zen-theme anaconda-mode anti-zenburn-theme apropospriate-theme
|
||||
auto-compile auto-highlight-symbol auto-yasnippet autothemer
|
||||
badwolf-theme birds-of-paradise-plus-theme blacken bmx-mode
|
||||
bubbleberry-theme bui busybee-theme centered-cursor-mode
|
||||
cherry-blossom-theme chocolate-theme clean-aindent-mode closql
|
||||
clues-theme code-cells code-review color-theme-sanityinc-solarized
|
||||
color-theme-sanityinc-tomorrow column-enforce-mode company
|
||||
company-anaconda company-box company-quickhelp company-shell
|
||||
company-statistics company-terraform company-web concurrent cond-let
|
||||
conda ctable cyberpunk-theme cython-mode dakrone-theme dap-mode
|
||||
darkmine-theme darkokai-theme darktooth-theme deferred define-word
|
||||
devdocs diminish dired-quick-sort disable-mouse django-theme docker
|
||||
dockerfile-mode doom-themes dotenv-mode dracula-theme drag-stuff
|
||||
dumb-jump eat edit-indirect editorconfig ef-themes elisp-def elisp-demos
|
||||
elisp-slime-nav emacsql emmet-mode emojify emr epc esh-help
|
||||
eshell-prompt-extras eshell-z espresso-theme eval-sexp-fu evil-anzu
|
||||
evil-args evil-cleverparens evil-collection evil-easymotion evil-escape
|
||||
evil-evilified-state evil-exchange evil-goggles evil-iedit-state
|
||||
evil-indent-plus evil-lion evil-lisp-state evil-matchit evil-mc
|
||||
evil-nerd-commenter evil-numbers evil-org evil-surround evil-textobj-line
|
||||
evil-tutor evil-unimpaired evil-visual-mark-mode evil-visualstar
|
||||
exotica-theme expand-region eyebrowse eziam-themes fancy-battery
|
||||
farmhouse-themes fish-mode flatland-theme flatui-theme flx-ido flycheck
|
||||
forge frame-local gandalf-theme ggtags gh-md ghub git-link git-messenger
|
||||
git-modes git-timemachine gitignore-templates gntp gnuplot golden-ratio
|
||||
google-translate gotham-theme grandshell-theme groovy-imports groovy-mode
|
||||
gruber-darker-theme gruvbox-theme haml-mode hc-zenburn-theme hcl-mode
|
||||
helm-ag helm-c-yasnippet helm-comint helm-company helm-css-scss
|
||||
helm helm-ag helm-c-yasnippet helm-comint helm-company helm-css-scss
|
||||
helm-descbinds helm-git-grep helm-ls-git helm-lsp helm-make
|
||||
helm-mode-manager helm-org helm-org-rifle helm-projectile helm-purpose
|
||||
helm-pydoc helm-swoop helm-themes helm-xref hemisu-theme heroku-theme
|
||||
hide-comnt hierarchy highlight-indentation highlight-numbers
|
||||
helm-mode-manager helm-notmuch helm-org helm-org-rifle helm-projectile
|
||||
helm-purpose helm-pydoc helm-swoop helm-themes helm-xref hemisu-theme
|
||||
heroku-theme hide-comnt hierarchy highlight-indentation highlight-numbers
|
||||
highlight-parentheses hl-todo holy-mode htmlize hungry-delete hybrid-mode
|
||||
impatient-mode importmagic indent-guide info+ inkpot-theme insert-shebang
|
||||
inspector ir-black-theme jazz-theme jbeans-theme js-doc js2-mode
|
||||
@@ -967,38 +1543,40 @@ This function is called at the very end of Spacemacs initialization."
|
||||
lsp-pyright lsp-treemacs lsp-ui lush-theme macrostep madhat2r-theme magit
|
||||
magit-section markdown-mode markdown-toc material-theme minimal-theme
|
||||
modus-themes moe-theme molokai-theme monochrome-theme monokai-theme
|
||||
multi-line multiple-cursors mustang-theme nameless naquadah-theme
|
||||
nginx-mode noctilux-theme nodejs-repl nose npm-mode obsidian-theme
|
||||
occidental-theme oldlace-theme omtose-phellack-themes open-junk-file
|
||||
org-alert org-caldav org-category-capture org-cliplink org-contrib
|
||||
org-download org-jira org-mac-link org-mime org-pomodoro org-present
|
||||
multi-line multi-term multi-vterm multiple-cursors mustang-theme nameless
|
||||
naquadah-theme nginx-mode noctilux-theme nodejs-repl nose notmuch
|
||||
npm-mode obsidian-theme occidental-theme ol-notmuch oldlace-theme
|
||||
omtose-phellack-themes open-junk-file org-alert org-caldav
|
||||
org-category-capture org-cliplink org-contrib org-download org-jira
|
||||
org-mac-link org-mime org-msg org-pomodoro org-present
|
||||
org-project-capture org-projectile org-rich-yank org-superstar
|
||||
organic-green-theme orgit orgit-forge origami overseer ox-jira
|
||||
ox-twbs pandoc-mode paradox password-generator pcre2el
|
||||
organic-green-theme orgit orgit-forge origami overseer ox-jira ox-twbs
|
||||
pandoc-mode paradox password-generator pcache pcre2el
|
||||
phoenix-dark-mono-theme phoenix-dark-pink-theme pip-requirements pipenv
|
||||
pippel planet-theme poetry popwin pos-tip prettier-js professional-theme
|
||||
pug-mode purple-haze-theme py-isort pydoc pyenv-mode pylookup pytest
|
||||
pythonic pyvenv quickrun railscasts-theme rainbow-delimiters
|
||||
rebecca-theme request restart-emacs reverse-theme sass-mode scss-mode
|
||||
seti-theme shfmt simple-httpd skewer-mode slim-mode smeargle smyx-theme
|
||||
soft-charcoal-theme soft-morning-theme soft-stone-theme solarized-theme
|
||||
soothe-theme space-doc spacegray-theme spaceline spacemacs-purpose-popwin
|
||||
spacemacs-whitespace-cleanup sphinx-doc string-edit-at-point
|
||||
string-inflection subatomic-theme subatomic256-theme sublime-themes
|
||||
sunny-day-theme symbol-overlay symon tablist tagedit tango-2-theme
|
||||
tango-plus-theme tangotango-theme tao-theme term-cursor tern
|
||||
terraform-mode toc-org toml-mode toxi-theme transient treemacs-evil
|
||||
treemacs-icons-dired treemacs-magit treemacs-persp treemacs-projectile
|
||||
treepy twilight-anti-bright-theme twilight-bright-theme twilight-theme
|
||||
ujelly-theme underwater-theme undo-fu undo-fu-session vi-tilde-fringe
|
||||
vim-powerline volatile-highlights vundo web-beautify web-completion-data
|
||||
web-mode which-key white-sand-theme winum with-editor writeroom-mode
|
||||
ws-butler yaml yaml-mode yapfify yasnippet yasnippet-snippets
|
||||
zen-and-art-theme zenburn-theme zonokai-emacs)))
|
||||
pippel planet-theme poetry popwin pos-tip powershell prettier-js
|
||||
professional-theme pug-mode purple-haze-theme py-isort pydoc pyenv-mode
|
||||
pylookup pytest pythonic pyvenv quickrun railscasts-theme
|
||||
rainbow-delimiters rebecca-theme request restart-emacs reverse-theme
|
||||
sass-mode scss-mode seti-theme shell-pop shfmt simple-httpd skewer-mode
|
||||
slim-mode smeargle smyx-theme soft-charcoal-theme soft-morning-theme
|
||||
soft-stone-theme solarized-theme soothe-theme space-doc spacegray-theme
|
||||
spaceline spacemacs-purpose-popwin spacemacs-whitespace-cleanup
|
||||
sphinx-doc string-edit-at-point string-inflection subatomic-theme
|
||||
subatomic256-theme sublime-themes sunny-day-theme symbol-overlay symon
|
||||
tablist tagedit tango-2-theme tango-plus-theme tangotango-theme tao-theme
|
||||
term-cursor terminal-here tern terraform-mode toc-org toml-mode
|
||||
toxi-theme transient treemacs-evil treemacs-icons-dired treemacs-magit
|
||||
treemacs-persp treemacs-projectile treepy twilight-anti-bright-theme
|
||||
twilight-bright-theme twilight-theme ujelly-theme underwater-theme
|
||||
undo-fu undo-fu-session vi-tilde-fringe volatile-highlights vterm vundo
|
||||
web-beautify web-completion-data web-mode which-key white-sand-theme
|
||||
winum with-editor writeroom-mode ws-butler yaml yaml-mode yapfify
|
||||
yasnippet yasnippet-snippets zen-and-art-theme zenburn-theme
|
||||
zonokai-emacs)))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
)
|
||||
'(default ((t (:background nil)))))
|
||||
)
|
||||
|
||||
@@ -8,3 +8,12 @@ Host bitbucket.oci.oraclecorp.com
|
||||
HostkeyAlgorithms +ssh-rsa
|
||||
PubkeyAcceptedAlgorithms +ssh-rsa
|
||||
|
||||
Host dabel dabel.us.oracle.com andel andel.us.oracle.com gates gates.us.oracle.com
|
||||
User pnyc
|
||||
IdentityFile ~/.ssh/dabel.key
|
||||
RequestTTY yes
|
||||
|
||||
|
||||
Host oci.private.devops.scmservice.us-phoenix-1.oci.oracleiaas.com
|
||||
PKCS11Provider /Library/OpenSC/lib/opensc-pkcs11.so
|
||||
User pnyc@bmc_operator_access
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# Include config-scm
|
||||
|
||||
|
||||
Host *
|
||||
# UseKeychain yes
|
||||
AddKeysToAgent yes
|
||||
@@ -15,6 +18,11 @@ Host *
|
||||
Host 192.168.2.*
|
||||
IdentitiesOnly yes
|
||||
|
||||
Host osd-fra
|
||||
User desktopuser
|
||||
HostName 100.109.60.126
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
|
||||
Host gitlab.com
|
||||
User git
|
||||
IdentityFile ~/.ssh/gitlab
|
||||
@@ -30,6 +38,12 @@ Host hetzner
|
||||
IdentityFile ~/.ssh/id_hetzner
|
||||
|
||||
|
||||
# for SCM
|
||||
Host oci.private.devops.scmservice.us-phoenix-1.oci.oracleiaas.com
|
||||
PKCS11Provider /Library/OpenSC/lib/opensc-pkcs11.so
|
||||
User pnyc@bmc_operator_access
|
||||
|
||||
|
||||
Host pnyc-ws pnyc-ws.webad1phx.solarisx86phx.oraclevcn.com
|
||||
HostName pnyc-ws.webad1phx.solarisx86phx.oraclevcn.com
|
||||
User opc
|
||||
@@ -76,7 +90,7 @@ Host www.jetpac.org
|
||||
User jetpac
|
||||
|
||||
|
||||
Host dabel dabel.us.oracle.com
|
||||
Host dabel dabel.us.oracle.com andel andel.us.oracle.com gates gates.us.oracle.com
|
||||
User pnyc
|
||||
IdentityFile ~/.ssh/dabel.key
|
||||
RequestTTY yes
|
||||
@@ -154,4 +168,3 @@ Include ossh_configs/*.ossh
|
||||
Include ssh_configs/config
|
||||
Include osd_configs/config
|
||||
|
||||
|
||||
|
||||
267
.ssh/scm-script.sh
Executable file
267
.ssh/scm-script.sh
Executable file
@@ -0,0 +1,267 @@
|
||||
#!/bin/bash
|
||||
export SSH_SCM_AUTH_SOCK="$HOME/.ssh/scm-agent.sock"
|
||||
SCRIPT_VERSION=1
|
||||
|
||||
# Starts the custom SSH agent.
|
||||
start_scm_ssh_agent() {
|
||||
# Check if the socket file exists
|
||||
if [ -S "$SSH_SCM_AUTH_SOCK" ]; then
|
||||
# If the socket exists, check if the SSH agent process is running
|
||||
AGENT_PID=$(ps aux | grep $SSH_SCM_AUTH_SOCK | grep -v grep | head -1 | awk '{print $2}')
|
||||
|
||||
# If no associated process is found or the agent isn't running, start a new SSH agent
|
||||
if [ -z "$AGENT_PID" ]; then
|
||||
echo "Socket exists but no running agent, starting new SSH agent..."
|
||||
rm $SSH_SCM_AUTH_SOCK
|
||||
eval $(ssh-agent -a "$SSH_SCM_AUTH_SOCK")
|
||||
else
|
||||
# If the agent is already running, use the existing one
|
||||
echo "SSH agent already running with PID: $AGENT_PID, using existing agent."
|
||||
fi
|
||||
else
|
||||
# If the socket doesn't exist, start a new SSH agent
|
||||
echo "Socket doesn't exist, starting new SCM SSH agent..."
|
||||
ssh-agent -a "$SSH_SCM_AUTH_SOCK"
|
||||
fi
|
||||
}
|
||||
|
||||
# Stops the custom SSH agent.
|
||||
stop_scm_ssh_agent() {
|
||||
# Check if the socket file exists
|
||||
if [ -S "$SSH_SCM_AUTH_SOCK" ]; then
|
||||
# If the socket exists, check if the SSH agent process is running
|
||||
AGENT_PID=$(ps aux | grep $SSH_SCM_AUTH_SOCK | grep -v grep | head -1 | awk '{print $2}')
|
||||
|
||||
# If no associated process is found or the agent isn't running, start a new SSH agent
|
||||
if [ -z "$AGENT_PID" ]; then
|
||||
echo "Socket exists but no running agent, removing the socket..."
|
||||
rm $SSH_SCM_AUTH_SOCK
|
||||
else
|
||||
# If the agent is already running, use the existing one
|
||||
echo "Killing SSH agent running with PID: $AGENT_PID ..."
|
||||
SSH_AGENT_PID=$AGENT_PID ssh-agent -k
|
||||
fi
|
||||
else
|
||||
# If the socket doesn't exist, start a new SSH agent
|
||||
echo "Socket doesn't exist, nothing to do to stop SSH agent."
|
||||
fi
|
||||
}
|
||||
|
||||
ssh_add() {
|
||||
ssh_reset
|
||||
}
|
||||
|
||||
ssh_reset() {
|
||||
echo "Clearing and reloading the card..."
|
||||
local providers=("/usr/local/lib/libykcs11.dylib" "/usr/lib64/opensc-pkcs11.so" "/usr/local/lib/opensc-pkcs11.so")
|
||||
|
||||
if [[ -S "$SSH_SCM_AUTH_SOCK" ]]; then
|
||||
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -D
|
||||
|
||||
local provider_path="$1"
|
||||
if [[ -z "$provider_path" ]]; then
|
||||
for path in "${providers[@]}"; do
|
||||
if [[ -e "$path" ]]; then
|
||||
echo "Using provider '${provider_path}'"
|
||||
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -e "$path"
|
||||
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -s "$path"
|
||||
return
|
||||
fi
|
||||
done
|
||||
elif [[ -e "$provider_path" ]]; then
|
||||
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -e "$provider_path"
|
||||
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -s "$provider_path"
|
||||
else
|
||||
echo "Invalid provider path: $provider_path"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
read -p "SSH agent socket not found at $sock_path. Continue with default SSH Agent (without SSH_AUTH_SOCK) or you may run 'start_agent' command to setup one? (y/n): " confirm
|
||||
if [[ "$confirm" != "y" ]]; then
|
||||
echo "Aborted."
|
||||
return 1
|
||||
fi
|
||||
|
||||
ssh-add -D
|
||||
|
||||
local provider_path="$1"
|
||||
if [[ -z "$provider_path" ]]; then
|
||||
for path in "${providers[@]}"; do
|
||||
if [[ -e "$path" ]]; then
|
||||
ssh-add -e "$path"
|
||||
ssh-add -s "$path"
|
||||
return
|
||||
fi
|
||||
done
|
||||
elif [[ -e "$provider_path" ]]; then
|
||||
ssh-add -e "$provider_path"
|
||||
ssh-add -s "$provider_path"
|
||||
else
|
||||
echo "Invalid provider path: $provider_path"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
install() {
|
||||
local script_path="$HOME/.ssh/scm-script.sh"
|
||||
mkdir -p "$HOME/.ssh"
|
||||
chmod 700 $HOME/.ssh
|
||||
cp "$0" "$script_path"
|
||||
chmod +x "$script_path"
|
||||
|
||||
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
install_yubico_piv_tool_mac
|
||||
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
install_yubico_piv_tool_linux
|
||||
else
|
||||
echo "Unsupported OS"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
local profile_file
|
||||
if [[ $SHELL == "/bin/bash" ]]; then
|
||||
profile_file="$HOME/.bashrc"
|
||||
else
|
||||
profile_file="$HOME/.zshrc"
|
||||
fi
|
||||
|
||||
if ! grep -q "Include config-scm" "$HOME/.ssh/config"; then
|
||||
|
||||
cat <<< "Include config-scm
|
||||
$(cat $HOME/.ssh/config)
|
||||
" > $HOME/.ssh/config
|
||||
|
||||
cat > $HOME/.ssh/config-scm << EOF
|
||||
Host oci*.private.devops.scmservice.*.oci.oracleiaas.com
|
||||
User $(whoami)@bmc_operator_access
|
||||
IdentityAgent $HOME/.ssh/scm-agent.sock
|
||||
EOF
|
||||
fi
|
||||
|
||||
if ! grep -q "alias scm-ssh='$script_path'" "$profile_file"; then
|
||||
echo "" >> "$profile_file"
|
||||
echo "" >> "$profile_file"
|
||||
echo "alias scm-ssh='$script_path'" >> "$profile_file"
|
||||
echo "scm-ssh start_agent" >> "$profile_file"
|
||||
fi
|
||||
|
||||
|
||||
echo "SCM script installed successfully. Please restart your terminal or run 'source $profile_file' to apply changes."
|
||||
}
|
||||
|
||||
install_yubico_piv_tool_linux() {
|
||||
local providers=("/usr/local/lib/libykcs11.dylib" "/usr/lib64/opensc-pkcs11.so" "/usr/local/lib/opensc-pkcs11.so")
|
||||
|
||||
for path in "${providers[@]}"; do
|
||||
if [[ -e "$path" ]]; then
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Automatic install not supported. Please install OpenSC or Yubico PIV Tool manually."
|
||||
}
|
||||
|
||||
install_yubico_piv_tool_mac() {
|
||||
local url="https://developers.yubico.com/yubico-piv-tool/Releases/yubico-piv-tool-latest-mac-universal.pkg"
|
||||
local pkg_file="/tmp/yubico-piv-tool-latest-mac-universal.pkg"
|
||||
local lib_path="/usr/local/lib/libykcs11.dylib"
|
||||
|
||||
if [[ -f $lib_path ]]; then
|
||||
echo "Yubico PIV tool is already installed at $lib_path. Skipping..."
|
||||
return 0
|
||||
fi
|
||||
|
||||
|
||||
echo "Downloading Yubico PIV Tool..."
|
||||
curl -L "$url" -o "$pkg_file"
|
||||
|
||||
if [[ ! -f "$pkg_file" ]]; then
|
||||
echo "Download failed!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "Installing Yubico PIV Tool... (sudo password might be required)"
|
||||
|
||||
if sudo installer -pkg "$pkg_file" -target /; then
|
||||
echo "Installation of Yubico PIV Tool complete"
|
||||
else
|
||||
echo "Install failed"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm "$pkg_file"
|
||||
|
||||
echo "Verifying installation..."
|
||||
|
||||
if [[ -f "$lib_path" ]]; then
|
||||
echo "Library $lib_path is present!"
|
||||
else
|
||||
echo "Library $lib_path is missing! Installation might be incomplete."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
scm_script_help() {
|
||||
echo "Usage: $0 <command> [args...]"
|
||||
echo "---------------------------"
|
||||
echo "Commands:"
|
||||
echo " start_agent - Starts the SCM ssh agent."
|
||||
echo " stop_agent - Stops the SCM ssh agent."
|
||||
echo " ssh_reset - Clears and reload the Yubikey to the agent."
|
||||
echo " ssh_add - Alias to ssh_reset."
|
||||
echo " install - Installs scm command by copying script to ~/.ssh/scm-script.sh and adding alias to the profile."
|
||||
echo " install_yubico_piv_tool - Download and install Yubikey PIV tool"
|
||||
echo " help - Displays this help message."
|
||||
echo "---------------------------"
|
||||
echo "Completed execution of SCM Script v${SCRIPT_VERSION}."
|
||||
}
|
||||
|
||||
# Prevent execution when sourced in both bash and zsh
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
return # For zsh
|
||||
elif [[ -n "$BASH_VERSION" && "${BASH_SOURCE[0]}" != "$0" ]]; then
|
||||
return # For bash
|
||||
fi
|
||||
|
||||
# Check if at least one argument is provided
|
||||
if [ "$#" -lt 1 ]; then
|
||||
scm_script_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract the command
|
||||
COMMAND="$1"
|
||||
shift # Remove the first argument
|
||||
|
||||
# Execute the corresponding function
|
||||
case "$COMMAND" in
|
||||
start_agent)
|
||||
start_scm_ssh_agent "$@"
|
||||
;;
|
||||
stop_agent)
|
||||
stop_scm_ssh_agent "$@"
|
||||
;;
|
||||
ssh_reset)
|
||||
ssh_reset "$@"
|
||||
;;
|
||||
ssh_add)
|
||||
ssh_add "$@"
|
||||
;;
|
||||
install)
|
||||
install "$@"
|
||||
;;
|
||||
install_yubico_piv_tool)
|
||||
install_yubico_piv_tool "$@"
|
||||
;;
|
||||
*)
|
||||
echo "Invalid command. Use help."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
echo "Completed execution of SCM Script v${SCRIPT_VERSION}."
|
||||
31
.tridactylrc
Normal file
31
.tridactylrc
Normal file
@@ -0,0 +1,31 @@
|
||||
" General Settings
|
||||
set update.lastchecktime 1755245204669
|
||||
set update.nag true
|
||||
set update.nagwait 7
|
||||
set update.lastnaggedversion 1.14.0
|
||||
set update.checkintervalsecs 86400
|
||||
set configversion 2.0
|
||||
set editorcmd '/opt/homebrew/bin/emacsclient'
|
||||
set smoothscroll true
|
||||
|
||||
" pentadactyl-style tab switching
|
||||
bind J tabnext
|
||||
bind K tabprev
|
||||
|
||||
blacklistadd https://www.youtube.com/
|
||||
blacklistadd https://login.us-phoenix-1.idp.mc1.oracleiaas.com/
|
||||
blacklistadd https://jellyfin.cloud.jetpac.org
|
||||
" blacklistadd https://grt.us.oracle.com
|
||||
" auto-contain
|
||||
|
||||
" tip from https://github.com/tridactyl/tridactyl/issues/1559
|
||||
seturl youtube.com modeindicator false
|
||||
|
||||
" vim bind u back
|
||||
" vim bind U undo
|
||||
" vim bind Y clipboard yank
|
||||
" vim u
|
||||
" nbind <c-f>
|
||||
|
||||
" For syntax highlighting see https://github.com/tridactyl/vim-tridactyl
|
||||
" vim: set filetype=tridactyl
|
||||
4
.yamllint
Normal file
4
.yamllint
Normal file
@@ -0,0 +1,4 @@
|
||||
rules:
|
||||
line-length:
|
||||
max: 200
|
||||
allow-non-breakable-words: true
|
||||
52
.zshenv
52
.zshenv
@@ -2,11 +2,24 @@ set -o vi
|
||||
|
||||
export LC_ALL=en_US.UTF-8
|
||||
|
||||
export PATH=/Users/jetpac/.asdf/shims/:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jetpac/work/flutter/bin:$HOME/.rd/bin:$HOME/bin:$PATH:
|
||||
export PATH=/Users/jetpac/.asdf/shims/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jetpac/work/flutter/bin:$HOME/.rd/bin:$HOME/bin:$PATH:$HOME/.fzf/bin
|
||||
|
||||
# homebrew config
|
||||
# output of brew shellenv
|
||||
export HOMEBREW_PREFIX="/opt/homebrew";
|
||||
export HOMEBREW_CELLAR="/opt/homebrew/Cellar";
|
||||
export HOMEBREW_REPOSITORY="/opt/homebrew";
|
||||
fpath[1,0]="/opt/homebrew/share/zsh/site-functions";
|
||||
eval "$(/usr/bin/env PATH_HELPER_ROOT="/opt/homebrew" /usr/libexec/path_helper -s)"
|
||||
[ -z "${MANPATH-}" ] || export MANPATH=":${MANPATH#:}";
|
||||
export INFOPATH="/opt/homebrew/share/info:${INFOPATH:-}";
|
||||
|
||||
|
||||
|
||||
alias oe='open /Applications/Emacs.app'
|
||||
alias mc='/opt/homebrew/bin/mc --nosubshell'
|
||||
# Force mc to use bash for its subshell
|
||||
alias mc='SHELL=/bin/bash mc'
|
||||
|
||||
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
|
||||
alias -g N="2>&1 "
|
||||
alias pig='ping'
|
||||
@@ -103,4 +116,39 @@ if [ -f "/Users/jetpac/.local/bin/k9s" ]; then
|
||||
fi
|
||||
|
||||
|
||||
# lh nodes function for kubectl
|
||||
if [[ -n ${commands[kubectl]} ]]; then
|
||||
lh_nodes() {
|
||||
local ns="${1:-longhorn-system}"
|
||||
kubectl -n "$ns" get nodes.longhorn.io -o yaml | \
|
||||
yq eval '
|
||||
.items[] |
|
||||
{
|
||||
"node": .metadata.name,
|
||||
"allowScheduling": .spec.allowScheduling,
|
||||
"disks": (
|
||||
[ (.spec.disks // {}) | to_entries | .[] |
|
||||
{
|
||||
"diskName": .key,
|
||||
"path": .value.path,
|
||||
"allowScheduling": .value.allowScheduling,
|
||||
"evictionRequested": .value.evictionRequested,
|
||||
"storageReservedGiB": ((.value.storageReserved // 0) / 1073741824)
|
||||
}
|
||||
]
|
||||
),
|
||||
"diskStatus": (
|
||||
[ (.status.diskStatus // {}) | to_entries | .[] |
|
||||
{
|
||||
"diskName": .key,
|
||||
"storageAvailableGiB": ((.value.storageAvailable // 0) / 1073741824),
|
||||
"storageMaximumGiB": ((.value.storageMaximum // 0) / 1073741824),
|
||||
"storageScheduledGiB":((.value.storageScheduled // 0) / 1073741824)
|
||||
}
|
||||
]
|
||||
)
|
||||
}'
|
||||
}
|
||||
|
||||
fi
|
||||
alias scm-ssh='/Users/jetpac/.ssh/scm-script.sh'
|
||||
|
||||
67
.zshrc
67
.zshrc
@@ -113,9 +113,41 @@ COMPLETION_WAITING_DOTS="true"
|
||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(git rsync colorize colored-man-pages vi-mode common-aliases macos themes dircycle iterm2 docker docker-compose zsh-navigation-tools urltools history mercurial tmux zsh-syntax-highlighting zsh-autosuggestions kubectl helm terraform asdf brew web-search kubectl helm aliases emacs)
|
||||
plugins=(colorize colored-man-pages vi-mode common-aliases themes dircycle iterm2 zsh-navigation-tools urltools history zsh-syntax-highlighting zsh-autosuggestions web-search aliases)
|
||||
|
||||
# consider plugin fzf - only available for Mac/Linux
|
||||
cmd_plugins=(git rsync conda tmux docker docker-compose tmux kubectl helm terraform asdf brew emacs fzf asdf brew emacs)
|
||||
|
||||
# Add a plugin only if its command exists
|
||||
add_plugin_if_command_exists() {
|
||||
local cmd="$1"
|
||||
if [[ -n ${commands[$cmd]} ]]; then
|
||||
# Only append if not already in the plugins array
|
||||
if (( ! ${plugins[(Ie)$cmd]} )); then
|
||||
plugins+=("$cmd")
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
for cmd in $cmd_plugins; do
|
||||
add_plugin_if_command_exists "$cmd"
|
||||
done
|
||||
|
||||
# use mercurial plugin
|
||||
if [[ -n ${commands[hg]} ]]; then
|
||||
plugins+=("mercurial")
|
||||
fi
|
||||
|
||||
# use macos plugin
|
||||
if [[ "$(uname -o)" == "Darwin" ]]; then
|
||||
plugins+=("macos")
|
||||
fi
|
||||
|
||||
# use zoxide
|
||||
if [[ -n ${commands[zoxide]} ]]; then
|
||||
export FZF_DEFAULT_OPTS="--style full"
|
||||
export _ZO_FZF_OPTS="--height ~90% --tmux bottom,70% --layout reverse"
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
fi
|
||||
|
||||
# colorize - adds ccat and cless
|
||||
# common-aliases: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/common-aliases
|
||||
@@ -232,6 +264,24 @@ fi
|
||||
unset __conda_setup
|
||||
# <<< conda initialize <<<
|
||||
|
||||
#### <BEGIN conda zsh completion>
|
||||
# --- Enable conda autocompletion ---
|
||||
if command -v conda &>/dev/null; then
|
||||
# Ensure Conda hook is loaded
|
||||
eval "$(conda shell.zsh hook)"
|
||||
|
||||
# Add Conda's completion functions to zsh's function path
|
||||
_conda_zsh_completions_dir="$(conda info --base)/etc/profile.d"
|
||||
if [ -d "$_conda_zsh_completions_dir" ]; then
|
||||
fpath+=("$_conda_zsh_completions_dir")
|
||||
fi
|
||||
fi
|
||||
|
||||
autoload -U compinit && compinit
|
||||
#### <END conda zsh completion>
|
||||
|
||||
|
||||
|
||||
# export PATH="/opt/homebrew/bin:$PATH"
|
||||
|
||||
# for cocoapods
|
||||
@@ -245,3 +295,16 @@ export PATH=$GEM_HOME/bin:$HOME/.gem/ruby/3.3.0/bin:$PATH
|
||||
|
||||
# alias scm-ssh='/Users/jetpac/.ssh/scm-script.sh'
|
||||
# scm-ssh start_agent
|
||||
|
||||
# export FZF_DEFAULT_OPTS="--style full --preview '/opt/homebrew/bin/pygmentize -g {}' --bind 'focus:transform-header:file --brief {}'"
|
||||
|
||||
# set to system ssh-agent
|
||||
if command -v launchctl >/dev/null 2>&1; then
|
||||
export SSH_AUTH_SOCK="$(launchctl getenv SSH_AUTH_SOCK)"
|
||||
fi
|
||||
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
|
||||
# export PATH="/Users/jetpac/.rd/bin:$PATH"
|
||||
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
|
||||
|
||||
@@ -89,12 +89,6 @@
|
||||
"Text" : "01 6c",
|
||||
"Version" : 1
|
||||
},
|
||||
"0x6e-0x80000-0x2d" : {
|
||||
"Action" : 11,
|
||||
"Label" : "",
|
||||
"Text" : "01 6e",
|
||||
"Version" : 1
|
||||
},
|
||||
"0x70-0x80000-0x23" : {
|
||||
"Action" : 11,
|
||||
"Label" : "",
|
||||
|
||||
6
bin/cluster_build_status
Executable file
6
bin/cluster_build_status
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/ksh
|
||||
#
|
||||
# Script to perform certain operations in the US, because I'm lazy :-)
|
||||
#
|
||||
|
||||
ssh pnyc@scapen-cs11u4-1.us.oracle.com /home/pdmitche/bin/nightly_history.ksh $@
|
||||
@@ -4,12 +4,14 @@ set -e
|
||||
set -x
|
||||
|
||||
# function to get PARENT_WS as a parameter
|
||||
# default value is 'ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
|
||||
# default value is 'ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
|
||||
#
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
PARENT_WS='ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
|
||||
PARENT_WS='ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/userland-pipeline'
|
||||
# PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
|
||||
# PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/userland-pipeline'
|
||||
# PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/akidr-text'
|
||||
PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/on-sru'
|
||||
else
|
||||
PARENT_WS=$1
|
||||
fi
|
||||
|
||||
101
bin/lib/common.sh
Normal file
101
bin/lib/common.sh
Normal file
@@ -0,0 +1,101 @@
|
||||
# common useful functions
|
||||
|
||||
w3m_safe() {
|
||||
url="$1"
|
||||
|
||||
output=$(/opt/homebrew/bin/w3m "$url" -M -cols 400 -graph -dump 2>&1)
|
||||
|
||||
if echo "$output" | grep -q "Can't load"; then
|
||||
return 2
|
||||
else
|
||||
echo "$output"
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Returns:
|
||||
# 0 = server reachable & remote command ran
|
||||
# 1 = network/host-not-up-yet
|
||||
# 2 = SSH auth failure (key needs passphrase / wrong key / agent locked) -> caller should abort
|
||||
# 3 = host not found
|
||||
is_server_up() {
|
||||
local host err st err_lc
|
||||
host=$1
|
||||
|
||||
# return 3 if the host does not exist
|
||||
host "$host" 2>&1 > /dev/null || return 3
|
||||
|
||||
# Capture only stderr; do NOT use -q (it suppresses diagnostics we need to classify).
|
||||
# Force English messages for stable matching.
|
||||
err=$(LC_ALL=C /usr/bin/ssh \
|
||||
-o BatchMode=yes \
|
||||
-o PreferredAuthentications=publickey \
|
||||
-o PubkeyAuthentication=yes \
|
||||
-o PasswordAuthentication=no \
|
||||
-o KbdInteractiveAuthentication=no \
|
||||
-o NumberOfPasswordPrompts=0 \
|
||||
-o ConnectTimeout=10 \
|
||||
-o ServerAliveInterval=20 \
|
||||
-o ServerAliveCountMax=3 \
|
||||
-o ConnectionAttempts=1 \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o UserKnownHostsFile=/dev/null \
|
||||
-o LogLevel=ERROR \
|
||||
-n "$host" 'uname -n || hostname' 2>&1 >/dev/null)
|
||||
st=$?
|
||||
|
||||
# Success
|
||||
[ $st -eq 0 ] && return 0
|
||||
|
||||
# ssh uses 255 for any error; distinguish by stderr text
|
||||
err_lc=$(printf '%s' "$err" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
case $err_lc in
|
||||
# Common auth/passphrase/agent problems
|
||||
*"permission denied"*|\
|
||||
*"no supported authentication methods available"*|\
|
||||
*"publickey authentication failed"*|\
|
||||
*"too many authentication failures"*|\
|
||||
*"sign_and_send_pubkey: signing failed"*|\
|
||||
*"agent refused operation"*|\
|
||||
*"agent admitted failure"*|\
|
||||
*"bad permissions"*|\
|
||||
*"enter passphrase"*)
|
||||
printf 'FATAL: SSH authentication failed for "%s": %s\n' "$host" "$err" >&2
|
||||
return 2
|
||||
;;
|
||||
esac
|
||||
|
||||
# Everything else looks like "not up yet" (timeout, DNS, connection refused/reset, kex read, etc.)
|
||||
return 1
|
||||
}
|
||||
|
||||
wait_for_server_to_boot_up() {
|
||||
local server rc
|
||||
server=$1
|
||||
while :; do
|
||||
is_server_up "$server"
|
||||
rc=$?
|
||||
case $rc in
|
||||
0)
|
||||
printf '"%s" is up and running.\n' "$server"
|
||||
return 0
|
||||
;;
|
||||
2)
|
||||
printf 'Aborting: SSH authentication failed for "%s" (key needs passphrase / wrong key / agent locked).\n' "$server" >&2
|
||||
return 2
|
||||
;;
|
||||
3)
|
||||
printf 'Aborting: Host not found.\n' "$server" >&2
|
||||
return 3
|
||||
;;
|
||||
*)
|
||||
printf 'Server "%s" is not up\n' "$server"
|
||||
sleep 10
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# vim: set ts=4 sw=4 tw=0 noet ft=sh:
|
||||
@@ -3,6 +3,14 @@
|
||||
# when the first positional command line parameter is 'on'
|
||||
# and unsets them when the first positional command line parameter is 'off'
|
||||
#
|
||||
# proxy locations are documented at:
|
||||
# https://confluence.oraclecorp.com/confluence/pages/viewpage.action?spaceKey=CORPNET&title=Corporate+Proxy+Environment
|
||||
#
|
||||
# this will get the first defined proxy from the PAC file:
|
||||
# WPAD=http://wpad.oraclecorp.com/wpad.dat
|
||||
# L_PROXY=$(curl -s "$WPAD" | \
|
||||
# grep 'proxies =' | sed -n 's/^[^"]*"\(.*\)".*/\1/p' | \
|
||||
# tr ';' '\n' | grep 'PROXY' | head -1 | sed 's/PROXY //')
|
||||
#
|
||||
# usage:
|
||||
# source proxy off
|
||||
|
||||
492
bin/retag-email
Executable file
492
bin/retag-email
Executable file
@@ -0,0 +1,492 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
#
|
||||
# script to tag notmuch emails based on my preference
|
||||
#
|
||||
# inspired by https://forsooth.org/posts/email-in-spacemacs/index.html
|
||||
#
|
||||
#
|
||||
# tags: important solaris oci osd
|
||||
#
|
||||
#
|
||||
|
||||
notmuch tag +sent -unread 'folder:/[Ss]ent.*/'
|
||||
|
||||
notmuch tag +me to:petr.nyc@oracle.com
|
||||
|
||||
# idea for logic
|
||||
# sort by projects, don't unset new/read tag
|
||||
# at the very bottom, unset the new/read tag based on if I'm interested in the latest
|
||||
# status for the project / logs for the project and so on - good for stepping for someone
|
||||
|
||||
# General sorting rules not specific to projects
|
||||
################################################################################
|
||||
notmuch tag +important -- \
|
||||
tag:new AND "
|
||||
(
|
||||
subject:/[Cc]omplete.*[Tt]raining/ OR
|
||||
subject:/.*Reminder:?/ OR
|
||||
from:elanor.cz OR
|
||||
from:payroll_cz OR
|
||||
from:instructor.cz OR
|
||||
subject:Expense Report Approval OR
|
||||
subject:/[Aa]ction.[Nn]eeded/ OR
|
||||
from:permissions.oci.oraclecloud.com
|
||||
)"
|
||||
notmuch tag +general \
|
||||
tag:new AND "(
|
||||
subject:'Oracle Open Roles' OR
|
||||
from:tania.c.cortez OR
|
||||
from:info@eduagroup.cz OR
|
||||
subject:'FYI: Expense Reimbursement'
|
||||
)"
|
||||
|
||||
notmuch tag +calendar \
|
||||
tag:new AND mimetype:text/calendar
|
||||
|
||||
|
||||
# Solaris
|
||||
################################################################################
|
||||
|
||||
# general solaris
|
||||
notmuch tag +solaris +logs +mrspatmore -- \
|
||||
tag:new AND "(
|
||||
subject:/.*BugDB.*release.deployment/ OR
|
||||
subject:import/sig_ci/mercurial/mrspatmore OR
|
||||
(from:vcap_admin_ww_grp AND subject:/WARNING:|INFO:/)
|
||||
)"
|
||||
|
||||
notmuch tag +solaris +logs \
|
||||
tag:new AND 'subject:Next IDR ID is'
|
||||
notmuch tag +solaris \
|
||||
tag:new AND "(
|
||||
from:deirdre.williams@oracle.com AND subject:'Sustaining Meeting'
|
||||
)"
|
||||
|
||||
# phabricator
|
||||
notmuch tag +phabricator +logs -me \
|
||||
tag:new AND \
|
||||
from:noreply@scapen-phabricator.us.oracle.com
|
||||
|
||||
notmuch tag +s11u3-sru +on \
|
||||
tag:new AND "(
|
||||
tag:phabricator AND
|
||||
subject:/rONCLOSED|rONMAN|rONSRC/ and subject:/11.3/
|
||||
)"
|
||||
|
||||
notmuch tag +s11u3-sru +userland \
|
||||
tag:new AND "(
|
||||
tag:phabricator AND
|
||||
subject:/\[Diffusion\].*rUSERLAND.*11\.3/
|
||||
)"
|
||||
|
||||
notmuch tag +userland -unread -inbox \
|
||||
tag:new AND "(
|
||||
from:mailman-owner@userland.us.oracle.com
|
||||
)"
|
||||
|
||||
notmuch tag +s11u4-sru +userland \
|
||||
tag:new AND "(
|
||||
tag:phabricator AND
|
||||
subject:/\[Diffusion\].*rUSERLAND.*11\.4/
|
||||
)"
|
||||
|
||||
notmuch tag +mrspatmore \
|
||||
tag:new AND "(
|
||||
tag:phabricator AND \
|
||||
subject:/\[Diffusion\].*rMRSPATMORE/
|
||||
)"
|
||||
|
||||
notmuch tag +mrspatmore \
|
||||
tag:new AND "(
|
||||
tag:phabricator AND \
|
||||
subject:/\[Diffusion\].*rREJENKINSLIB/
|
||||
)"
|
||||
|
||||
notmuch tag +IPS \
|
||||
tag:new AND "(
|
||||
tag:phabricator AND \
|
||||
( ( subject:/\[Differential\]/ and body:REPOSITORY NEAR/1 rPKG ) OR
|
||||
( subject:/\[Diffusion\]/ and body:COMMITS NEAR rPKG )
|
||||
)
|
||||
)"
|
||||
|
||||
# akidr
|
||||
notmuch tag +akidr +logs -unread \
|
||||
tag:new AND "(
|
||||
from:vcap_admin_ww_grp AND
|
||||
subject:'Docker with ARU uploadcli has been automatically frozen'
|
||||
)"
|
||||
|
||||
notmuch tag +akidr \
|
||||
tag:new AND "(
|
||||
to:'bot@artas' OR
|
||||
from:'bot@artas' OR
|
||||
to:'fishworks-gk_ww_grp@oracle.com' OR
|
||||
subject:'PASS s11_4aksruidr' OR
|
||||
subject:'Build started for AK IDR' OR
|
||||
subject:'New AK IDR request for'
|
||||
)"
|
||||
|
||||
notmuch tag +akidr +logs -unread \
|
||||
tag:new AND "(
|
||||
from:'vcap_admin_ww_grp@oracle.com' AND \
|
||||
subject:'ARU Uploads has been frozen for' AND \
|
||||
subject:'this is a reminder please review'
|
||||
)"
|
||||
|
||||
notmuch tag +akidr +logs +important \
|
||||
tag:new AND "(
|
||||
(from:sig-devops_ww_grp OR from:adam.paul) AND \
|
||||
subject:/8\.\8.*idr.*DC.*has.failed/
|
||||
)"
|
||||
|
||||
|
||||
# WebRTI
|
||||
notmuch tag +webrti \
|
||||
tag:new AND "(
|
||||
body:Consolidation: AND
|
||||
body:RTI: AND
|
||||
subject:WebRTI:
|
||||
)"
|
||||
notmuch tag +important \
|
||||
tag:new AND "(
|
||||
tag:webrti AND
|
||||
to:petr.nyc and
|
||||
subject:/NEED.APPROVAL.*WebRTI/
|
||||
)"
|
||||
|
||||
|
||||
# BugDB
|
||||
notmuch tag +bugdb \
|
||||
tag:new AND "(
|
||||
from:ociapp-notifications and subject:/ER|Bug/
|
||||
)"
|
||||
|
||||
# ON
|
||||
notmuch tag +on tag:new AND "(tag:webrti AND body:Consolidation: NEAR/1 on"
|
||||
|
||||
notmuch tag +s11u3-sru tag:new AND "(tag:webrti AND tag:on AND body:Gates: S11.SRU.Sustaining)"
|
||||
|
||||
notmuch tag +s11u3-sru tag:new AND "(subject:/Solaris.*11.3.*[Rr]eleased/)"
|
||||
notmuch tag +s11u4-sru tag:new AND "(subject:/Solaris.*11.4.*[Rr]eleased/)"
|
||||
|
||||
notmuch tag +s11u4-sru +logs +on \
|
||||
tag:new and 'from:/root@sig-on-sru11-3-[xs]01/'
|
||||
|
||||
notmuch tag +s11u4-sru tag:new AND "(
|
||||
tag:webrti AND tag:on AND body:Gates: 11.4-SRU
|
||||
)"
|
||||
|
||||
notmuch tag +on +pushlog \
|
||||
tag:new AND \
|
||||
subject:'/export.on-gate.*push/'
|
||||
|
||||
notmuch tag +on +trunk \
|
||||
tag:new AND "(
|
||||
to:gk@hubbins OR to:gatekeeper@hubbins OR to:hg@hubbins OR
|
||||
from:gatekeeper@hubbins
|
||||
)"
|
||||
|
||||
notmuch tag +important \
|
||||
tag:new AND "(
|
||||
tag:on and subject:error and (from:gatekeeper@hubbins or to:gatekeeper@hubbins)
|
||||
)"
|
||||
|
||||
notmuch tag +important +s11u4-sru +on \
|
||||
tag:new AND "(
|
||||
from:sig-devops_ww_grp AND
|
||||
subject:/INPUT.NEEDED.*11.4|s11u4_sust.*Ready.for/
|
||||
)"
|
||||
|
||||
notmuch tag +trunk \
|
||||
tag:new AND "(
|
||||
tag:on AND tag:pushlog body:Branch: default
|
||||
)"
|
||||
|
||||
notmuch tag +s11u3-sru tag:new AND "(
|
||||
tag:on AND tag:pushlog body:Branch: s11u3-sru
|
||||
)"
|
||||
|
||||
notmuch tag +on +trunk +logs \
|
||||
tag:new AND \
|
||||
'(to:gk-builds@hubbins.us.oracle.com OR to:gk-splice-builds@hubbins.us.oracle.com) AND body:"Build summary"'
|
||||
|
||||
notmuch tag +on +trunk +logs -unread \
|
||||
tag:new AND "(
|
||||
from:noaccess AND
|
||||
subject:/boston|eleven|hopper|on-gate-test|severin|smalls|stumpy|zero/
|
||||
)"
|
||||
|
||||
notmuch tag +on +trunk +jenkins tag:new AND to:gk-jenkins@hubbins.us.oracle.com
|
||||
notmuch tag +on +trunk +logs \
|
||||
tag:new AND "(
|
||||
(to:gk@hubbins.us.oracle.com and subject:'zpool report for') OR
|
||||
(to:on-parfait@hubbins and subject:'Parfait Differences')
|
||||
)"
|
||||
|
||||
notmuch tag +on +s11u4-sru +logs +important \
|
||||
tag:new AND "(
|
||||
from:gk@hubbins.us.oracle.com AND
|
||||
subject:'New SRU branch from trunk'
|
||||
)"
|
||||
|
||||
notmuch tag +on +trunk +s11u4-sru +s11u3-sru +logs +important \
|
||||
tag:new AND subject:on-repo-hooks
|
||||
|
||||
notmuch tag +on +s11u4-sru +important +logs \
|
||||
tag:new AND 'subject:/URGENT:.production.build-11.4.*/'
|
||||
|
||||
notmuch tag +on +pushlog \
|
||||
tag:new AND to:hubbins AND 'subject:/.export\/on-gate.*push/'
|
||||
|
||||
notmuch tag +on +s11u4-sru +important +logs \
|
||||
tag:new AND subject:"fail" AND subject:"Solaris_11/11.4/ON" AND subject:"11.4"
|
||||
|
||||
notmuch tag +on +s11u4-sru +important +logs \
|
||||
tag:new AND subject:"fail" AND 'subject:/on-11u4-bld/'
|
||||
|
||||
notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
tag:new AND "(
|
||||
from:s11autoport_grp@oracle.com AND
|
||||
(subject:'periodic GKAP push analysis') or subject:'GK Backport testing has completed'
|
||||
)"
|
||||
|
||||
notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
"tag:new AND tag:inbox AND (subject:GKAP or subject:GKAB)"
|
||||
|
||||
notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
"tag:new AND to:rpe_gk_backport_ww_grp and subject:/pass.*on11u4.*scapen/"
|
||||
|
||||
notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
"tag:new AND from:blduser@bld.us.oracle.com AND to:rpe_gk_backport_ww_grp"
|
||||
|
||||
notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
"tag:new AND from:rpe_sme_ww_grp AND NOT
|
||||
(subject:/INTERIM.GK.Backport.*/ OR subject:/New.GK.backport.testing.has.started/ OR
|
||||
subject:/^.*GK.Backport.testing.has.completed/ OR
|
||||
subject:/INTERIM.GK.Backport.report.for/)"
|
||||
|
||||
|
||||
|
||||
|
||||
# notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
# tag:new AND from:rpe_sme_ww_grp@oracle.com AND subject:"/INTERIM.GK.Backport.report.for.GKAP_11.4.*/"
|
||||
|
||||
# notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
# "tag:new AND subject:/.*Build.*GKAB.*Completed/"
|
||||
|
||||
# notmuch tag +on +gkap +logs +s11u4-sru \
|
||||
# "tag:new AND from:rpe_gk_backport_ww_grp AND (subject:pass or subject:successfull or subject:successful)"
|
||||
|
||||
|
||||
notmuch tag +on +logs +s11u4-sru \
|
||||
tag:new AND "(
|
||||
subject:/on-gate.s11u4..*.packages.ready/ OR
|
||||
subject:/pass:.*Solaris_11/11.4/ON/production.build-11.4.*/ OR
|
||||
subject:/^pass.*11.4..*.11.4.*..on-11u4-bld-[xs]./
|
||||
)"
|
||||
|
||||
notmuch tag +solaris +logs -unread \
|
||||
tag:new AND 'subject:/\[\/var\/tmp\/repo_cache\/PKG\]/'
|
||||
|
||||
notmuch tag +on +important \
|
||||
tag:new AND \
|
||||
to:solaris_sru_gk_ww_grp AND \
|
||||
subject:FAILED
|
||||
|
||||
# userland
|
||||
notmuch tag +userland tag:new AND "subject:GATE OPEN" AND "from:solaris_sru_gk_ww_grp" AND body:userland
|
||||
notmuch tag +userland tag:new AND tag:webrti AND "body:/Consolidation.*userland/"
|
||||
notmuch tag +s11u4-sru tag:new AND tag:userland AND tag:webrti AND body:"/Gates:.*S11.4-SRU/"
|
||||
notmuch tag +trunk tag:new AND tag:userland AND tag:webrti AND body:"/Gates:.*solaris-trunk/"
|
||||
notmuch tag +userland tag:new AND to:userland-s11-sru-notify
|
||||
notmuch tag +s11u3-sru \
|
||||
tag:new AND \
|
||||
tag:userland AND \
|
||||
subject:'push to s11u3-sru'
|
||||
notmuch tag +s11u4-sru \
|
||||
tag:new AND \
|
||||
tag:userland AND \
|
||||
subject:'/.*push.to.s11u4_sust.*/'
|
||||
|
||||
|
||||
# cluster
|
||||
notmuch tag +cluster \
|
||||
tag:new AND "(
|
||||
tag:webrti AND (body:Consolidation: sc-geo or body:Consolidation: suncluster) OR
|
||||
subject:'SC4.4 SRU Nightly' OR from:'SC Build Engineering'
|
||||
)"
|
||||
notmuch tag +important \
|
||||
tag:new AND \
|
||||
tag:cluster and 'subject:/[Ff]ail/'
|
||||
|
||||
# IPS
|
||||
notmuch tag +IPS \
|
||||
tag:new AND \
|
||||
subject:'[Differential]' AND body:'rPKG Solaris Image Packaging System'
|
||||
|
||||
# RE
|
||||
notmuch tag +RE \
|
||||
tag:new AND "(
|
||||
to:solaris-re_us_grp OR
|
||||
to:ips_tracker_support_ww_grp OR
|
||||
from:ips_tracker_support_ww_grp
|
||||
)"
|
||||
|
||||
notmuch tag +s11u3-sru \
|
||||
tag:new AND \
|
||||
tag:re AND \
|
||||
'subject:/Oracle.Solaris.11\.3/'
|
||||
|
||||
notmuch tag +RE +s11u4-sru \
|
||||
tag:new AND \
|
||||
tag:RE AND \
|
||||
'subject:/.*IDRs.*s11_4sru.*/'
|
||||
|
||||
notmuch tag +s11u4-sru \
|
||||
tag:new AND \
|
||||
tag:RE AND \
|
||||
'subject:/RTI.*withdrawal.notification/' AND \
|
||||
body:'11.4'
|
||||
|
||||
notmuch tag +s11u4-sru \
|
||||
tag:new AND \
|
||||
tag:RE AND \
|
||||
'subject:/S11.4.*repo.ready.for.testing/'
|
||||
|
||||
|
||||
notmuch tag +s11u3-sru \
|
||||
tag:new AND \
|
||||
tag:RE AND \
|
||||
'subject:/.*IDRs.*s11_3sru.*/'
|
||||
|
||||
notmuch tag +cluster \
|
||||
tag:new AND \
|
||||
tag:re AND \
|
||||
'(subject:/.*IDRs.*cluster.*/ OR subject:/SRU.Build.Package.Profile.successfully.created.for.solariscluster.*/)'
|
||||
|
||||
notmuch tag +akidr \
|
||||
tag:new AND \
|
||||
tag:RE AND \
|
||||
'subject:/.*Tracker.FYI.*IDR.*state.change/'
|
||||
|
||||
notmuch tag +RE s11u4-sru \
|
||||
tag:new AND \
|
||||
subject:'[Differential]' AND body:'Repository rRETRUNK Release Engineering Trunk Gate'
|
||||
|
||||
notmuch tag +RE +logs -unread \
|
||||
tag:new AND "(
|
||||
from:noaccess AND
|
||||
subject:/ipkg[1-9]/
|
||||
)"
|
||||
|
||||
notmuch tag +solaris \
|
||||
tag:new AND "(
|
||||
tag:akidr OR
|
||||
tag:bugdb OR
|
||||
tag:cluster OR
|
||||
tag:IPS OR
|
||||
tag:on OR
|
||||
tag:phabricator OR
|
||||
tag:RE OR
|
||||
tag:trunk OR
|
||||
tag:userland OR
|
||||
tag:webrti
|
||||
)"
|
||||
|
||||
# end of Solaris
|
||||
################################################################################
|
||||
|
||||
# OCI / OSD
|
||||
################################################################################
|
||||
|
||||
|
||||
# seatch term to include in each search
|
||||
# commented out for debugging
|
||||
# ST='tag:new'
|
||||
ST="date:1/1/2026.."
|
||||
|
||||
notmuch tag +osd \
|
||||
"$ST" AND "(
|
||||
to:osd-devops_ww_grp@oracle.com OR \
|
||||
subject:[gbu confluence]
|
||||
)"
|
||||
|
||||
notmuch tag +osd +brownbag \
|
||||
"$ST" AND 'subject:/[Bb]rown.[Bb]ag/'
|
||||
notmuch tag +deployment-ticket "$ST" AND tag:osd AND subject:"New OSD deployment ticket:"
|
||||
notmuch tag +ocean-incident "$ST" AND tag:osd AND subject:"[Ocean Incident]"
|
||||
notmuch tag +alarm "$ST" AND tag:osd AND subject:'Alarm: '
|
||||
notmuch tag +osd "$ST" AND subject:'InfraCloud JIRA'
|
||||
notmuch tag +osd +sgd \
|
||||
"$ST" AND subject:'SGD'
|
||||
notmuch tag +oci +announcement \
|
||||
"$ST" AND subject:'A PSA'
|
||||
# PRs for approval
|
||||
notmuch tag +osd +PRs \
|
||||
"$ST" AND subject:'ACTION REQUIRED - Peer approval needed for Change Request' AND \
|
||||
body:'/Service Owner:.*Desktop as a Service/'
|
||||
# PRs from other projects
|
||||
notmuch tag +oci +CCAT-PRs \
|
||||
"$ST" AND \
|
||||
subject:'ACTION REQUIRED - Peer approval needed for Change Request' AND \
|
||||
body:'/Service Owner:Compute Cloud at Customer/'
|
||||
|
||||
# OCI production regions
|
||||
notmuch tag +oci +osd +important +region-ga \
|
||||
"$ST" AND \
|
||||
"from:/OCI-REGION-BUILD.*/"
|
||||
|
||||
# Change Freeze
|
||||
notmuch tag +oci +important +changefreeze \
|
||||
"$ST" AND \
|
||||
"subject:/Oracle.Change.Management.Alert/"
|
||||
|
||||
|
||||
# ODAAS Deployments Calendar
|
||||
notmuch tag +osd +calendar \
|
||||
"$ST" AND \
|
||||
"subject:/\[confluence\].*created.a.new|updated.a.*event.in.the.*OSD.RE.Deployments.*calendar/"
|
||||
|
||||
# ODAAS PRs
|
||||
notmuch tag +osd +PRs\
|
||||
"$ST" AND \
|
||||
"subject:/ODAAS\/.*Pull.request.*:/"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
notmuch tag +oci tag:new AND tag:osd
|
||||
|
||||
################################################################################
|
||||
|
||||
# I don't want these in my focused inbox
|
||||
################################################################################
|
||||
|
||||
# passed logs for on trunk
|
||||
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:logs AND subject:"pass"
|
||||
|
||||
# trunk RTIs,pushlog,jenkins logs
|
||||
notmuch tag -inbox -unread tag:trunk and tag:webrti
|
||||
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:pushlog
|
||||
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:jenkins
|
||||
|
||||
# ON GKAP notifications
|
||||
notmuch tag -inbox -unread tag:new AND tag:gkap AND tag:logs and not subject:failed
|
||||
|
||||
# osd ocean incidents, alarms
|
||||
notmuch tag -inbox -unread tag:osd AND '(tag:ocean-incident or tag:alarm)'
|
||||
|
||||
|
||||
# emails with subject:"REGION BUILD ALERT]" are important to watch
|
||||
|
||||
|
||||
|
||||
# ================================================================================
|
||||
# the very last part of this - remove the new tag
|
||||
notmuch tag -new tag:new
|
||||
@@ -12,7 +12,8 @@ AWK=/usr/bin/awk
|
||||
CURL=/usr/bin/curl
|
||||
|
||||
source "${BINDIR}/lib/logging.sh"
|
||||
TARGET="${1-11.4.83.0.1.195.1}"
|
||||
TARGET="${1-11.4.88.0.1.207.1}"
|
||||
hg_branch="s11u4_sust_087"
|
||||
log::info "TARGET:${TARGET}"
|
||||
|
||||
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=4&target=${TARGET}"
|
||||
@@ -43,6 +44,7 @@ set -x
|
||||
curl -X POST "${JOB_URL}" \
|
||||
--user "pnyc:${JENKINS_TOKEN}" \
|
||||
--data-urlencode "Build_Label=${TARGET}" \
|
||||
--data-urlencode "hg_branch=${hg_branch}" \
|
||||
--data-urlencode "hguser=petr.nyc@oracle.com" \
|
||||
--data-urlencode "verbose=true" \
|
||||
--data-urlencode "debug=true" \
|
||||
|
||||
@@ -13,6 +13,7 @@ CURL=/usr/bin/curl
|
||||
|
||||
source "${BINDIR}/lib/logging.sh"
|
||||
TARGET="${1-11.4.83.0.1.195.1}"
|
||||
hg_branch="s11u4_sust_084"
|
||||
log::info "TARGET:${TARGET}"
|
||||
|
||||
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=4&target=${TARGET}"
|
||||
@@ -43,6 +44,7 @@ set -x
|
||||
curl -X POST "${JOB_URL}" \
|
||||
--user "pnyc:${JENKINS_TOKEN}" \
|
||||
--data-urlencode "Build_Label=${TARGET}" \
|
||||
--data-urlencode "hg_branch=${hg_branch}" \
|
||||
--data-urlencode "hguser=petr.nyc@oracle.com" \
|
||||
--data-urlencode "verbose=true" \
|
||||
--data-urlencode "debug=true" \
|
||||
|
||||
@@ -13,7 +13,7 @@ CURL=/usr/bin/curl
|
||||
|
||||
source "${BINDIR}/lib/logging.sh"
|
||||
|
||||
TARGET="${1-11.4.84.0.1.201.1}"
|
||||
TARGET="${1-11.4.88.0.1.207.1}"
|
||||
|
||||
log::info "TARGET:${TARGET}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user