Compare commits

...

42 Commits

Author SHA1 Message Date
Petr Nyc
b35293a9f0 config tweaks 2026-02-13 09:46:37 +01:00
Petr Nyc
4ee18f77e0 codex config 2026-02-09 09:52:23 +01:00
Petr Nyc
42b3c7d306 before security stuff reboot 2026-02-04 14:23:01 +01:00
Petr Nyc
b1885f5463 laptop is discharging 2026-01-30 21:42:47 +01:00
Petr Nyc
db6a8c0de2 aidermacs layer config 2026-01-22 15:51:03 +01:00
Petr Nyc
d0b359d475 added solaris focused inbox 2026-01-22 14:51:06 +01:00
Petr Nyc
97ed53041c more notmuch-hello finetuning 2026-01-21 22:27:37 +01:00
Petr Nyc
59a00dbb6e notmuch-hello finetuning 2026-01-21 22:00:54 +01:00
Petr Nyc
84741f68ed notmuch - notmuch-hello & retag-email changes 2026-01-21 21:48:34 +01:00
Petr Nyc
36635268be notmuch-hello config 2026-01-21 21:46:26 +01:00
Petr Nyc
cc5e1a21e3 homebrew config 2026-01-21 14:40:08 +01:00
Petr Nyc
558efec514 notmuch hello config 2026-01-19 22:28:48 +01:00
Petr Nyc
b789f4afe9 notmuch email tagging 0.2 2026-01-19 22:28:48 +01:00
Petr Nyc
a3a021ee18 notmuch email tagging 0.1 2026-01-19 22:26:32 +01:00
Petr Nyc
3c76055b05 notmuch tweaks 2026-01-19 21:10:13 +01:00
Petr Nyc
f4e8efeb8f added conda layer 2026-01-18 21:13:10 +01:00
Petr Nyc
6aef629cc2 dockerfile and terraform syntax checking 2026-01-18 17:26:59 +01:00
Petr Nyc
d80bca7f00 Syntax checking for python 2026-01-18 12:20:03 +01:00
Petr Nyc
ab11fc8566 custom mods 2026-01-18 12:20:03 +01:00
Petr Nyc
516f5cd88a magit-status-dotfiles function bug fix 2026-01-18 12:20:03 +01:00
Petr Nyc
866eed3a57 commented out org-calendar - doesn't work to my satisfaction 2026-01-18 12:20:03 +01:00
Petr Nyc
3438d019a9 org-jira config for Emacs 2026-01-17 16:43:32 +01:00
Petr Nyc
108c9cefd7 update 2026-01-16 09:42:02 +01:00
Petr Nyc
766e6808b5 update 2025-12-08 08:57:11 +01:00
Petr Nyc
c84c63b0b8 minor spacemacs changes 2025-11-21 19:34:24 +01:00
Petr Nyc
56a36622c1 before upgrade 2025-11-18 08:57:41 +01:00
Petr Nyc
5715fd5577 periodic check-in 2025-11-11 16:25:03 +01:00
Petr Nyc
25384cbd95 new functions and spacemacs config tweaks 2025-09-25 12:45:09 +02:00
Petr Nyc
0cb372ee42 is_server_up and wait_for_server_to_boot up functions 2025-09-25 09:49:43 +02:00
Petr Nyc
879f3fb0bf changed target for UL gate open 2025-09-23 11:21:52 +02:00
Petr Nyc
9b34237c99 changed dabel to andel - andel keeps old ssh ciphers 2025-09-22 18:42:12 +02:00
Petr Nyc
185d2e20b5 karabiner changes 2025-09-16 21:38:12 +02:00
Petr Nyc
44efe712fe 16.9. before IE layoffs 2025-09-16 18:54:13 +02:00
Petr Nyc
c6e19f8633 2.9 2025-09-02 10:06:29 +02:00
Petr Nyc
f0f6f560c6 25.8. 2025-08-25 12:28:03 +02:00
Petr Nyc
8fc1c62462 add tridactyl config 2025-08-18 18:43:20 +02:00
Petr Nyc
13a20f7783 14.8.2025 2025-08-14 15:12:45 +02:00
Petr Nyc
8064928ba4 1.8.2025 2025-08-01 15:13:10 +02:00
Petr Nyc
7950fdc252 UL scripting changes 2025-06-24 14:09:22 +02:00
Petr Nyc
64d163dc1a UL scripting changes 2025-06-24 09:51:16 +02:00
Petr Nyc
a9a135ca0b ssh config for pnyc-ws 2025-06-09 14:36:53 +02:00
Petr Nyc
405a4637ee 17.5.2025 Saturday 22:41 2025-05-17 22:41:18 +02:00
29 changed files with 2494 additions and 99 deletions

