Page MenuHomeSoftware Heritage

Allow main script executions within container
ClosedPublic

Authored by ardumont on May 18 2022, 5:59 PM.

Details

Summary

Without this, the System "forgerie" is not found by quicklisp.

Related to T4064
Depends on D7857

Test Plan

Run (with what's important):

$ docker run -v $SWH_ENVIRONMENT_HOME/../forgerie:/opt/forgerie -it forgerie /opt/forgerie/bin/build-config-tmpl
...
; Loading "forgerie"
[package forgerie-core]...........................
[package forgerie-phabricator]....................
[package forgerie-gitlab].............

Full log (with failure at the end because there is no config.lisp yet):

$ docker run -v $SWH_ENVIRONMENT_HOME/../forgerie:/opt/forgerie -it forgerie /opt/forgerie/bin/build-config-tmpl
To load "forgerie":
  Load 1 ASDF system:
    forgerie
; Loading "forgerie"
..................................................
[package forgerie-core]...........................
[package forgerie-phabricator]....................
[package forgerie-gitlab].............
Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                {1001888343}>:
  The path #P"/config/config.lisp.tmpl" does not exist.

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001888343}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-INT:SIMPLE-FILE-ERROR "~@<The path ~2I~_~S ~I~_does not exist.~:>" {100659E883}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SB-INT:SIMPLE-FILE-ERROR "~@<The path ~2I~_~S ~I~_does not exist.~:>" {100659E883}>)
2: (INVOKE-DEBUGGER #<SB-INT:SIMPLE-FILE-ERROR "~@<The path ~2I~_~S ~I~_does not exist.~:>" {100659E883}>)
3: (ERROR SB-INT:SIMPLE-FILE-ERROR :PATHNAME #P"/config/config.lisp.tmpl" :FORMAT-CONTROL "~@<The path ~2I~_~S ~I~_does not exist.~:>" :FORMAT-ARGUMENTS (#P"/config/config.lisp.tmpl"))
4: (SB-KERNEL::%FILE-ERROR #P"/config/config.lisp.tmpl" "~@<The path ~2I~_~S ~I~_does not exist.~:>" #P"/config/config.lisp.tmpl")
5: (SB-IMPL::%OPEN-ERROR #P"/config/config.lisp.tmpl" 2 :SUPERSEDE :CREATE)
6: (OPEN "config/config.lisp.tmpl" :DIRECTION :OUTPUT :ELEMENT-TYPE BASE-CHAR :IF-EXISTS :SUPERSEDE :IF-DOES-NOT-EXIST NIL :EXTERNAL-FORMAT :DEFAULT :CLASS SB-SYS:FD-STREAM)
7: ((LAMBDA NIL :IN "/opt/forgerie/bin/build-config-tmpl"))
8: (SB-INT:SIMPLE-EVAL-IN-LEXENV (WITH-OPEN-FILE (STR "config/config.lisp.tmpl" :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) (FORMAT STR ";;;; This template file is generated by bin/build-config-templ and should not be edited manually.
;;;;
;;;; Install by copying to config.lisp~%~%") (MAPCAR (LAMBDA (SECTION) (FORMAT STR ";;;;;;;;;;;;;;;;;;;~%;;; ~A~%;;;;;;;;;;;;;;;;;;;~%~%" (CAR SECTION)) (MAPCAR (LAMBDA # #) (CDR SECTION))) (QUOTE (("system" # #) ("core" FORGERIE-CORE:*DEBUG* FORGERIE-CORE:*LOG-MAPPING-ERRORS* FORGERIE-CORE:*WORKING-DIRECTORY*) ("phabricator" FORGERIE-PHABRICATOR:*DATABASE-PASSWORD* FORGERIE-PHABRICATOR:*DATABASE-USERNAME* FORGERIE-PHABRICATOR:*REVISIONS-TO-SKIP* FORGERIE-PHABRICATOR:*PHABRICATOR-LOCATION* FORGERIE-PHABRICATOR:*PROJECT-ASSIGNMENT-OVERRIDES* FORGERIE-PHABRICATOR:*REPOSITORY-OVERRIDES* FORGERIE-PHABRICATOR:*PASTES-TO-SKIP* FORGERIE-PHABRICATOR:*USER-OVERRIDES* FORGERIE-PHABRICATOR:*STORAGE-LOCATION* FORGERIE-PHABRICATOR:*CONFIDENTIAL-SPACE-PHIDS* FORGERIE-PHABRICATOR:*INCLUDED-REPOSITORIES* ...) ("gitlab" FORGERIE-GITLAB:*PRIVATE-TOKEN* FORGERIE-GITLAB:*SERVER-ADDRESS* FORGERIE-GITLAB:*DEFAULT-PROJECT* FORGERIE-GITLAB:*SSH-PUBLIC-KEY* FORGERIE-GITLAB:*DEFAULT-GROUP* FORGERIE-GITLAB:*RAILS-CONSOLE-SSH-ARGS* FORGERIE-GITLAB:*MERGE-REQUEST-SUFFIX* FORGERIE-GITLAB:*TICKET-SUFFIX* FORGERIE-GITLAB:*LIMIT-TO-ACTIVE-USERS*))))) #<NULL-LEXENV>)
9: (EVAL-TLF (WITH-OPEN-FILE (STR "config/config.lisp.tmpl" :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) (FORMAT STR ";;;; This template file is generated by bin/build-config-templ and should not be edited manually.
;;;;
;;;; Install by copying to config.lisp~%~%") (MAPCAR (LAMBDA (SECTION) (FORMAT STR ";;;;;;;;;;;;;;;;;;;~%;;; ~A~%;;;;;;;;;;;;;;;;;;;~%~%" (CAR SECTION)) (MAPCAR (LAMBDA # #) (CDR SECTION))) (QUOTE (("system" # #) ("core" FORGERIE-CORE:*DEBUG* FORGERIE-CORE:*LOG-MAPPING-ERRORS* FORGERIE-CORE:*WORKING-DIRECTORY*) ("phabricator" FORGERIE-PHABRICATOR:*DATABASE-PASSWORD* FORGERIE-PHABRICATOR:*DATABASE-USERNAME* FORGERIE-PHABRICATOR:*REVISIONS-TO-SKIP* FORGERIE-PHABRICATOR:*PHABRICATOR-LOCATION* FORGERIE-PHABRICATOR:*PROJECT-ASSIGNMENT-OVERRIDES* FORGERIE-PHABRICATOR:*REPOSITORY-OVERRIDES* FORGERIE-PHABRICATOR:*PASTES-TO-SKIP* FORGERIE-PHABRICATOR:*USER-OVERRIDES* FORGERIE-PHABRICATOR:*STORAGE-LOCATION* FORGERIE-PHABRICATOR:*CONFIDENTIAL-SPACE-PHIDS* FORGERIE-PHABRICATOR:*INCLUDED-REPOSITORIES* ...) ("gitlab" FORGERIE-GITLAB:*PRIVATE-TOKEN* FORGERIE-GITLAB:*SERVER-ADDRESS* FORGERIE-GITLAB:*DEFAULT-PROJECT* FORGERIE-GITLAB:*SSH-PUBLIC-KEY* FORGERIE-GITLAB:*DEFAULT-GROUP* FORGERIE-GITLAB:*RAILS-CONSOLE-SSH-ARGS* FORGERIE-GITLAB:*MERGE-REQUEST-SUFFIX* FORGERIE-GITLAB:*TICKET-SUFFIX* FORGERIE-GITLAB:*LIMIT-TO-ACTIVE-USERS*))))) 3 NIL)
10: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (WITH-OPEN-FILE (STR "config/config.lisp.tmpl" :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) (FORMAT STR ";;;; This template file is generated by bin/build-config-templ and should not be edited manually.
;;;;
;;;; Install by copying to config.lisp~%~%") (MAPCAR (LAMBDA (SECTION) (FORMAT STR ";;;;;;;;;;;;;;;;;;;~%;;; ~A~%;;;;;;;;;;;;;;;;;;;~%~%" (CAR SECTION)) (MAPCAR (LAMBDA # #) (CDR SECTION))) (QUOTE (("system" # #) ("core" FORGERIE-CORE:*DEBUG* FORGERIE-CORE:*LOG-MAPPING-ERRORS* FORGERIE-CORE:*WORKING-DIRECTORY*) ("phabricator" FORGERIE-PHABRICATOR:*DATABASE-PASSWORD* FORGERIE-PHABRICATOR:*DATABASE-USERNAME* FORGERIE-PHABRICATOR:*REVISIONS-TO-SKIP* FORGERIE-PHABRICATOR:*PHABRICATOR-LOCATION* FORGERIE-PHABRICATOR:*PROJECT-ASSIGNMENT-OVERRIDES* FORGERIE-PHABRICATOR:*REPOSITORY-OVERRIDES* FORGERIE-PHABRICATOR:*PASTES-TO-SKIP* FORGERIE-PHABRICATOR:*USER-OVERRIDES* FORGERIE-PHABRICATOR:*STORAGE-LOCATION* FORGERIE-PHABRICATOR:*CONFIDENTIAL-SPACE-PHIDS* FORGERIE-PHABRICATOR:*INCLUDED-REPOSITORIES* ...) ("gitlab" FORGERIE-GITLAB:*PRIVATE-TOKEN* FORGERIE-GITLAB:*SERVER-ADDRESS* FORGERIE-GITLAB:*DEFAULT-PROJECT* FORGERIE-GITLAB:*SSH-PUBLIC-KEY* FORGERIE-GITLAB:*DEFAULT-GROUP* FORGERIE-GITLAB:*RAILS-CONSOLE-SSH-ARGS* FORGERIE-GITLAB:*MERGE-REQUEST-SUFFIX* FORGERIE-GITLAB:*TICKET-SUFFIX* FORGERIE-GITLAB:*LIMIT-TO-ACTIVE-USERS*))))) 3)
11: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (WITH-OPEN-FILE (STR "config/config.lisp.tmpl" :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) (FORMAT STR ";;;; This template file is generated by bin/build-config-templ and should not be edited manually.
;;;;
;;;; Install by copying to config.lisp~%~%") (MAPCAR (LAMBDA (SECTION) (FORMAT STR ";;;;;;;;;;;;;;;;;;;~%;;; ~A~%;;;;;;;;;;;;;;;;;;;~%~%" (CAR SECTION)) (MAPCAR (LAMBDA # #) (CDR SECTION))) (QUOTE (("system" # #) ("core" FORGERIE-CORE:*DEBUG* FORGERIE-CORE:*LOG-MAPPING-ERRORS* FORGERIE-CORE:*WORKING-DIRECTORY*) ("phabricator" FORGERIE-PHABRICATOR:*DATABASE-PASSWORD* FORGERIE-PHABRICATOR:*DATABASE-USERNAME* FORGERIE-PHABRICATOR:*REVISIONS-TO-SKIP* FORGERIE-PHABRICATOR:*PHABRICATOR-LOCATION* FORGERIE-PHABRICATOR:*PROJECT-ASSIGNMENT-OVERRIDES* FORGERIE-PHABRICATOR:*REPOSITORY-OVERRIDES* FORGERIE-PHABRICATOR:*PASTES-TO-SKIP* FORGERIE-PHABRICATOR:*USER-OVERRIDES* FORGERIE-PHABRICATOR:*STORAGE-LOCATION* FORGERIE-PHABRICATOR:*CONFIDENTIAL-SPACE-PHIDS* FORGERIE-PHABRICATOR:*INCLUDED-REPOSITORIES* ...) ("gitlab" FORGERIE-GITLAB:*PRIVATE-TOKEN* FORGERIE-GITLAB:*SERVER-ADDRESS* FORGERIE-GITLAB:*DEFAULT-PROJECT* FORGERIE-GITLAB:*SSH-PUBLIC-KEY* FORGERIE-GITLAB:*DEFAULT-GROUP* FORGERIE-GITLAB:*RAILS-CONSOLE-SSH-ARGS* FORGERIE-GITLAB:*MERGE-REQUEST-SUFFIX* FORGERIE-GITLAB:*TICKET-SUFFIX* FORGERIE-GITLAB:*LIMIT-TO-ACTIVE-USERS*))))) :CURRENT-INDEX 3)
12: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {10009EACBB}> #<SB-C::SOURCE-INFO {10009EAC83}> SB-C::INPUT-ERROR-IN-LOAD)
13: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /opt/forgerie/bin/build-config-tmpl" {10009E8DA3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
14: ((FLET SB-FASL::THUNK :IN LOAD))
15: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {7F73EB9C774B}> #<SB-SYS:FD-STREAM for "file /opt/forgerie/bin/build-config-tmpl" {10009E8DA3}>)
16: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /opt/forgerie/bin/build-config-tmpl" {10009E8DA3}> NIL)
17: (LOAD #<SB-SYS:FD-STREAM for "file /opt/forgerie/bin/build-config-tmpl" {10009E8DA3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
18: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /opt/forgerie/bin/build-config-tmpl" {10009E8DA3}>)
19: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT))
20: ((FLET "WITHOUT-INTERRUPTS-BODY-11" :IN SB-IMPL::PROCESS-SCRIPT))
21: (SB-IMPL::PROCESS-SCRIPT "/opt/forgerie/bin/build-config-tmpl")
22: (SB-IMPL::TOPLEVEL-INIT)
23: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
24: ((FLET "WITHOUT-INTERRUPTS-BODY-1" :IN SB-IMPL::START-LISP))
25: (SB-IMPL::START-LISP)

unhandled condition in --disable-debugger mode, quitting

Diff Detail

Repository
R263 forgerie
Branch
main
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 29473
Build 46054: arc lint + arc unit

Event Timeline

ardumont created this revision.
ardumont added inline comments.
bin/build-config-tmpl
10

I cannot find a way to properly "commonize" that code without hard-coding full path.
So duplication will have to do for now.

ardumont edited the test plan for this revision. (Show Details)

Rebase

ardumont edited the test plan for this revision. (Show Details)
ardumont edited the test plan for this revision. (Show Details)

Rebase and improve commit message

ardumont retitled this revision from Allow execution of script within the container to Allow main script executions within container.
This revision was not accepted when it landed; it landed in state Needs Review.May 31 2022, 2:53 PM
This revision was automatically updated to reflect the committed changes.