Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 797d6cf1d3 | |||
| fa4e51a0e8 | |||
| b52a1ef08e | |||
| 9b59d7485e | 
| @@ -15,8 +15,8 @@ pipeline: | ||||
|     image: golang:1.16 | ||||
|     commands: | ||||
|       - go mod vendor | ||||
|       - GOOS=linux GOARCH=amd64 go build -o "dist/adept-linux-amd64-${CI_COMMIT_TAG}" | ||||
|       - GOOS=windows GOARCH=amd64 go build -o "dist/adept-windows-amd64-${CI_COMMIT_TAG}.exe" | ||||
|       - GOOS=linux GOARCH=amd64 go build -ldflags "-X git.metaunix.net/BitGoblin/adept/cmd.version=${CI_COMMIT_TAG}" -o "dist/adept-linux-amd64-${CI_COMMIT_TAG}" | ||||
|       - GOOS=windows GOARCH=amd64 go build -ldflags "-X git.metaunix.net/BitGoblin/adept/cmd.version=${CI_COMMIT_TAG}" -o "dist/adept-windows-amd64-${CI_COMMIT_TAG}.exe" | ||||
|     when: | ||||
|       event: tag | ||||
|  | ||||
|   | ||||
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ BINARY_NAME=adept | ||||
|  | ||||
| all: build test | ||||
|  | ||||
| build: | ||||
| compile: | ||||
| 	go build -o ${BINARY_NAME} adept.go | ||||
|  | ||||
| test: | ||||
| @@ -34,4 +34,5 @@ uninstall: | ||||
|  | ||||
| clean: | ||||
| 	go clean | ||||
| 	rm ${BINARY_NAME} | ||||
|  | ||||
| .PHONY: all test clean | ||||
|   | ||||
							
								
								
									
										44
									
								
								bin/build_deb.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								bin/build_deb.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Check that we've been supplied a valid version | ||||