31
.aider.conf.yml Normal file
View 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
View 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"

View File

@@ -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" }
}
]
}

View File

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

View File

@@ -45,3 +45,7 @@
defaultBranch = master
[webui]
autoupdate = true
; [color]
; ui = auto
[http]
sslVerify = false

2
.mailcap Normal file
View 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
View 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]

View File

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

15
.seeks.ccatc Normal file
View File

@@ -0,0 +1,15 @@
[dep]
upgrade: ask
user_email: petr.nyc@oracle.com
[bitbucket]
username: pnyc
[templates]
project: CCATC
repo: ccatc-seeks
branch: main
vcs: SCM
scmrepo: ocid1.devopsrepository.oc1.phx.amaaaaaaw4vcxbyahrz7vgu4tdwdcfwd26e5fvmcoidmxrtmdvwyowqhi6rq
filepath: seeks_templates.conf

12
.seeks.odaas Normal file
View File

@@ -0,0 +1,12 @@
[dep]
upgrade: ask
user_email: petr.nyc@oracle.com
[bitbucket]
username: pnyc
[templates]
project: ODAAS
repo: cm_automation
branch: main
filepath: change_templates/seeks_templates.conf

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,19 @@
Include config-scm
Include ssh_configs/config
Include osd_configs/config
Include user
Host bitbucket.oci.oraclecorp.com
IdentityFile ~/.ssh/orabucket
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

View File

