From 22f3eb6f49e3163e08edd18cd431972801e68361 Mon Sep 17 00:00:00 2001 From: Claas Lisowski Date: Thu, 18 Feb 2021 15:49:43 +0100 Subject: [PATCH] build for m1 (silicon) macs (#66) * build for m1 silicon macs, use makefile in actions, update to go 1.16 * check which arch OS is running on and execute correct binary --- .github/workflows/main.yml | 12 ++++++------ .github/workflows/pull-request.yml | 12 ++++++------ .github/workflows/release.yml | 22 ++++++++-------------- .gitignore | 2 ++ Makefile | 16 ++++++++++++++-- go.mod | 5 +---- go.sum | 25 ++++++++----------------- workflow/info.plist | 16 ++++++++-------- 8 files changed, 53 insertions(+), 57 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6d94f92..0c8ce73 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ on: jobs: lint: name: lint - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Granting private modules access run: | @@ -25,7 +25,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 @@ -41,7 +41,7 @@ jobs: test: name: test - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Granting private modules access run: | @@ -50,7 +50,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 @@ -75,7 +75,7 @@ jobs: build: name: Build - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 needs: [lint, test] steps: - name: Granting private modules access @@ -85,7 +85,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2a0b445..912467c 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -11,7 +11,7 @@ on: jobs: lint: name: lint - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Granting private modules access run: | @@ -20,7 +20,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 @@ -36,7 +36,7 @@ jobs: test: name: test - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Granting private modules access run: | @@ -45,7 +45,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 @@ -72,7 +72,7 @@ jobs: build: name: Build - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 needs: [lint, test] steps: - name: Granting private modules access @@ -82,7 +82,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 674634f..a9363b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,7 @@ on: jobs: release: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Granting private modules access run: | @@ -17,7 +17,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.16 - name: Check out code uses: actions/checkout@v2 @@ -25,29 +25,23 @@ jobs: - name: Unshallow run: git fetch --prune --unshallow - - - name: "Validates GO releaser config" - uses: "docker://goreleaser/goreleaser:latest" + - name: "Validates GO releaser config" + uses: goreleaser/goreleaser-action@v2 with: args: check - name: Build Alfred workflow run: | - go get -u github.com/jason0x43/go-alfred/alfred - go mod download - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o=$(pwd)/workflow/bitwarden-alfred-workflow . + make dep-alfred + make build - name: Copy run dependencies run: | - cp -r icons ./workflow - cp -r assets ./workflow - go get github.com/pschlump/markdown-cli - markdown-cli -i README.md -o workflow/README.html + make copy-build-assets - name: Package Alfred workflow run: | - cd ./workflow && zip -r ../bitwarden-alfred-workflow.alfredworkflow ./* - cd .. && rm -rf workflow && git checkout workflow + make package-alfred - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 diff --git a/.gitignore b/.gitignore index be5a37e..f4f3bb9 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,8 @@ coverage.txt .idea *.alfredworkflow workflow/bitwarden-alfred-workflow +workflow/bitwarden-alfred-workflow-amd64 +workflow/bitwarden-alfred-workflow-arm64 workflow/icons workflow/assets workflow/README.html diff --git a/Makefile b/Makefile index 89aca83..9779b32 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,8 @@ GO111MODULE=on .EXPORT_ALL_VARIABLES: .PHONY: all dep lint vet test test-coverage build clean -all: build +all: build copy-build-assets package-alfred + dep: ## Get the dependencies @go mod download @@ -22,7 +23,8 @@ test-coverage: ## Run tests with coverage @cat cover.out >> coverage.txt build: dep ## Build the binary file - @CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -i -o workflow/$(PROJECT_NAME) + @CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o workflow/$(PROJECT_NAME)-amd64 + @CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o workflow/$(PROJECT_NAME)-arm64 clean: ## Remove previous build @rm -f workflow/$(PROJECT_NAME) @@ -34,3 +36,13 @@ install-hooks: @mkdir -p .git/hooks @cp .github/hooks/* .git/hooks @chmod +x .git/hooks/* + +copy-build-assets: + @cp -r icons ./workflow + @cp -r assets ./workflow + @go get github.com/pschlump/markdown-cli + @markdown-cli -i README.md -o workflow/README.html + +package-alfred: + @cd ./workflow && zip -r ../bitwarden-alfred-workflow.alfredworkflow ./* \ + #&& cd .. && rm -rf workflow && git checkout workflow diff --git a/go.mod b/go.mod index b81b3cc..e6b0b23 100644 --- a/go.mod +++ b/go.mod @@ -1,22 +1,19 @@ module github.com/blacs30/bitwarden-alfred-workflow -go 1.14 +go 1.16 require ( github.com/davecgh/go-spew v1.1.1 github.com/deanishe/awgo v0.26.2 github.com/go-cmd/cmd v1.2.1 - github.com/jason0x43/go-alfred v0.0.0-20200121151032-9ea6c1f3044f // indirect github.com/jpillora/go-tld v1.0.0 github.com/jychri/tilde v0.1.0 github.com/kelseyhightower/envconfig v1.4.0 github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 github.com/pquerna/otp v1.2.0 - github.com/pschlump/markdown-cli v0.0.0-20190302144029-1852bd2b9884 // indirect github.com/soellman/pidfile v0.0.0-20160225184504-d482c905736b github.com/tidwall/gjson v1.6.1 golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6 golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f // indirect - howett.net/plist v0.0.0-20201026045517-117a925f2150 // indirect ) diff --git a/go.sum b/go.sum index 27e9719..64f33d0 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,8 @@ -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmatcuk/doublestar v1.3.1 h1:rT8rxDPsavp9G+4ZULzqhhUSaI/OPsTZNG88Z3i0xvY= github.com/bmatcuk/doublestar v1.3.1/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -15,8 +13,7 @@ github.com/go-cmd/cmd v1.2.1 h1:fV4o2i9JX8+TeI1xB1x7Ji/3ndEfJNdaa+7uYGVhkuM= github.com/go-cmd/cmd v1.2.1/go.mod h1:F2yJeMVdy5ymftSgCR0zMN7XLhKFJpG5/1brXju8EXU= github.com/go-test/deep v1.0.6 h1:UHSEyLZUwX9Qoi99vVwvewiMC8mM2bf7XEM2nqvzEn8= github.com/go-test/deep v1.0.6/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8= -github.com/jason0x43/go-alfred v0.0.0-20200121151032-9ea6c1f3044f h1:rWpPnXoLVERBUikXUuLLgOnNZUsmMCOJfImJapi2M8s= -github.com/jason0x43/go-alfred v0.0.0-20200121151032-9ea6c1f3044f/go.mod h1:CYIoOjM+7oq5n2FyO4ChtHwfbkYeCK4J6QvW2B+p/DU= +github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jpillora/go-tld v1.0.0 h1:W0Wz3fYT9WCDNJXcXc58uV7sriLnVeELeOU5MP5X42M= github.com/jpillora/go-tld v1.0.0/go.mod h1:kitBxOF//DR5FxYeIGw+etdiiTIq5S7bx0dwy1GUNAk= @@ -24,7 +21,9 @@ github.com/jychri/tilde v0.1.0 h1:/NGtJnByZqsIGrDrJPYM2uvPtM8/iAb18XNA4b83o14= github.com/jychri/tilde v0.1.0/go.mod h1:2Z44AJjlVpDIZlCdTM3wJ0YvHbbrhQBcmai5SOEJPhM= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -41,16 +40,9 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= -github.com/pschlump/lexie v0.0.0-20171018140910-163c2415e433 h1:2/doBq01ukmRY0qVKmmX+8eRsaZ/GDqB5y3OfGrzBls= -github.com/pschlump/lexie v0.0.0-20171018140910-163c2415e433/go.mod h1:vtXhOOwdLEFeU5fyUXmzwKydcwvw7eCFmUVyZzVh6jo= -github.com/pschlump/markdown-cli v0.0.0-20190302144029-1852bd2b9884 h1:7reJtVvAtQjYFiG3aIdmF91onhi2V9cg5fef7aKaqow= -github.com/pschlump/markdown-cli v0.0.0-20190302144029-1852bd2b9884/go.mod h1:ss7xThlrSPMDjyDoxqvXwZjJO5M1PRaeVMZOe6hdG14= -github.com/russross/blackfriday v2.0.0+incompatible h1:cBXrhZNUf9C+La9/YpS+UHpUT8YD6Td9ZMSU9APFcsk= -github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/soellman/pidfile v0.0.0-20160225184504-d482c905736b h1:iIk2ziBApy8Qf6KuoKoVqFOYCmQICxsrRNyry/IQH1k= github.com/soellman/pidfile v0.0.0-20160225184504-d482c905736b/go.mod h1:Cl3hBycyq3EjWqsRkNkbhDKYiB7SEfwRIXLKDcULwb4= +github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -80,17 +72,16 @@ golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e h1:FDhOuMEY4JVRztM/gsbk+IKUQ8kj74bxZrgw87eMMVc= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= howett.net/plist v0.0.0-20200419221736-3b63eb3a43b5 h1:AQkaJpH+/FmqRjmXZPELom5zIERYZfwTjnHpfoVMQEc= howett.net/plist v0.0.0-20200419221736-3b63eb3a43b5/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -howett.net/plist v0.0.0-20201026045517-117a925f2150 h1:s7O/9fwMNd6O1yXyQ8zv+U7dfl8k+zdiLWAY8h7XdVI= -howett.net/plist v0.0.0-20201026045517-117a925f2150/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= diff --git a/workflow/info.plist b/workflow/info.plist index e930ead..70dae0a 100644 --- a/workflow/info.plist +++ b/workflow/info.plist @@ -457,7 +457,7 @@ runningsubtext Loading auth configs… script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow -auth -- "$1" + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 -auth -- "$1"; else ./bitwarden-alfred-workflow-arm64 -auth -- "$1"; fi scriptargtype 1 scriptfile @@ -523,7 +523,7 @@ runningsubtext script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow $action $action2 $action3 $1 + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 $action $action2 $action3 $1; else ./bitwarden-alfred-workflow-arm64 $action $action2 $action3 $1; fi scriptargtype 1 scriptfile @@ -552,7 +552,7 @@ escaping 102 script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow $action $action2 $action3 $1 + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 $action $action2 $action3 $1; else ./bitwarden-alfred-workflow-arm64 $action $action2 $action3 $1; fi scriptargtype 1 scriptfile @@ -745,7 +745,7 @@ runningsubtext Finding secrets… script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow $1 + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 $1; else ./bitwarden-alfred-workflow-arm64 $1; fi scriptargtype 1 scriptfile @@ -819,7 +819,7 @@ runningsubtext Finding secrets in folders… script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow --folder $action $action2 $action3 $1 + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 --folder $action $action2 $action3 $1; else ./bitwarden-alfred-workflow-arm64 --folder $action $action2 $action3 $1; fi scriptargtype 1 @@ -948,7 +948,7 @@ runningsubtext Reading settings… script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow -conf "$1" + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 -conf "$1"; else ./bitwarden-alfred-workflow-arm64 -conf "$1"; fi scriptargtype 1 scriptfile @@ -977,7 +977,7 @@ escaping 102 script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow $action $action2 $action3 $1 + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 $action $action2 $action3 $1; else ./bitwarden-alfred-workflow-arm64 $action $action2 $action3 $1; fi scriptargtype 1 scriptfile @@ -1081,7 +1081,7 @@ runningsubtext script - /bin/chmod +x bitwarden-alfred-workflow; ./bitwarden-alfred-workflow $action $action2 $action3 $1 + /bin/chmod +x bitwarden-alfred-workflow-*; if [ "$(arch)" = "i386" ] ; then ./bitwarden-alfred-workflow-amd64 $action $action2 $action3 $1; else ./bitwarden-alfred-workflow-arm64 $action $action2 $action3 $1; fi scriptargtype 1 scriptfile