{"id":34663796,"url":"https://github.com/macaroni-os/macaronictl","last_synced_at":"2026-02-01T23:07:45.982Z","repository":{"id":57641293,"uuid":"434967973","full_name":"macaroni-os/macaronictl","owner":"macaroni-os","description":"Macaroni OS System Management CLI","archived":false,"fork":false,"pushed_at":"2025-09-24T11:43:35.000Z","size":6181,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-24T13:26:36.049Z","etag":null,"topics":["env-update","etc-update","golang","kernel","macaroni-os"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/macaroni-os.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["geaaru"]}},"created_at":"2021-12-04T17:38:36.000Z","updated_at":"2025-09-24T11:43:40.000Z","dependencies_parsed_at":"2024-01-09T11:25:16.450Z","dependency_job_id":"a9116583-4d54-49d4-acd9-f7fe81c218f2","html_url":"https://github.com/macaroni-os/macaronictl","commit_stats":{"total_commits":115,"total_committers":3,"mean_commits":"38.333333333333336","dds":"0.26956521739130435","last_synced_commit":"395adeae819ca9e1342f76c2c7f62d2afa64de0f"},"previous_names":["funtoo/rhctl","funtoo/macaronictl"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/macaroni-os/macaronictl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaroni-os%2Fmacaronictl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaroni-os%2Fmacaronictl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaroni-os%2Fmacaronictl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaroni-os%2Fmacaronictl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macaroni-os","download_url":"https://codeload.github.com/macaroni-os/macaronictl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macaroni-os%2Fmacaronictl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28993908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T22:01:47.507Z","status":"ssl_error","status_checked_at":"2026-02-01T21:58:37.335Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["env-update","etc-update","golang","kernel","macaroni-os"],"created_at":"2025-12-24T18:56:23.121Z","updated_at":"2026-02-01T23:07:45.978Z","avatar_url":"https://github.com/macaroni-os.png","language":"Go","funding_links":["https://github.com/sponsors/geaaru"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/macaroni-os/macaroni-site/blob/master/site/static/images/logo.png\"\u003e\n\u003c/p\u003e\n\n# Macaroni OS System Management Tool\n\n[![Build on push](https://github.com/macaroni-os/macaronictl/actions/workflows/push.yml/badge.svg)](https://github.com/macaroni-os/macaronictl/actions/workflows/push.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/macaroni-os/macaronictl)](https://goreportcard.com/report/github.com/macaroni-os/macaronictl)\n[![CodeQL](https://github.com/macaroni-os/macaronictl/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/macaroni-os/macaronictl/actions/workflows/codeql-analysis.yml)\n\nThe Macaroni OS knife tool to control your system.\n\nAt the moment, it contains only the commands to control\nthe kernels and generate initrd images.\n\n\n```\n$ macaronictl --help\nCopyright (c) 2020-2023 Macaroni OS - Daniele Rondina\n\nMacaroni Linux System Management Tool\n\nUsage:\n   [command]\n\nAvailable Commands:\n  completion  Generate the autocompletion script for the specified shell\n  env-update  Updates environment settings automatically.\n  etc-update  Handle configuration file updates.\n  help        Help about any command\n  kernel      Manage system kernels and initrd.\n\nFlags:\n  -c, --config string   Macaronictl configuration file\n  -d, --debug           Enable debug output.\n  -h, --help            help for this command\n  -v, --version         version for this command\n\nUse \" [command] --help\" for more information about a command.\n```\n\n## env-update\n\nThe `env-update` command follow the portage `env-update` command with\nsame simplification.\n\nThe generation of the `/etc/csh.env` instead is created only when\n(t)csh support is enabled (with `--csh` option or through configuration\nfile option).\n\nThe generation of the `/etc/environment.d/10-macaroni.conf` is created only when\nsystemd support is enabled (with `--systemd` option or through configuration\nfile option).\n\n```bash\n$\u003e macaronictl env-update\n\n$\u003e macaronictl env-update --dry-run\n\n$\u003e macaronictl env-update --csh\n```\n\n## etc-update\n\nThe `etc-update` command follows the Portage `etc-update` logic with\nsome simplification.\n\nIt read the same `/etc/etc-update.conf` configuration file and it permits to\nuse `vim`, `emacs`.\n\n```bash\n$\u003e macaronictl etc-update\n```\n\nCould be used to analyze a specific path too:\n\n```bash\n$\u003e macaronictl etc-update -p /opt/myconf\n```\n\n## Kernel subcommands\n\n### List\n\nGet the list of the configured and installed kernel under the `/boot` directory.\n\n```\n$\u003e macaronictl kernel list\n|  KERNEL  | KERNEL VERSION |  TYPE   | HAS INITRD | HAS KERNEL IMAGE | HAS BZIMAGE,INITRD LINKS |\n|----------|----------------|---------|------------|------------------|--------------------------|\n| macaroni | 5.10.162       | vanilla | true       | true             | false                    |\n| macaroni | 5.15.86        | vanilla | true       | true             | false                    |\n| macaroni | 5.4.228        | vanilla | true       | true             | false                    |\n\n```\n\n### Available (from v0.7.0)\n\nGet the list of the available kernel in the configured and enabled repositories:\n\n```\n$\u003e macaronictl kernel available\n|  KERNEL  | KERNEL VERSION | PACKAGE VERSION |    EOL    |  LTS  |  RELEASED  |  TYPE   |\n|----------|----------------|-----------------|-----------|-------|------------|---------|\n| macaroni | 4.14.305       | 4.14.305        | Jan, 2024 | true  | 2017-11-12 | vanilla |\n| macaroni | 5.10.168       | 5.10.168        | Dec, 2026 | true  | 2020-12-13 | vanilla |\n| macaroni | 5.15.94        | 5.15.94         | Oct, 2026 | true  | 2021-10-31 | vanilla |\n| macaroni | 5.4.231        | 5.4.231         | Dec, 2025 | true  | 2019-11-24 | vanilla |\n| macaroni | 6.1.12         | 6.1.12          | Dec, 2026 | true  | 2022-12-11 | vanilla |\n| macaroni | 6.2.1          | 6.2.1           | N/A       | false | 2023-02-19 | vanilla |\n\n```\n\nor only the LTS kernels:\n\n```\n$\u003e macaronictl kernel available --lts\n|  KERNEL  | KERNEL VERSION | PACKAGE VERSION |    EOL    | LTS  |  RELEASED  |  TYPE   |\n|----------|----------------|-----------------|-----------|------|------------|---------|\n| macaroni | 4.14.305       | 4.14.305        | Jan, 2024 | true | 2017-11-12 | vanilla |\n| macaroni | 5.10.168       | 5.10.168        | Dec, 2026 | true | 2020-12-13 | vanilla |\n| macaroni | 5.15.94        | 5.15.94         | Oct, 2026 | true | 2021-10-31 | vanilla |\n| macaroni | 5.4.231        | 5.4.231         | Dec, 2025 | true | 2019-11-24 | vanilla |\n| macaroni | 6.1.12         | 6.1.12          | Dec, 2026 | true | 2022-12-11 | vanilla |\n\n```\n\n\n### Generate Initrd\n\n```\n$\u003e macaronictl kernel gi --help\nRebuild Dracut initrd images.\n\n$\u003e # Generate all initrd images of the kernels available on boot dir.\n$\u003e macaronictl kernel geninitrd --all\n\n$\u003e # Generate all initrd images of the kernels available on boot dir\n$\u003e # and set the bzImage, Initrd links to one of the kernel available\n$\u003e # if not present or to the next release of the same kernel after the\n$\u003e # upgrade.\n$\u003e macaronictl kernel geninitrd --all --set-links\n\n$\u003e # Generate all initrd images of the kernels available on boot dir\n$\u003e # and set the bzImage, Initrd links to one of the kernel available\n$\u003e # if not present or to the next release of the same kernel after the\n$\u003e # upgrade. In addition, it purges old initrd images and update grub.cfg.\n$\u003e macaronictl kernel geninitrd --all --set-links --purge --grub\n\n$\u003e # Just show what dracut commands will be executed for every initrd images.\n$\u003e macaronictl kernel geninitrd --all --dry-run\n\n$\u003e # Generate the initrd image for the kernel 5.10.42\n$\u003e macaronictl kernel geninitrd --version 5.10.42\n\n$\u003e # Generate the initrd image for the kernel 5.10.42 and kernel type vanilla.\n$\u003e macaronictl kernel geninitrd --version 5.10.42 --ktype vanilla\n\n$\u003e # Generate the initrd image for the kernel 5.10.42 and kernel type vanilla\n$\u003e # and set the links bzImage, Initrd to the selected kernel/initrd.\n$\u003e macaronictl kernel geninitrd --version 5.10.42 --ktype vanilla\n\nUsage:\n   kernel geninitrd [flags]\n\nAliases:\n  geninitrd, gi\n\nFlags:\n      --all                          Rebuild all images with kernel.\n      --bootdir string               Directory where analyze kernel files. (default \"/boot\")\n      --dracut-opts string           Override the default dracut options used on the initrd image generation.\n                                     Set the MACARONICTL_DRACUT_ARGS env in alternative.\n      --dry-run                      Dry run commands.\n      --grub                         Update grub.cfg.\n  -h, --help                         help for geninitrd\n      --kernel-profiles-dir string   Specify the directory where read the kernel types profiles supported. (default \"/etc/macaroni/kernels-profiles/\")\n      --ktype string                 Specify the kernel type of the initrd image to build.\n      --purge                        Clean orphan initrd images without kernel.\n      --set-links                    Set bzImage and Initrd links for the selected kernel or update links of the upgraded kernel.\n      --version string               Specify the kernel version of the initrd image to build.\n\nGlobal Flags:\n  -c, --config string   MacaroniCtl configuration file\n  -d, --debug           Enable debug output.\n```\n\n## Browser subcommands (from v0.9.0)\n\nIn order to configure default startup options of the available browsers,\n`macaronictl` supplies commands to create a script wrapper with default\noptions to use, options that could be customized by the user with the same tool.\n\nAt the moment the supported browsers are `Brave` and `Google Chrome`.\n\nThis needs is started with the upgrade of Chromium engine 117.x where the default flags\nare related to the 3d acceleration, this breaks old computers with poor cards.\nWe prefer to support solutions with poor hardware by default.\n\n```bash\n$\u003e macaronictl browser --help\nManage browsers binaries and their default bootstrap options.\n\nUsage:\n   browser [command]\n\nAliases:\n  browser, b\n\nAvailable Commands:\n  available   List available browsers and their customization.\n  configure   Configure bootstrap options of a specific browser.\n\nFlags:\n  -h, --help   help for browser\n\nGlobal Flags:\n  -c, --config string   Macaronictl configuration file\n  -d, --debug           Enable debug output.\n\nUse \" browser [command] --help\" for more information about a command.\n```\n\n### available\n\nThe `available` command show the list of available browsers and if it's present a system configuration and/or a user customization\nof the startup flags.\n\n```bash\n$  macaronictl  browser available\n|              PACKAGE              | PACKAGE VERSION | SYSTEM OPTIONS | USER OPTIONS |  ENGINE  |            BINARIES             |\n|-----------------------------------|-----------------|----------------|--------------|----------|---------------------------------|\n| www-client/brave-bin              | v1.59.117       | true           | true         | chromium | /usr/bin/brave-bin              |\n| www-client/firefox                | v118.0.2        | false          | false        | N/A      | N/A                             |\n| www-client/firefox-beta-bin       | v119.0          | false          | false        | N/A      | N/A                             |\n| www-client/firefox-bin            | v118.0.2        | false          | false        | N/A      | N/A                             |\n| www-client/google-chrome          | v118.0.5993.70  | false          | false        | chromium | /usr/bin/google-chrome-stable   |\n| www-client/google-chrome-beta     | v119.0.6045.21  | false          | false        | chromium | /usr/bin/google-chrome-beta     |\n| www-client/google-chrome-unstable | v120.0.6062.2   | false          | false        | chromium | /usr/bin/google-chrome-unstable |\n| www-client/opera                  | v99.0.4788.9+1  | false          | false        | N/A      | N/A                             |\n| www-client/vivaldi                | v6.2.3105.58    | false          | false        | N/A      | N/A                             |\n| www-client/vivaldi-snapshot       | v6.4.3152.3     | false          | false        | N/A      | N/A                             |\n```\n\n### configure\n\nThe `configure` supply a way to setup the browser wrapper script used to start the binaries and configure the startup flags at system\nlevel or at user level.\n\n```bash\n$\u003e macaronictl  browser conf --help\nShows browsers available in configured repositories.\n\n# Generate the system yaml file with the default options from catalog.\n$\u003e macaronictl browser conf www-client/brave-bin --system --defaults\n\n# Generate the user yaml file with the default options from catalog.\n$\u003e macaronictl browser conf www-client/brave-bin --user --defaults\n\n# Generate the user yaml file without options for the selected package.\n$\u003e macaronictl browser conf www-client/brave-bin --user --without-opts\n\n# Generate the user yaml file awithout options and the user include file\n# for the selected package.\n$\u003e macaronictl browser conf www-client/brave-bin --user --without-opts --exec\n\n# Generate the binary script of the package and the system includes scripts.\n# Normally, this command is executed on package finalizer.\n$\u003e macaronictl browser conf www-client/brave-bin --exec --system  --defaults\n\n# Generate the user include and YAML files with the default options\n$\u003e macaronictl browser conf www-client/brave-bin --exec --user  --defaults\n\n# Remove the user include file.\n$\u003e macaronictl browser conf www-client/brave-bin --purge --user\n\n# Remove the sytem include file and the binary of the package\n$\u003e macaronictl browser conf www-client/brave-bin --purge --system\n\n# Update the user include file. Normally, used when the user YAML file\n# is been modified manually.\n$\u003e macaronictl browser conf www-client/brave-bin --user --only-update-includes\n\n# Update the system include file. Normally, used when the user YAML file\n# is been modified manually.\n$\u003e macaronictl browser conf www-client/brave-bin --system --only-update-includes\n\nNOTE: It works only if the repositories are synced.\n\nUsage:\n   browser configure [pkg] [flags]\n\nAliases:\n  configure, conf, c\n\nFlags:\n      --catalog-file string    Specify the directory of the catalog file of all engines options. (default \"/usr/share/macaroni/browsers/catalog\")\n      --defaults               Set catalog defaults options to specified package.\n      --exec                   Update script of the binary. Need root permissions.\n  -h, --help                   help for configure\n      --home-dir string        Override the directory of the user with engines options. (default \"/home/geaaru/.local/share/macaroni/browsers\")\n      --only-update-includes   Update script includes file.\n      --purge                  Remove system option from system. Need root permissions.\n      --system                 Set bootstrap option on system. Need root permissions.\n      --system-dir string      Override the directory of the system configuration with engines options. (default \"/etc/macaroni/browsers\")\n      --user                   Set bootstrap option for user.\n      --without-opts           Disable all options to specified package.\n\nGlobal Flags:\n  -c, --config string   Macaronictl configuration file\n  -d, --debug           Enable debug output.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacaroni-os%2Fmacaronictl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacaroni-os%2Fmacaronictl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacaroni-os%2Fmacaronictl/lists"}