@@ -1,3 +1,6 @@
# Include config-scm
Host *
# UseKeychain yes
AddKeysToAgent yes
@@ -15,12 +18,38 @@ 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
Host solaris-reviews.us.oracle.com
User hg
IdentityFile ~/.ssh/id_phabricator
Host hetzner
HostName u444067.your-storagebox.de
User u444067
Port 23
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
IdentityFile ~/.ssh/id_pnyc-ws
# ssh -i ./id_pnyc-ws opc@pnyc-ws.webad1phx.solarisx86phx.oraclevcn.com
Host osdbld
HostName 100.73.219.187
User opc
@@ -61,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
@@ -139,4 +168,3 @@ Include ossh_configs/*.ossh
Include ssh_configs/config
Include osd_configs/config

267
.ssh/scm-script.sh Executable file
View 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
View 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
View File

@@ -0,0 +1,4 @@
rules:
line-length:
max: 200
allow-non-breakable-words: true

64
.zshenv
View File

@@ -2,17 +2,40 @@ 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'
# export PATH=$HOME/.rd/bin
#
# on speccy only
if [[ "$(hostname)" == "speccy" ]];
then
# defined via https://github.com/syl20bnr/spacemacs/wiki/Terminal
export TERM=xterm-24bit
alias ssh="TERM=xterm-256color ssh"
alias vi=te
alias vim=te
fi
# for gems installed in my home direcotry
# inspiration: https://guides.cocoapods.org/using/getting-started.html#installation
@@ -85,7 +108,7 @@ alias nextcloud-shell='k exec -n nextcloud deployments/nextcloud -c nextcloud -i
alias nextcloud-shell-root='k exec -n nextcloud deployments/nextcloud -c nextcloud -it -- bash'
alias occ='k exec -n nextcloud deployments/nextcloud -c nextcloud -it -- runuser --user www-data /var/www/html/occ'
alias speech_to_text="$HOME/Downloads/whisper-cpp/convert_video_to_txt.sh"
alias speech_to_text="$HOME/Downloads/whisper.cpp/convert_video_to_txt.sh"
if [ -f "/Users/jetpac/.local/bin/k9s" ]; then
@@ -93,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'

71
.zshrc
View File

@@ -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)
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
@@ -241,3 +291,20 @@ export PATH=$GEM_HOME/bin:$HOME/.gem/ruby/3.3.0/bin:$PATH
# Generated for envman. Do not edit.
# [ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
# 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)

View File

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

View File

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

View File

@@ -5,7 +5,7 @@
trap 'exit 1' HUP INT QUIT TERM
trap 'on_error' EXIT
# trap 'on_error' EXIT
log::prefix() {
date=$(/opt/homebrew/bin/gdate '+%Y-%m-%d %H:%M:%S,%3N')

View File

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

View File

@@ -1,16 +1,36 @@
#!/usr/bin/env bash
source lib/logging.sh
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
TARGET=$1
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
source "${BINDIR}/lib/logging.sh"
if [ -z "$TARGET" ];
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
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}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | $AWK '/^Details/ {found=1; next} found && NF')
if [[ -z "$out" ]];
then
log::fatal "No target specified on command line"
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info"Starting build for for Ul11u4SRU"
log::info "Starting build for for Ul11u4SRU"
log::info "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
@@ -24,17 +44,23 @@ 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 "dryrun=false" \
--data-urlencode "verbose=true" \
--data-urlencode "debug=true" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_check_sru_cbe=true" \
--data-urlencode "prepare_work_area=true" \
--data-urlencode "do_build=true" \
--data-urlencode "prepare_delivery=true" \
--data-urlencode "merge_repo=true" \
--data-urlencode "create_sparse_repo=true" \
--data-urlencode "check_incorporations=true" \
--data-urlencode "zip_sparse_repo=true" \
--data-urlencode "create_escrow=true" \
--data-urlencode "create_foss=true" \
--data-urlencode "integration_dryrun=false" \
--data-urlencode "confirm_before_ingegration=false" \
--data-urlencode "wait_for_dock_open=true" \
--data-urlencode "delivery=true"
log::info "The job will be started here:"

View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
source "${BINDIR}/lib/logging.sh"
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
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}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | $AWK '/^Details/ {found=1; next} found && NF')
if [[ -z "$out" ]];
then
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info "Starting build for for Ul11u4SRU"
log::info "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
JENKINS_SERVER='http://mrshughes.us.oracle.com/jenkins/'
JOB_URL="${JENKINS_SERVER}/job/Solaris_11/job/11.4/job/userland-sru/job/userland-sru-build-11.4/buildWithParameters"
log::info "Using '${JOB_URL}'"
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" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_check_sru_cbe=false" \
--data-urlencode "prepare_work_area=false" \
--data-urlencode "do_build=false" \
--data-urlencode "merge_repo=true" \
--data-urlencode "create_sparse_repo=true" \
--data-urlencode "check_incorporations=true" \
--data-urlencode "zip_sparse_repo=true" \
--data-urlencode "create_escrow=true" \
--data-urlencode "create_foss=true" \
--data-urlencode "integration_dryrun=false" \
--data-urlencode "confirm_before_ingegration=false" \
--data-urlencode "wait_for_dock_open=true" \
--data-urlencode "delivery=true"
log::info "The job will be started here:"
log::info " ${JOB_URL%%buildWith*}"

View File

@@ -1,5 +1,7 @@
#!/usr/bin/env bash
# set -x
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
@@ -11,14 +13,21 @@ CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
TARGET="${1-11.4.81.0.1.195.1}"
TARGET="${1-11.4.88.0.1.207.1}"
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=20&show=All&gateName=S11.4-SRU&status=1&target=${TARGET}"
log::info "TARGET:${TARGET}"
out=$($W3M "$URL" -M -cols 400 -graph -dump | $AWK '/^Details/ {found=1; next} found && NF')
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=1&target=${TARGET}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | awk '/^Details.*Consolidation/ {found=1; next} found')
if [[ -z "$out" ]];
then
# log::debug "output: ### $out ###"
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi

65
bin/ul11u4_integrate.sh Executable file
View File

@@ -0,0 +1,65 @@
#!/usr/bin/env bash
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
source "${BINDIR}/lib/logging.sh"
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
TARGET="${1-11.4.83.0.1.195.1}"
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}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | $AWK '/^Details/ {found=1; next} found && NF')
if [[ -z "$out" ]];
then
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info "Starting build for for Ul11u4SRU"
log::info "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
JENKINS_SERVER='http://mrshughes.us.oracle.com/jenkins/'
JOB_URL="${JENKINS_SERVER}/job/Solaris_11/job/11.4/job/userland-sru/job/userland-sru-build-11.4/buildWithParameters"
log::info "Using '${JOB_URL}'"
set -x
curl -X POST "${JOB_URL}" \
--user "pnyc:${JENKINS_TOKEN}" \
--data-urlencode "Build_Label=${TARGET}" \
--data-urlencode "hguser=petr.nyc@oracle.com" \
--data-urlencode "verbose=true" \
--data-urlencode "debug=true" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_check_sru_cbe=false" \
--data-urlencode "prepare_work_area=false" \
--data-urlencode "do_build=false" \
--data-urlencode "merge_repo=false" \
--data-urlencode "create_sparse_repo=false" \
--data-urlencode "check_incorporations=false" \
--data-urlencode "zip_sparse_repo=false" \
--data-urlencode "create_escrow=false" \
--data-urlencode "create_foss=false" \
--data-urlencode "integration_dryrun=false" \
--data-urlencode "confirm_before_ingegration=false" \
--data-urlencode "wait_for_dock_open=true" \
--data-urlencode "delivery=true"
log::info "The job will be started here:"
log::info " ${JOB_URL%%buildWith*}"