summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Complete jobset names when possibleAlex Kost2018-07-272-6/+16
| | | | | | | * build-farm.el (build-farm-jobset-names): New function. (build-farm-read-jobset): Add 'project' argument. * build-farm-build.el (build-farm-build-latest-prompt-args): Adjust accordingly.
* Do not hardcode project namesAlex Kost2018-07-271-4/+20
| | | | | | | | | Receive them from a build farm instead. * build-farm.el (build-farm-projects): Remove variable. (build-farm-get-project-entries-once) (build-farm-project-names): New procedures. (build-farm-read-project): Use it.
* Cache projectsAlex Kost2018-07-271-8/+50
| | | | | | | | * build-farm.el (build-farm-get-entries-1): New procedure. (build-farm-get-entries): Use it. Cache projects if needed. (build-farm-cache): New variable. (build-farm-cache-get, build-farm-cache-set): New procedures. (build-farm-clear-cache): New command.
* Fix checkdoc warningsAlex Kost2018-07-273-15/+16
|
* Distinguish nix and guix for opening build logsAlex Kost2018-07-272-8/+21
| | | | | | | * build-farm-url.el (build-farm-build-log-url): Add 'raw' keyword argument. * build-farm-build.el (build-farm-build-view-log): Open build log in emacs or browser, and use 'guix-build-log-mode' depending on the package manager of the build farm.
* Factorize defining system typesAlex Kost2018-07-272-10/+18
| | | | | * build-farm-url.el (build-farm-url-package-manager): New function. * build-farm.el (build-farm-system-types): Use it.
* Use per-buffer build farm URLAlex Kost2018-07-275-59/+102
| | | | | | | | | | | | | | | | | | | | | | | | Previously, a single global 'build-farm-url' variable was used everywhere. But this is not correct: when you change this url, it should take effect only for the future requests, and the existing Farm buffers should use the previous url. So this root url should be local for every build/jobset/project list/info, which is accomplished by this commit. * build-farm-url.el (build-farm-url): Add 'root-url' argument. (build-farm-api-url, build-farm-build-url, build-farm-build-log-url) (build-farm-build-latest-api-url, build-farm-build-queue-api-url) (build-farm-jobset-url, build-farm-jobset-api-url) (build-farm-project-url): Add 'root-url' keyword argument. * build-farm.el: Define accessors for entry args. Specifically... (build-farm-current-url): New function. (build-farm-get-entries, build-farm-get-display, build-farm-message) (build-farm-search-url): New 'root-url' argument. * build-farm-build.el: Adjust to use 'root-url' arguments where appropriate. * build-farm-jobset.el: Likewise. * build-farm-project.el: Likewise.
* Add and use 'build-farm-get-display'Alex Kost2018-07-274-25/+15
| | | | | | | | | | | | | Instead of 'build-farm-ENTRY-TYPE-get-display' functions. * build-farm.el (build-farm-get-display): New procedure. * build-farm-build.el (build-farm-build-get-display): Remove. (build-farm-build-info-insert-builds-button) (build-farm-latest-builds, build-farm-queued-builds): Adjust accordingly. * build-farm-jobset.el (build-farm-jobset-get-display): Remove. (build-farm-jobsets): Adjust accordingly. * build-farm-project.el (build-farm-project-get-display): Remove. (build-farm-projects): Adjust accordingly.
* Use key arguments for 'build-farm-jobset-url'Alex Kost2018-07-273-9/+10
| | | | | | | | | | This should have been done in commit 43684ea5d4b9e67ef4ca2a9583e5ce7af433a255. * build-farm-url.el (build-farm-jobset-url): Use key arguments. * build-farm-jobset.el (build-farm-jobset-info-insert-url): Adjust accordingly. * build-farm-project.el (build-farm-project-info-insert-jobset): Likewise.
* Distinguish system types supported by Nix and GuixAlex Kost2018-07-271-5/+29
| | | | | | | | * build-farm.el (build-farm-system-types): Remove variable. (build-farm-guix-system-types, build-farm-nix-system-types): New variables. (build-farm-system-types): New function. (build-farm-read-system): Use it. (build-farm-job-regexp): Adjust to avoid using system types.
* Add "Builds" button everywhereAlex Kost2018-07-273-41/+76
| | | | | | | | | | | | | | | I.e., to "Build Info", "Jobset Info", "Project Info" buffers. * build-farm-build.el (build-farm-build-define-button): Remove macro. (build-farm-build-info-insert-builds-button) (build-farm-build-info-insert-button) (build-farm-build-info-insert-project) (build-farm-build-info-insert-jobset) (build-farm-build-info-insert-job) (build-farm-build-info-insert-system): New procedures. * build-farm-jobset.el (build-farm-jobset-info-insert-project): Use 'build-farm-build-info-insert-builds-button'. * build-farm-project.el (build-farm-project-info-insert-jobset): Likewise.
* project: Add "B" key to the List bufferAlex Kost2018-07-161-1/+23
| | | | | | | | | | To show latest builds. * build-farm-project.el (build-farm-project-list-read-jobset): New procedure. (build-farm-project-list-latest-builds): New command. (build-farm-project-list-default-hint): Add it. (build-farm-project-list-mode-map): Bind it to "B".
* Fix typos in the docstringsAlex Kost2018-07-162-5/+7
|
* Do not require match for system/project readersAlex Kost2018-07-161-0/+2
| | | | | | * build-farm.el (build-farm-read-project, build-farm-read-system): Do not require match as the input may not necessarily be one of the completions.
* Use "project/jobset" for jobset IDAlex Kost2018-07-162-7/+33
| | | | | | | | | * build-farm-url.el (build-farm-jobset-url): Adjust to accept a single argument. * build-farm-jobset.el (build-farm-jobset-id): New function. (build-farm-jobset-filter-id): Use it. (build-farm-jobset-info-insert-url): Pass only jobset ID to 'build-farm-jobset-url'.
* Add interface for projects ('build-farm-projects' command)Alex Kost2018-07-163-4/+165
| | | | | * build-farm-url.el (build-farm-project-url): New function. * build-farm-project.el: New file.
* url: Pass extra header "Accept: application/json"Alex Kost2018-07-161-7/+46
| | | | | | | | | | | (as Hydra uses this feature to return json data from non-api URLs). Also check if the returned content type is "application/json" (as Cuirass does not use this feature). * build-farm-url.el (build-farm-retrieve-url): New procedure. (build-farm-receive-data): Pass "Accept" header and check for content type.
* url: Improve url type definerAlex Kost2018-07-161-7/+10
| | | | | | * build-farm-url.el (build-farm-type-by-url): Rename to... (build-farm-url-type): ... this. Make 'url' argument optional. Check if URL contains "cuirass".
* Move all url procedures to "build-farm-url.el"Alex Kost2018-07-164-138/+158
| | | | | | | | | | | | | * build-farm.el (build-farm-url-alist, build-farm-guess-url) (build-farm-urls, build-farm-url, build-farm-read-url) (build-farm-set-url, build-farm-type-by-url, build-farm-api-url) (build-farm-receive-data): Move to... * build-farm-build.el (build-farm-build-url, build-farm-build-log-url) (build-farm-build-latest-api-url, build-farm-build-queue-api-url): Move to... * build-farm-jobset.el (build-farm-jobset-url) (build-farm-jobset-api-url): Move to... * build-farm-url.el: ... here. New file.
* Add 'build-farm-set-url' commandAlex Kost2018-07-161-0/+14
| | | | | * build-farm.el (build-farm-read-url): New function. (build-farm-set-url): New command.
* Try to guess a package manager and a build farm urlAlex Kost2018-07-162-8/+35
| | | | | | | | | * build-farm-utils.el (build-farm-preferred-package-manager): New variable. * build-farm.el (build-farm-urls): Rename variable to... (build-farm-url-alist): ... this. (build-farm-guess-url, build-farm-urls, build-farm-type-by-url): New procedures.
* Initial commitAlex Kost2018-07-165-0/+1099
The code has been copied from Emacs-Guix package and renamed from 'guix-hydra-...' to 'build-farm-...'. New files: * build-farm.el * build-farm-build.el * build-farm-jobset.el * build-farm-utils.el * .gitignore