| VERSION="$1" | ||||
| if [ "$VERSION" == "" ]; then | ||||
|   echo -e "You must supply a version tag like './build_deb.sh 1.2.3'." | ||||
|   exit 1 | ||||
| fi | ||||
| # Trim the leading 'v' from version number | ||||
| if [[ "${VERSION:0:1}" == "v" ]]; then | ||||
|   VERSION="${VERSION:1}" | ||||
| fi | ||||
|  | ||||
| # Create workspace for our deb package | ||||
| WORKDIR="adept_$VERSION" | ||||
| mkdir "$WORKDIR" | ||||
|  | ||||
| # Copy build sources into workspace | ||||
| cp -r build/etc "$WORKDIR/" | ||||
| mkdir -p "$WORKDIR/usr/bin/" | ||||
| cp "dist/adept-linux-amd64-v$VERSION" "$WORKDIR/usr/bin/adept" | ||||
|  | ||||
| # Create debian control file | ||||
| mkdir "$WORKDIR/DEBIAN" | ||||
| cat > "$WORKDIR/DEBIAN/control"<< EOF | ||||
| Package: adept | ||||
| Version: $VERSION | ||||
| Section: video | ||||
| Priority: optional | ||||
| Architecture: amd64 | ||||
| Depends: ffmpeg (>= 4), lsof | ||||
| Maintainer: Gregory Ballantine <gballantine@bitgoblin.tech> | ||||
| Description: Bit Goblin video transcoding service. | ||||
| EOF | ||||
| # Copy maintainer scripts | ||||
| cp build/scripts/* "$WORKDIR/DEBIAN/" | ||||
| #chmod +rx "$WORKDIR"/DEBIAN/pre* | ||||
| chmod +rx "$WORKDIR"/DEBIAN/post* | ||||
|  | ||||
| # Build deb package! | ||||
| dpkg-deb --build "$WORKDIR" | ||||
|  | ||||
| # Cleanup | ||||
| rm -rf "$WORKDIR" | ||||
							
								
								
									
										74
									
								
								bin/build_rpm.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								bin/build_rpm.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Check that we've been supplied a valid version | ||||
| VERSION="$1" | ||||
| if [ "$VERSION" == "" ]; then | ||||
|   echo -e "You must supply a version tag like './build_rpm.sh 1.2.3'." | ||||
|   exit 1 | ||||
| fi | ||||
| # Trim the leading 'v' from version number | ||||
| if [[ "${VERSION:0:1}" == "v" ]]; then | ||||
|   VERSION="${VERSION:1}" | ||||
| fi | ||||
|  | ||||
| # Tar up source files | ||||
| mkdir rpm-temp | ||||
| cp -r cmd config transcoder util adept.go go.mod go.sum LICENSE Makefile README.md rpm-temp/ | ||||
| tar cvzf "adept-$VERSION.tar.gz" rpm-temp/* | ||||
| mv "adept-$VERSION.tar.gz" ~/rpmbuild/SOURCES/ | ||||
|  | ||||
| # Create debian control file | ||||
| cat > "./adept.spec"<< EOF | ||||
| Name:           adept | ||||
| Version:        $VERSION | ||||
| Release:        1%{?dist} | ||||
| Summary:        Bit Goblin video transcoding service | ||||
|  | ||||
| License:        BSD 2-Clause | ||||
| Source0:        %{name}-%{version}.tar.gz | ||||
|  | ||||
| BuildRequires:  golang | ||||
| BuildRequires:  systemd-rpm-macros | ||||
|  | ||||
| Provides:       %{name} = %{version} | ||||
|  | ||||
| %description | ||||
| Bit Goblin video transcoding service | ||||
|  | ||||
| %global debug_package %{nil} | ||||
|  | ||||
| %prep | ||||
| %autosetup | ||||
|  | ||||
|  | ||||
| %build | ||||
| go build -v -o %{name} | ||||
|  | ||||
|  | ||||
| %install | ||||
| install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} | ||||
| install -Dpm 0755 build/etc/%{name}/%{name}.toml %{buildroot}%{_sysconfdir}/%{name}/%{name}.toml | ||||
| install -Dpm 644 build/etc/systemd/%{name}.service %{buildroot}%{_unitdir}/%{name}.service | ||||
|  | ||||
| %check | ||||
| # go test should be here... :) | ||||
|  | ||||
| %post | ||||
| %systemd_post %{name}.service | ||||
|  | ||||
| %preun | ||||
| %systemd_preun %{name}.service | ||||
|  | ||||
| %files | ||||
| %dir %{_sysconfdir}/%{name} | ||||
| %{_bindir}/%{name} | ||||
| %{_unitdir}/%{name}.service | ||||
| %config(noreplace) %{_sysconfdir}/%{name}/%{name}.toml | ||||
|  | ||||
|  | ||||
| %changelog | ||||
| * Thu Nov 17 2022 Gregory Ballantine $VERSION | ||||
| - check git.metaunix.net/BitGoblin/adept for a changelog | ||||
| EOF | ||||
|  | ||||
| rpmbuild -ba adept.spec | ||||
| @@ -1,9 +1,9 @@ | ||||
| log_to_file = true | ||||
| log_file = '~/adept/adept.log' | ||||
| log_file = '/var/log/adept/adept.log' | ||||
| log_level = 'info' | ||||
|  | ||||
| [transcoder] | ||||
| repository = '~/adept' | ||||
| repository = '/srv/adept' | ||||
| interval = 15 | ||||
| video_format = 'mov' | ||||
| video_codec = 'dnxhd' | ||||
|   | ||||
							
								
								
									
										36
									
								
								build/scripts/postinst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								build/scripts/postinst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| GETENT_USER=$(getent passwd adept) | ||||
| # Create the adept user if it doesn't already exist | ||||
| if [ "$GETENT_USER" = "" ]; then | ||||
| 	echo "Creating the 'adept' user." | ||||
| 	useradd -r adept | ||||
| else | ||||
| 	echo "The 'adept' user already exists, skipping creation." | ||||
| fi | ||||
|  | ||||
| GETENT_GROUP=$(getent group adept) | ||||
| # Create the adept group if it doesn't already exist | ||||
| if [ "$GETENT_GROUP" = "" ]; then | ||||
| 	echo "Creating the 'adept' group." | ||||
| 	groupadd adept | ||||
| 	usermod -aG adept adept | ||||
| else | ||||
| 	echo "The 'adept' group already exists, skipping creation." | ||||
| fi | ||||
|  | ||||
| # Change the directory ownership of /etc | ||||
| chown -R adept:adept /etc/adept | ||||
|  | ||||
| # Create the log directory under /var/log | ||||
| if [ ! -d /var/log/adept ]; then | ||||
| 	echo "Creating /var/log/adept to store log files." | ||||
| 	mkdir /var/log/adept | ||||
| 	chown adept:adept /var/log/adept | ||||
| else | ||||
| 	echo "/var/log/adept already exists, skipping creation." | ||||
| fi | ||||
|  | ||||
| #DEBHELPER# | ||||
|  | ||||
| exit 0 | ||||
							
								
								
									
										28
									
								
								cmd/version.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								cmd/version.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| package cmd | ||||
|  | ||||
| import ( | ||||
| 	"log" | ||||
| 	"runtime" | ||||
|  | ||||
|   "github.com/spf13/cobra" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	version string | ||||
| ) | ||||
|  | ||||
| // initializes the sub-command | ||||
| func init() { | ||||
|   rootCmd.AddCommand(versionCmd) | ||||
| } | ||||
|  | ||||
| var versionCmd = &cobra.Command{ | ||||
|   Use:   "version", | ||||
|   Short: "Display version info.", | ||||
|   Long:  `In case you're curious, run this command to find out the version info.`, | ||||
|   Run: func(cmd *cobra.Command, args []string) { | ||||
|     log.Printf("Adept version %s", version) | ||||
| 		log.Printf("Built with Go %s", runtime.Version()) | ||||
| 		log.Printf("View source at https://git.metaunix.net/BitGoblin/adept") | ||||
|   }, | ||||
| } | ||||
| @@ -73,6 +73,8 @@ func (r *Repository) ArchiveFile(inFile string) { | ||||
|     log.Fatalf("Error opening file in ingest: %s.", err) | ||||
|     os.Exit(1) | ||||
|   } | ||||
|   sourceStat, _ := source.Stat() | ||||
|   sourceMode := sourceStat.Mode() | ||||
|   defer source.Close() | ||||
|  | ||||
|   // attempt to create destination file | ||||
| @@ -82,7 +84,7 @@ func (r *Repository) ArchiveFile(inFile string) { | ||||
|     os.Exit(1) | ||||
|   } | ||||
|   defer destination.Close() | ||||
|   destination.Chmod(0755) | ||||
|   destination.Chmod(sourceMode) | ||||
|  | ||||
|   // perform the file copy | ||||
|   _, err = io.Copy(destination, source) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user