aboutsummaryrefslogtreecommitdiffstats
path: root/mkhint
AgeCommit message (Collapse)AuthorFilesLines
3 daysfeat: fetch_manifest + fake-wget manifest fixture supportDanilo M.1-0/+12
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfeat: load_bundle_manifests + manifest_url_forDanilo M.1-0/+28
Parse the pkg->url-template config and substitute {VERSION}. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfeat: match_dep_url maps a hint download line to a manifest URLDanilo M.1-0/+49
Repo-path match first, exact basename-stem fallback for blob hosts. Blob host repo (owner/deps) is excluded from repo-path matching so it resolves by stem. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfeat: parse_manifest reads NAME_URL entries from a deps manifestDanilo M.1-0/+13
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfeat: add BUNDLE_MANIFEST_FILE config varDanilo M.1-0/+6
Opt-in per-package manifest for bundled-dep reconciliation. No behavior yet; wires the config default and the test-harness path patch. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4 daysfix: bump dash-form dated URLs on version changev1.1.3Danilo M.1-2/+12
--hintfile -V and --new -V only substituted the packaged underscore form of the old version, so download URLs using the upstream dash form (dates like 2026-07-07, tags) kept pointing at the old tarball and their md5 went stale. Now both the underscore and dash variants of old->new are rewritten. exploitdb was the trigger case. Tests T74 (--hintfile) and T75 (--new) cover the dashed-URL bump. Release v1.1.3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 dayschore: release v1.1.2v1.1.2Danilo M.1-1/+1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 dayschore: release v1.1.1v1.1.1Danilo M.1-1/+1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 daysfeat: compact --help, move reference to man pageDanilo M.1-23/+2
Trim show_help to a usage synopsis, the options list, the runtime paths, and a 'man mkhint' pointer. The usage examples, variable-order note, and exit-code table now live in the man page. Add T73 asserting --help exits 0 and points at the man page. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 daysfeat: show config-file presence in --helpDanilo M.1-0/+1
Add a 'Config file:' line to the help output reporting whether $MKHINT_CONFIG is present and sourced or absent (defaults in use). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 dayschore: release v1.1.0v1.1.0Danilo M.1-1/+1
Bump MKHINT_VERSION to 1.1.0, close CHANGELOG [Unreleased] as [1.1.0]. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 daysfeat: slackrepo build for new packages, update for existingDanilo M.1-11/+37
6 daysdocs: show version in --help, rename version flag in help textDanilo M.1-8/+9
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysfeat!: -v/--version prints tool version; hint version moves to -V/--set-versionDanilo M.1-4/+10
BREAKING CHANGE: the hint-version flag is now -V/--set-version. -v/--version now prints the tool's own version and exits. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysfeat: -l colors newer version cell green, adds DelReq columnDanilo M.1-9/+32
Equal versions keep the yellow row (and MATCHED_PKGS for -R). When versions differ, sort -V picks the newer side and only that cell is green. New DelReq column (before Created) shows a check when the hint has a populated DELREQUIRES. Tests T60-T64 added. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysfeat: -l <pkg...> shows side-by-side hint vs .infoDanilo M.1-9/+35
With package names, --list skips the table and shows each named hint diffed against its .info (git diff --no-index, else diff -y), missing hint exits 2. Diff display extracted to _show_hint_diff, shared with --review. Bash completion completes hint names after -l. Adds T58, T59. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysfeat: -l skips versionless hints, widen version columnsDanilo M.1-2/+4
--list now skips hint files with no VERSION (e.g. pure DELREQUIRES hints) and excludes them from the total. Version columns widened 10->22 to fit long version strings without shifting other rows. Adds T57. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysAdd phantom-dep stripping for slackware-currentDanilo M.1-2/+113
SBo SlackBuilds target stable; some build deps (rust-opt, google-go-lang) are unneeded on -current. Auto-add DELREQUIRES for these instead of writing a hintfile per dependent by hand. - Read the phantom-dep list from ~/.config/mkhint/phantom-deps (one per line, # comments; missing file = no-op). - --fix-current / -F: sweep the repo, ensure every package whose REQUIRES contains a phantom dep carries the matching DELREQUIRES. Create a minimal hint if absent, back up and merge into an existing hint otherwise. Idempotent, no prompts, mutually exclusive with -v/-f/-n. - --new: auto-append DELREQUIRES for phantom deps found in the .info. - Tests T50-T56; docs and bash-completion updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 daysfeat: treat dashed upstream version as equivalent to packaged underscore formDanilo M.1-4/+13
SlackBuild versions cannot contain '-' (it breaks PRGNAM parsing), so an upstream date like 2026-06-02 is packaged as 2026_06_02. mkhint was comparing them byte-for-byte and offering a spurious upgrade/downgrade. Add _normalize_version ('-' -> '_') and apply it to the upstream version in --check and --hintfile (no -v) before comparing and before storing, so equivalent versions compare equal and accepted updates are written in the underscore form. nvtake still uses nvchecker's raw keyfile value. Tests T48/T49 cover equivalence and normalized storage (105 passing). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 daysstyle: split local decl/assign and quote path varsDanilo M.1-10/+10
local X=$(cmd) masks the command exit code under set -e; split into declaration then assignment at the four remaining sites. Quote unquoted path expansions (dlfile, HINT_DIR, REPO_DIR, info, normalized_file). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysdocs: document -R <pkg...> named-hint reviewDanilo M.1-1/+2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysfeat: review named hints via -R <pkg...> regardless of version matchDanilo M.1-5/+15
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysrefactor: extract _review_one_hint, drive review loop from a listDanilo M.1-35/+60
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19perf: scan single nvchecker entry with -e for single-package checksDanilo M.1-4/+10
When --check is given exactly one package, and when --hintfile suggests a version without -v, run `nvchecker -e <pkg>` so only that entry is scanned instead of the whole nvchecker.toml. Two+ packages or no args still do one full scan, since nvchecker -e accepts only a single entry. Add T42/T43 (mock nvchecker now logs its args), and update CLAUDE.md and README.md (including the previously undocumented -R/--review and -l highlight). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19fix: strip trailing slash in review hint path for consistent outputDanilo M.1-1/+1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19feat: add -R/--review loop with side-by-side diff and keep/delete promptDanilo M.1-6/+67
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19feat: highlight hint rows whose version matches SBo .info in -lDanilo M.1-2/+25
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18refactor: extract _remove_hint helper for reuse in review loopDanilo M.1-8/+14
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13fix: resolve relative nvchecker keyfile path against config dirDanilo M.1-0/+5
nvchecker resolves a relative oldver/newver/keyfile path against the config file's directory, not the CWD. _nvchecker_newver_path returned the raw relative string (e.g. "new_ver.json"), so nvchecker_latest's [[ -f ]] check ran against whatever CWD 'mkhint -C' was launched from — almost never the config dir. Result: every package reported 'no nvchecker result' and the run said 'all up to date' despite nvchecker having found updates. Resolve non-absolute keyfile paths against dirname(NVCHECKER_CONFIG). T35 covers a relative newver path with the keyfile beside the config. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13fix: quote nvchecker section names containing non-bare-key charsDanilo M.1-7/+24
Section names with '.', '-', etc. must be TOML-quoted (e.g. ["yt-dlp"]), otherwise nvchecker fails to parse them. add_nvchecker_section wrote bare [pkg] headers, so such names had to be hand-quoted. Worse, _has_nvchecker_section only matched the bare form, so already-present quoted sections were reported as missing and re-flagged for populate on every 'mkhint -C' run. Add _nvchecker_label helper as the single source of truth for the written label (bare iff name matches ^[A-Za-z0-9_]+$, else double-quoted), used by both the write side (3 section headers + messages) and the read side (_has_nvchecker_section grep, with regex metachars escaped so '.' is literal). Tests T32-T34 cover quoted-header write, no-duplicate on re---new, and --check recognizing an existing quoted section. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13feat: --check offers to populate missing nvchecker sectionsDanilo M.1-1/+33
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13refactor: extract _has_nvchecker_section helperDanilo M.1-2/+10
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13feat: add --check/-C bulk update commandDanilo M.1-2/+101
2026-06-13feat: suggest nvchecker version on --hintfile without -vDanilo M.1-1/+39
2026-06-13feat: write nvchecker section on --new from .infoDanilo M.1-0/+1
2026-06-13feat: add add_nvchecker_section with github/pypi autodetectDanilo M.1-0/+61
2026-06-13feat: add nvchecker_latest keyfile readerDanilo M.1-0/+28
2026-06-13feat: add check_nvchecker tool-availability guardDanilo M.1-0/+17
2026-06-13feat: add NVCHECKER_CONFIG constant and help text for nvchecker featuresDanilo M.1-1/+5
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05feat: prompt to run slackrepo after --hintfile updateDanilo M.1-0/+12
Saves the round-trip of manually invoking slackrepo after every hint version bump. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18feat: multiline DOWNLOAD support, test suite, updated docsDanilo M.1-13/+135
- Add parse_multiline_var, prompt_continuation_urls, build_multiline_value, _process_download_var; refactor update_checksums to handle multi-URL vars - First URL always re-downloaded; continuation URLs prompt user, skip re-download if unchanged - Add tests/mkhint_test.sh: 44 cases covering all commands and edge cases - Update README and CLAUDE.md: correct -N semantics, --new behavior, multiline DOWNLOAD flow, test suite docs
2026-05-18refactor: extract update_checksums, apply version/md5 on --newDanilo M.1-18/+35
--new with -v now sets version and recalculates md5sums via shared update_checksums function. Previously -n ignored VERSION entirely.
2026-05-18fix: always run downloads when updating hint file with -NDanilo M.1-18/+16
-N should add NODOWNLOAD=yes but still recalculate md5sums. Previously it skipped the download block entirely.
2026-05-14refactor: switch arg parser to GNU getoptDanilo M.1-6/+18
Enables compound short flags (e.g. -Nn, -Nd). Also add short flags to bash completion candidates.
2026-05-14add --no-dl/-N option to skip downloads and set NODOWNLOAD=yesDanilo M.1-15/+48
Adds --no-dl/-N flag for use with --hintfile or --new. Skips wget, inserts NODOWNLOAD=yes after MD5SUM_x86_64 in the hint file. Also fixes README (correct paths, old command name, missing --delete/--clean sections) and updates CLAUDE.md and bash completion accordingly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07rename mkhintfile.sh to mkhint, add --delete/-d optionDanilo M.1-0/+378
- Rename script and completion file to mkhint/mkhint.bash-completion - Add --delete/-d flag to remove one or more hint files (and .bak if present) - Fix bash completion: correct hint_dir path, use find for nested .info files, add --delete completion, add flag name completion - Update all references in CLAUDE.md, README.md, and source files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>